From 0f2ef3d6146c686ae1d244c18184928490937a9d Mon Sep 17 00:00:00 2001
From: "Bernhard J. Berger" <bernhard.berger@uni-bremen.de>
Date: Wed, 19 Apr 2023 08:29:29 +0200
Subject: [PATCH] Added support for constants to base and dl language #26.

---
 .../antlr/BaseLanguageParser.java             |    6 +-
 .../antlr/internal/InternalBaseLanguage.g     |  434 +-
 .../internal/InternalBaseLanguage.tokens      |   44 +-
 .../internal/InternalBaseLanguageLexer.java   |  627 +-
 .../internal/InternalBaseLanguageParser.java  | 4594 ++++++----
 .../AbstractBaseLanguageProposalProvider.java |   18 +
 .../model/base/dsl/BaseLanguage.xtextbin      |  Bin 8718 -> 8967 bytes
 .../antlr/internal/InternalBaseLanguage.g     |  147 +-
 .../internal/InternalBaseLanguage.tokens      |  106 +-
 .../internal/InternalBaseLanguageLexer.java   |  879 +-
 .../internal/InternalBaseLanguageParser.java  | 1625 ++--
 .../BaseLanguageSemanticSequencer.java        |   75 +-
 .../services/BaseLanguageGrammarAccess.java   |  104 +-
 .../model/base/dsl/BaseLanguage.xtext         |   10 +-
 .../model/model.ecore                         |   12 +
 .../model/model.genmodel                      |    8 +
 .../languages/model/base/BaseFactory.java     |   18 +
 .../languages/model/base/BasePackage.java     |  216 +-
 .../model/base/ConstantDefinition.java        |   92 +
 .../model/base/ConstantReference.java         |   45 +
 .../model/base/impl/BaseFactoryImpl.java      |   24 +
 .../model/base/impl/BasePackageImpl.java      |   93 +
 .../base/impl/ConstantDefinitionImpl.java     |  317 +
 .../base/impl/ConstantReferenceImpl.java      |  158 +
 .../model/base/util/BaseAdapterFactory.java   |   36 +
 .../languages/model/base/util/BaseSwitch.java |   44 +
 .../antlr/DataDescriptionLanguageParser.java  |    5 +
 .../InternalDataDescriptionLanguage.g         |  394 +-
 .../InternalDataDescriptionLanguage.tokens    |   32 +-
 .../InternalDataDescriptionLanguageLexer.java |  684 +-
 ...InternalDataDescriptionLanguageParser.java | 6059 +++++++-----
 .../ddl/dsl/DataDescriptionLanguage.xtextbin  |  Bin 11156 -> 11413 bytes
 .../InternalDataDescriptionLanguage.g         |  168 +-
 .../InternalDataDescriptionLanguage.tokens    |  106 +-
 .../InternalDataDescriptionLanguageLexer.java |  960 +-
 ...InternalDataDescriptionLanguageParser.java | 2545 ++++--
 ...aDescriptionLanguageSemanticSequencer.java |    8 +
 .../DataDescriptionLanguageGrammarAccess.java |   40 +-
 .../ddl/dsl/DataDescriptionLanguage.xtext     |    2 +-
 .../antlr/DefinitionLanguageParser.java       |    7 +-
 .../internal/InternalDefinitionLanguage.g     |  330 +-
 .../InternalDefinitionLanguage.tokens         |   34 +-
 .../InternalDefinitionLanguageLexer.java      |  296 +-
 .../InternalDefinitionLanguageParser.java     | 5157 ++++++-----
 ...actDefinitionLanguageProposalProvider.java |    3 +
 .../model/dl/dsl/DefinitionLanguage.xtextbin  |  Bin 9157 -> 9435 bytes
 .../internal/InternalDefinitionLanguage.g     |  150 +-
 .../InternalDefinitionLanguage.tokens         |   40 +-
 .../InternalDefinitionLanguageLexer.java      |  366 +-
 .../InternalDefinitionLanguageParser.java     | 1938 ++--
 .../DefinitionLanguageSemanticSequencer.java  |   14 +-
 .../DefinitionLanguageGrammarAccess.java      |   40 +-
 .../model/dl/dsl/DefinitionLanguage.xtext     |    2 +-
 .../model/model.ecore                         |    3 +
 .../model/model.genmodel                      |    1 +
 .../languages/model/dl/DefinitionModel.java   |   14 +
 .../evoal/languages/model/dl/DlPackage.java   |   30 +-
 .../model/dl/impl/DefinitionModelImpl.java    |   38 +
 .../model/dl/impl/DlPackageImpl.java          |   12 +
 .../antlr/GeneratorDSLParser.java             |    8 +-
 .../antlr/internal/InternalGeneratorDSL.g     |  573 +-
 .../internal/InternalGeneratorDSL.tokens      |   24 +-
 .../internal/InternalGeneratorDSLLexer.java   |  525 +-
 .../internal/InternalGeneratorDSLParser.java  | 7893 ++++++++--------
 .../model/generator/dsl/GeneratorDSL.xtextbin |  Bin 11972 -> 12144 bytes
 .../antlr/internal/InternalGeneratorDSL.g     |  195 +-
 .../internal/InternalGeneratorDSL.tokens      |  110 +-
 .../internal/InternalGeneratorDSLLexer.java   |  767 +-
 .../internal/InternalGeneratorDSLParser.java  | 2521 ++---
 .../GeneratorDSLSemanticSequencer.java        |   12 +-
 .../GeneratorDSLSyntacticSequencer.java       |    2 +-
 .../services/GeneratorDSLGrammarAccess.java   |   36 +-
 .../model/generator/dsl/GeneratorDSL.xtext    |    1 -
 .../antlr/InstanceLanguageParser.java         |    8 +-
 .../antlr/internal/InternalInstanceLanguage.g |  573 +-
 .../internal/InternalInstanceLanguage.tokens  |   24 +-
 .../InternalInstanceLanguageLexer.java        |  443 +-
 .../InternalInstanceLanguageParser.java       | 6297 +++++++------
 ...tractInstanceLanguageProposalProvider.java |    3 -
 .../instance/dsl/InstanceLanguage.xtextbin    |  Bin 9784 -> 9956 bytes
 .../antlr/internal/InternalInstanceLanguage.g |  195 +-
 .../internal/InternalInstanceLanguage.tokens  |  110 +-
 .../InternalInstanceLanguageLexer.java        |  713 +-
 .../InternalInstanceLanguageParser.java       | 2522 ++---
 .../InstanceLanguageSemanticSequencer.java    |   14 +-
 .../InstanceLanguageSyntacticSequencer.java   |    2 +-
 .../InstanceLanguageGrammarAccess.java        |   79 +-
 .../model/instance/dsl/InstanceLanguage.xtext |    7 +-
 .../antlr/MachineLearningLanguageParser.java  |    8 +-
 .../InternalMachineLearningLanguage.g         |  573 +-
 .../InternalMachineLearningLanguage.tokens    |   24 +-
 .../InternalMachineLearningLanguageLexer.java |  513 +-
 ...InternalMachineLearningLanguageParser.java | 8134 +++++++++--------
 .../mll/dsl/MachineLearningLanguage.xtextbin  |  Bin 12423 -> 12595 bytes
 .../InternalMachineLearningLanguage.g         |  201 +-
 .../InternalMachineLearningLanguage.tokens    |  110 +-
 .../InternalMachineLearningLanguageLexer.java |  789 +-
 ...InternalMachineLearningLanguageParser.java | 2579 +++---
 ...hineLearningLanguageSemanticSequencer.java |   12 +-
 ...ineLearningLanguageSyntacticSequencer.java |    2 +-
 .../MachineLearningLanguageGrammarAccess.java |   36 +-
 .../antlr/OptimisationLanguageParser.java     |    8 +-
 .../internal/InternalOptimisationLanguage.g   |  585 +-
 .../InternalOptimisationLanguage.tokens       |   24 +-
 .../InternalOptimisationLanguageLexer.java    |  523 +-
 .../InternalOptimisationLanguageParser.java   | 6875 +++++++-------
 .../ol/dsl/OptimisationLanguage.xtextbin      |  Bin 10692 -> 10864 bytes
 .../internal/InternalOptimisationLanguage.g   |  203 +-
 .../InternalOptimisationLanguage.tokens       |  108 +-
 .../InternalOptimisationLanguageLexer.java    |  749 +-
 .../InternalOptimisationLanguageParser.java   | 2560 +++---
 ...OptimisationLanguageSemanticSequencer.java |   18 +-
 ...ptimisationLanguageSyntacticSequencer.java |    2 +-
 .../OptimisationLanguageGrammarAccess.java    |   66 +-
 .../model/ol/dsl/OptimisationLanguage.xtext   |    4 +-
 115 files changed, 45124 insertions(+), 32449 deletions(-)
 create mode 100644 src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantDefinition.java
 create mode 100644 src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantReference.java
 create mode 100644 src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantDefinitionImpl.java
 create mode 100644 src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantReferenceImpl.java

diff --git a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/BaseLanguageParser.java b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/BaseLanguageParser.java
index 172b2685..d9f59053 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/BaseLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/BaseLanguageParser.java
@@ -62,7 +62,6 @@ public class BaseLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -84,6 +83,7 @@ public class BaseLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -113,6 +113,7 @@ public class BaseLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -133,6 +134,9 @@ public class BaseLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.g b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.g
index 62381a81..391edc12 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.g
+++ b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.g
@@ -416,9 +416,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -575,6 +600,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -2614,53 +2664,161 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
+rule__DoubleLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__0__Impl
+	rule__DoubleLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__DoubleLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__DoubleLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntegerLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__0__Impl
+	rule__IntegerLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__IntegerLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__IntegerLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
+	rule__BooleanLiteralRule__Group__0__Impl
+	rule__BooleanLiteralRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__0__Impl
+rule__BooleanLiteralRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1
+rule__BooleanLiteralRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__1__Impl
+	rule__BooleanLiteralRule__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1__Impl
+rule__BooleanLiteralRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	(rule__BooleanLiteralRule__Alternatives_1)
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
 )
 ;
 finally {
@@ -2668,161 +2826,242 @@ finally {
 }
 
 
-rule__DoubleLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__0__Impl
-	rule__DoubleLiteralRule__Group__1
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__DoubleLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__DoubleLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__IntegerLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__2__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__0__Impl
-	rule__IntegerLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__IntegerLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__IntegerLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__BooleanLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__0__Impl
-	rule__BooleanLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
-	()
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1
+
+rule__TypeDefinitionRule__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
-	(rule__BooleanLiteralRule__Alternatives_1)
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
 )
 ;
 finally {
@@ -4223,6 +4462,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -4317,6 +4575,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.tokens b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.tokens
index c1fb1d1e..04fc86dd 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguage.tokens
@@ -1,4 +1,4 @@
-'!'=70
+'!'=73
 '!='=19
 '%'=26
 '('=51
@@ -7,11 +7,11 @@
 '+'=22
 ','=53
 '-'=23
-'.'=69
+'.'=72
 '/'=25
-':'=55
-':='=57
-';'=56
+':'=58
+':='=60
+';'=59
 '<'=20
 '<='=21
 '='=18
@@ -30,31 +30,35 @@
 '\u00B5'=40
 '^'=50
 'a'=44
-'array'=68
-'boolean'=65
+'abstract'=75
+'array'=71
+'boolean'=68
 'c'=38
 'd'=37
 'da'=36
-'data'=67
-'expression'=62
+'data'=70
+'expression'=65
+'extends'=57
 'f'=43
 'false'=15
-'float'=64
+'float'=67
 'h'=35
-'instance'=59
-'int'=63
+'instance'=62
+'int'=66
 'k'=34
-'literal'=58
+'literal'=61
 'm'=39
 'n'=41
 'p'=42
-'string'=61
-'true'=71
-'value'=54
-'void'=66
+'string'=64
+'true'=74
+'type'=54
+'void'=69
 'y'=46
 'z'=45
-'|'=60
+'{'=55
+'|'=63
+'}'=56
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
 RULE_DOUBLE=6
@@ -123,3 +127,7 @@ T__68=68
 T__69=69
 T__70=70
 T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
diff --git a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageLexer.java b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageLexer.java
index 817b8b50..da2645de 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageLexer.java
@@ -54,6 +54,7 @@ public class InternalBaseLanguageLexer extends Lexer {
     public static final int T__65=65;
     public static final int T__70=70;
     public static final int T__71=71;
+    public static final int T__72=72;
     public static final int RULE_STRING=8;
     public static final int RULE_SL_COMMENT=12;
     public static final int T__37=37;
@@ -64,9 +65,12 @@ public class InternalBaseLanguageLexer extends Lexer {
     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__73=73;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__74=74;
     public static final int T__31=31;
+    public static final int T__75=75;
     public static final int T__32=32;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
@@ -888,10 +892,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:50:7: ( 'value' )
-            // InternalBaseLanguage.g:50:9: 'value'
+            // InternalBaseLanguage.g:50:7: ( 'type' )
+            // InternalBaseLanguage.g:50:9: 'type'
             {
-            match("value"); 
+            match("type"); 
 
 
             }
@@ -909,10 +913,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:51:7: ( ':' )
-            // InternalBaseLanguage.g:51:9: ':'
+            // InternalBaseLanguage.g:51:7: ( '{' )
+            // InternalBaseLanguage.g:51:9: '{'
             {
-            match(':'); 
+            match('{'); 
 
             }
 
@@ -929,10 +933,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:52:7: ( ';' )
-            // InternalBaseLanguage.g:52:9: ';'
+            // InternalBaseLanguage.g:52:7: ( '}' )
+            // InternalBaseLanguage.g:52:9: '}'
             {
-            match(';'); 
+            match('}'); 
 
             }
 
@@ -949,10 +953,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:53:7: ( ':=' )
-            // InternalBaseLanguage.g:53:9: ':='
+            // InternalBaseLanguage.g:53:7: ( 'extends' )
+            // InternalBaseLanguage.g:53:9: 'extends'
             {
-            match(":="); 
+            match("extends"); 
 
 
             }
@@ -970,11 +974,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:54:7: ( 'literal' )
-            // InternalBaseLanguage.g:54:9: 'literal'
+            // InternalBaseLanguage.g:54:7: ( ':' )
+            // InternalBaseLanguage.g:54:9: ':'
             {
-            match("literal"); 
-
+            match(':'); 
 
             }
 
@@ -991,11 +994,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:55:7: ( 'instance' )
-            // InternalBaseLanguage.g:55:9: 'instance'
+            // InternalBaseLanguage.g:55:7: ( ';' )
+            // InternalBaseLanguage.g:55:9: ';'
             {
-            match("instance"); 
-
+            match(';'); 
 
             }
 
@@ -1012,10 +1014,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:56:7: ( '|' )
-            // InternalBaseLanguage.g:56:9: '|'
+            // InternalBaseLanguage.g:56:7: ( ':=' )
+            // InternalBaseLanguage.g:56:9: ':='
             {
-            match('|'); 
+            match(":="); 
+
 
             }
 
@@ -1032,10 +1035,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:57:7: ( 'string' )
-            // InternalBaseLanguage.g:57:9: 'string'
+            // InternalBaseLanguage.g:57:7: ( 'literal' )
+            // InternalBaseLanguage.g:57:9: 'literal'
             {
-            match("string"); 
+            match("literal"); 
 
 
             }
@@ -1053,10 +1056,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:58:7: ( 'expression' )
-            // InternalBaseLanguage.g:58:9: 'expression'
+            // InternalBaseLanguage.g:58:7: ( 'instance' )
+            // InternalBaseLanguage.g:58:9: 'instance'
             {
-            match("expression"); 
+            match("instance"); 
 
 
             }
@@ -1074,11 +1077,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:59:7: ( 'int' )
-            // InternalBaseLanguage.g:59:9: 'int'
+            // InternalBaseLanguage.g:59:7: ( '|' )
+            // InternalBaseLanguage.g:59:9: '|'
             {
-            match("int"); 
-
+            match('|'); 
 
             }
 
@@ -1095,10 +1097,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:60:7: ( 'float' )
-            // InternalBaseLanguage.g:60:9: 'float'
+            // InternalBaseLanguage.g:60:7: ( 'string' )
+            // InternalBaseLanguage.g:60:9: 'string'
             {
-            match("float"); 
+            match("string"); 
 
 
             }
@@ -1116,10 +1118,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:61:7: ( 'boolean' )
-            // InternalBaseLanguage.g:61:9: 'boolean'
+            // InternalBaseLanguage.g:61:7: ( 'expression' )
+            // InternalBaseLanguage.g:61:9: 'expression'
             {
-            match("boolean"); 
+            match("expression"); 
 
 
             }
@@ -1137,10 +1139,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:62:7: ( 'void' )
-            // InternalBaseLanguage.g:62:9: 'void'
+            // InternalBaseLanguage.g:62:7: ( 'int' )
+            // InternalBaseLanguage.g:62:9: 'int'
             {
-            match("void"); 
+            match("int"); 
 
 
             }
@@ -1158,10 +1160,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:63:7: ( 'data' )
-            // InternalBaseLanguage.g:63:9: 'data'
+            // InternalBaseLanguage.g:63:7: ( 'float' )
+            // InternalBaseLanguage.g:63:9: 'float'
             {
-            match("data"); 
+            match("float"); 
 
 
             }
@@ -1179,10 +1181,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:64:7: ( 'array' )
-            // InternalBaseLanguage.g:64:9: 'array'
+            // InternalBaseLanguage.g:64:7: ( 'boolean' )
+            // InternalBaseLanguage.g:64:9: 'boolean'
             {
-            match("array"); 
+            match("boolean"); 
 
 
             }
@@ -1200,10 +1202,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:65:7: ( '.' )
-            // InternalBaseLanguage.g:65:9: '.'
+            // InternalBaseLanguage.g:65:7: ( 'void' )
+            // InternalBaseLanguage.g:65:9: 'void'
             {
-            match('.'); 
+            match("void"); 
+
 
             }
 
@@ -1220,10 +1223,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:66:7: ( '!' )
-            // InternalBaseLanguage.g:66:9: '!'
+            // InternalBaseLanguage.g:66:7: ( 'data' )
+            // InternalBaseLanguage.g:66:9: 'data'
             {
-            match('!'); 
+            match("data"); 
+
 
             }
 
@@ -1240,10 +1244,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:67:7: ( 'true' )
-            // InternalBaseLanguage.g:67:9: 'true'
+            // InternalBaseLanguage.g:67:7: ( 'array' )
+            // InternalBaseLanguage.g:67:9: 'array'
             {
-            match("true"); 
+            match("array"); 
 
 
             }
@@ -1256,11 +1260,93 @@ public class InternalBaseLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__71"
 
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:68:7: ( '.' )
+            // InternalBaseLanguage.g:68:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:69:7: ( '!' )
+            // InternalBaseLanguage.g:69:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:70:7: ( 'true' )
+            // InternalBaseLanguage.g:70:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:71:7: ( 'abstract' )
+            // InternalBaseLanguage.g:71:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:4467:21: ( '0' .. '9' )
-            // InternalBaseLanguage.g:4467:23: '0' .. '9'
+            // InternalBaseLanguage.g:4793:21: ( '0' .. '9' )
+            // InternalBaseLanguage.g:4793:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1275,11 +1361,11 @@ public class InternalBaseLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:4469:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalBaseLanguage.g:4469:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:4795:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalBaseLanguage.g:4795:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalBaseLanguage.g:4469:30: ( '+' | '-' )?
+            // InternalBaseLanguage.g:4795:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1305,7 +1391,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
             }
 
-            // InternalBaseLanguage.g:4469:41: ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:4795:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1319,7 +1405,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4469:41: RULE_DIGIT
+            	    // InternalBaseLanguage.g:4795:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1349,10 +1435,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4471:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalBaseLanguage.g:4471:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:4797:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalBaseLanguage.g:4797:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalBaseLanguage.g:4471:12: ( '-' )?
+            // InternalBaseLanguage.g:4797:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1361,7 +1447,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalBaseLanguage.g:4471:12: '-'
+                    // InternalBaseLanguage.g:4797:12: '-'
                     {
                     match('-'); 
 
@@ -1370,7 +1456,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
             }
 
-            // InternalBaseLanguage.g:4471:17: ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:4797:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1384,7 +1470,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4471:17: RULE_DIGIT
+            	    // InternalBaseLanguage.g:4797:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1416,15 +1502,15 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4473:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalBaseLanguage.g:4473:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalBaseLanguage.g:4799:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalBaseLanguage.g:4799:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalBaseLanguage.g:4473:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalBaseLanguage.g:4799:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalBaseLanguage.g:4473:16: RULE_INT RULE_EXPONENT
+                    // InternalBaseLanguage.g:4799:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1432,11 +1518,11 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:4473:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalBaseLanguage.g:4799:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalBaseLanguage.g:4473:52: ( RULE_DIGIT )*
+                    // InternalBaseLanguage.g:4799:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1449,7 +1535,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalBaseLanguage.g:4473:52: RULE_DIGIT
+                    	    // InternalBaseLanguage.g:4799:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1461,7 +1547,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalBaseLanguage.g:4473:64: ( RULE_EXPONENT )?
+                    // InternalBaseLanguage.g:4799:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1470,7 +1556,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalBaseLanguage.g:4473:64: RULE_EXPONENT
+                            // InternalBaseLanguage.g:4799:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1501,11 +1587,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4475:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalBaseLanguage.g:4475:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalBaseLanguage.g:4801:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalBaseLanguage.g:4801:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalBaseLanguage.g:4475:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalBaseLanguage.g:4801:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1521,7 +1607,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4475:20: '\\\\' .
+            	    // InternalBaseLanguage.g:4801:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1529,7 +1615,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalBaseLanguage.g:4475:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalBaseLanguage.g:4801:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1566,11 +1652,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4477:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalBaseLanguage.g:4477:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalBaseLanguage.g:4803:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalBaseLanguage.g:4803:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalBaseLanguage.g:4477:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalBaseLanguage.g:4803:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1586,7 +1672,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4477:24: '\\\\' .
+            	    // InternalBaseLanguage.g:4803:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1594,7 +1680,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalBaseLanguage.g:4477:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalBaseLanguage.g:4803:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1631,10 +1717,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4479:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalBaseLanguage.g:4479:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalBaseLanguage.g:4805:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalBaseLanguage.g:4805:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalBaseLanguage.g:4479:11: ( '^' )?
+            // InternalBaseLanguage.g:4805:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1643,7 +1729,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalBaseLanguage.g:4479:11: '^'
+                    // InternalBaseLanguage.g:4805:11: '^'
                     {
                     match('^'); 
 
@@ -1661,7 +1747,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalBaseLanguage.g:4479:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalBaseLanguage.g:4805:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1710,12 +1796,12 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4481:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalBaseLanguage.g:4481:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalBaseLanguage.g:4807:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalBaseLanguage.g:4807:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalBaseLanguage.g:4481:24: ( options {greedy=false; } : . )*
+            // InternalBaseLanguage.g:4807:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1740,7 +1826,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4481:52: .
+            	    // InternalBaseLanguage.g:4807:52: .
             	    {
             	    matchAny(); 
 
@@ -1770,12 +1856,12 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4483:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalBaseLanguage.g:4483:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalBaseLanguage.g:4809:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalBaseLanguage.g:4809:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalBaseLanguage.g:4483:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalBaseLanguage.g:4809:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1788,7 +1874,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalBaseLanguage.g:4483:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalBaseLanguage.g:4809: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();
@@ -1808,7 +1894,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalBaseLanguage.g:4483:40: ( ( '\\r' )? '\\n' )?
+            // InternalBaseLanguage.g:4809:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1817,9 +1903,9 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalBaseLanguage.g:4483:41: ( '\\r' )? '\\n'
+                    // InternalBaseLanguage.g:4809:41: ( '\\r' )? '\\n'
                     {
-                    // InternalBaseLanguage.g:4483:41: ( '\\r' )?
+                    // InternalBaseLanguage.g:4809:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -1828,7 +1914,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalBaseLanguage.g:4483:41: '\\r'
+                            // InternalBaseLanguage.g:4809:41: '\\r'
                             {
                             match('\r'); 
 
@@ -1860,10 +1946,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4485:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalBaseLanguage.g:4485:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalBaseLanguage.g:4811:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalBaseLanguage.g:4811:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalBaseLanguage.g:4485:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalBaseLanguage.g:4811:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -1917,8 +2003,8 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:4487:16: ( . )
-            // InternalBaseLanguage.g:4487:18: .
+            // InternalBaseLanguage.g:4813:16: ( . )
+            // InternalBaseLanguage.g:4813:18: .
             {
             matchAny(); 
 
@@ -1933,8 +2019,8 @@ public class InternalBaseLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalBaseLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=66;
+        // InternalBaseLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=70;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2337,63 +2423,91 @@ public class InternalBaseLanguageLexer extends Lexer {
                 }
                 break;
             case 58 :
-                // InternalBaseLanguage.g:1:352: RULE_INT
+                // InternalBaseLanguage.g:1:352: T__72
                 {
-                mRULE_INT(); 
+                mT__72(); 
 
                 }
                 break;
             case 59 :
-                // InternalBaseLanguage.g:1:361: RULE_DOUBLE
+                // InternalBaseLanguage.g:1:358: T__73
                 {
-                mRULE_DOUBLE(); 
+                mT__73(); 
 
                 }
                 break;
             case 60 :
-                // InternalBaseLanguage.g:1:373: RULE_STRING
+                // InternalBaseLanguage.g:1:364: T__74
                 {
-                mRULE_STRING(); 
+                mT__74(); 
 
                 }
                 break;
             case 61 :
-                // InternalBaseLanguage.g:1:385: RULE_QUOTED_ID
+                // InternalBaseLanguage.g:1:370: T__75
                 {
-                mRULE_QUOTED_ID(); 
+                mT__75(); 
 
                 }
                 break;
             case 62 :
-                // InternalBaseLanguage.g:1:400: RULE_ID
+                // InternalBaseLanguage.g:1:376: RULE_INT
                 {
-                mRULE_ID(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 63 :
-                // InternalBaseLanguage.g:1:408: RULE_ML_COMMENT
+                // InternalBaseLanguage.g:1:385: RULE_DOUBLE
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 64 :
-                // InternalBaseLanguage.g:1:424: RULE_SL_COMMENT
+                // InternalBaseLanguage.g:1:397: RULE_STRING
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 65 :
-                // InternalBaseLanguage.g:1:440: RULE_WS
+                // InternalBaseLanguage.g:1:409: RULE_QUOTED_ID
                 {
-                mRULE_WS(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 66 :
-                // InternalBaseLanguage.g:1:448: RULE_ANY_OTHER
+                // InternalBaseLanguage.g:1:424: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 67 :
+                // InternalBaseLanguage.g:1:432: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 68 :
+                // InternalBaseLanguage.g:1:448: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 69 :
+                // InternalBaseLanguage.g:1:464: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 70 :
+                // InternalBaseLanguage.g:1:472: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2457,92 +2571,90 @@ public class InternalBaseLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "4473:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "4799:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\70\1\72\1\uffff\1\75\1\77\1\uffff\1\102\1\uffff\1\106\1\uffff\1\110\1\111\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\122\1\123\1\124\1\uffff\1\126\1\127\1\131\1\132\1\133\3\67\1\137\3\uffff\1\67\1\146\1\uffff\2\67\1\uffff\3\67\1\uffff\1\67\1\160\2\64\3\uffff\2\67\12\uffff\1\160\17\uffff\1\170\6\uffff\1\67\3\uffff\1\172\2\67\4\uffff\2\67\3\uffff\2\67\1\uffff\3\67\1\uffff\1\67\5\uffff\3\67\1\uffff\1\67\1\uffff\1\u008a\1\u008b\4\67\1\u0090\6\67\1\u0097\1\67\2\uffff\1\67\1\u009a\2\67\1\uffff\3\67\1\u00a0\1\u00a1\1\u00a2\1\uffff\1\u00a3\1\u00a4\1\uffff\5\67\5\uffff\2\67\1\u00ac\2\67\1\u00af\1\67\1\uffff\1\67\1\u00b2\1\uffff\1\u00b3\1\67\2\uffff\1\67\1\u00b6\1\uffff";
+        "\1\uffff\1\72\1\74\1\uffff\1\77\1\101\1\uffff\1\104\1\uffff\1\110\1\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\124\1\125\1\126\1\uffff\1\130\1\131\1\134\1\135\1\136\3\71\1\142\3\uffff\1\71\2\uffff\1\71\1\154\1\uffff\2\71\1\uffff\3\71\1\uffff\1\165\2\66\3\uffff\2\71\12\uffff\1\165\17\uffff\1\175\6\uffff\2\71\3\uffff\1\u0080\2\71\4\uffff\2\71\2\uffff\1\71\3\uffff\2\71\1\uffff\3\71\6\uffff\3\71\1\uffff\2\71\1\uffff\1\u0092\1\u0093\6\71\1\u009a\5\71\1\u00a0\2\71\2\uffff\1\u00a3\1\u00a4\4\71\1\uffff\2\71\1\u00ab\1\u00ac\1\u00ad\1\uffff\1\u00ae\1\71\2\uffff\6\71\4\uffff\5\71\1\u00bb\2\71\1\u00be\1\71\1\u00c0\1\71\1\uffff\1\u00c2\1\u00c3\1\uffff\1\71\1\uffff\1\u00c5\2\uffff\1\71\1\uffff\1\u00c7\1\uffff";
     static final String DFA17_eofS =
-        "\u00b7\uffff";
+        "\u00c8\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\122\1\117\1\116\1\101\3\uffff\1\141\1\75\1\uffff\1\151\1\156\1\uffff\1\164\1\170\1\157\1\uffff\1\162\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\6\uffff\1\162\3\uffff\1\60\1\122\1\104\4\uffff\1\154\1\151\3\uffff\1\164\1\163\1\uffff\1\162\1\160\1\157\1\uffff\1\165\5\uffff\1\163\2\141\1\uffff\1\141\1\uffff\2\60\1\165\1\144\1\145\1\164\1\60\1\151\1\162\1\154\2\145\1\164\1\60\1\171\2\uffff\1\145\1\60\1\162\1\141\1\uffff\1\156\2\145\3\60\1\uffff\2\60\1\uffff\1\141\1\156\1\147\1\163\1\141\5\uffff\1\154\1\143\1\60\1\163\1\156\1\60\1\145\1\uffff\1\151\1\60\1\uffff\1\60\1\157\2\uffff\1\156\1\60\1\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\122\1\117\1\116\1\101\3\uffff\1\162\2\uffff\1\170\1\75\1\uffff\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\6\uffff\1\162\1\163\3\uffff\1\60\1\122\1\104\4\uffff\1\160\1\165\2\uffff\1\160\3\uffff\1\164\1\163\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\141\1\164\1\uffff\2\60\3\145\1\162\1\145\1\164\1\60\1\151\1\154\1\144\1\145\1\164\1\60\1\171\1\162\2\uffff\2\60\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\3\60\1\uffff\1\60\1\141\2\uffff\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\2\163\1\154\1\143\1\60\1\156\1\164\1\60\1\151\1\60\1\145\1\uffff\2\60\1\uffff\1\157\1\uffff\1\60\2\uffff\1\156\1\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\122\1\117\1\116\1\172\3\uffff\1\157\1\75\1\uffff\1\151\1\156\1\uffff\1\164\1\170\1\157\1\uffff\1\162\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\6\uffff\1\162\3\uffff\1\172\1\122\1\104\4\uffff\1\154\1\151\3\uffff\2\164\1\uffff\1\162\1\160\1\157\1\uffff\1\165\5\uffff\1\163\2\141\1\uffff\1\141\1\uffff\2\172\1\165\1\144\1\145\1\164\1\172\1\151\1\162\1\154\2\145\1\164\1\172\1\171\2\uffff\1\145\1\172\1\162\1\141\1\uffff\1\156\2\145\3\172\1\uffff\2\172\1\uffff\1\141\1\156\1\147\1\163\1\141\5\uffff\1\154\1\143\1\172\1\163\1\156\1\172\1\145\1\uffff\1\151\1\172\1\uffff\1\172\1\157\2\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\122\1\117\1\116\1\172\3\uffff\1\171\2\uffff\1\170\1\75\1\uffff\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\6\uffff\1\162\1\163\3\uffff\1\172\1\122\1\104\4\uffff\1\160\1\165\2\uffff\1\164\3\uffff\2\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\141\1\164\1\uffff\2\172\3\145\1\162\1\145\1\164\1\172\1\151\1\154\1\144\1\145\1\164\1\172\1\171\1\162\2\uffff\2\172\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\3\172\1\uffff\1\172\1\141\2\uffff\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\2\163\1\154\1\143\1\172\1\156\1\164\1\172\1\151\1\172\1\145\1\uffff\2\172\1\uffff\1\157\1\uffff\1\172\2\uffff\1\156\1\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\11\uffff\1\45\1\46\1\47\2\uffff\1\52\2\uffff\1\56\3\uffff\1\67\4\uffff\1\76\1\101\1\102\2\uffff\1\76\1\35\1\2\1\3\1\4\1\5\1\70\1\7\1\6\1\10\1\uffff\1\11\1\12\1\77\1\100\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\36\1\37\1\40\3\uffff\1\44\1\45\1\46\1\47\2\uffff\1\53\1\51\1\52\2\uffff\1\56\3\uffff\1\67\1\uffff\1\72\1\73\1\74\1\75\1\101\3\uffff\1\26\1\uffff\1\41\17\uffff\1\42\1\43\4\uffff\1\61\6\uffff\1\65\2\uffff\1\64\5\uffff\1\71\1\1\1\62\1\66\1\50\7\uffff\1\57\2\uffff\1\54\2\uffff\1\63\1\55\2\uffff\1\60";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\11\uffff\1\45\1\46\1\47\1\uffff\1\51\1\52\2\uffff\1\55\2\uffff\1\61\3\uffff\1\72\3\uffff\1\102\1\105\1\106\2\uffff\1\102\1\35\1\2\1\3\1\4\1\5\1\73\1\7\1\6\1\10\1\uffff\1\11\1\12\1\103\1\104\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\1\31\1\32\1\33\1\34\2\uffff\1\36\1\37\1\40\3\uffff\1\44\1\45\1\46\1\47\2\uffff\1\51\1\52\1\uffff\1\56\1\54\1\55\2\uffff\1\61\3\uffff\1\72\1\76\1\77\1\100\1\101\1\105\3\uffff\1\26\2\uffff\1\41\21\uffff\1\42\1\43\6\uffff\1\64\5\uffff\1\70\2\uffff\1\50\1\74\6\uffff\1\67\1\1\1\65\1\71\14\uffff\1\62\2\uffff\1\53\1\uffff\1\57\1\uffff\1\66\1\75\1\uffff\1\60\1\uffff\1\63";
     static final String DFA17_specialS =
-        "\1\0\57\uffff\1\1\1\2\u0085\uffff}>";
+        "\1\0\61\uffff\1\1\1\2\u0094\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\64\2\63\2\64\1\63\22\64\1\63\1\4\1\60\2\64\1\12\1\64\1\61\1\41\1\42\1\10\1\6\1\43\1\7\1\55\1\11\12\57\1\45\1\46\1\5\1\3\1\2\2\64\1\37\3\62\1\15\1\62\1\20\5\62\1\21\1\62\1\35\1\16\3\62\1\17\3\62\1\36\1\13\1\14\3\64\1\40\1\62\1\64\1\32\1\54\1\25\1\24\1\53\1\1\1\62\1\23\1\50\1\62\1\22\1\47\1\26\1\30\1\62\1\31\2\62\1\52\1\56\1\62\1\44\2\62\1\34\1\33\1\64\1\51\70\64\1\27\uff4a\64",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\1\65\12\67\1\66\16\67",
-            "\1\71",
+            "\11\66\2\65\2\66\1\65\22\66\1\65\1\4\1\62\2\66\1\12\1\66\1\63\1\41\1\42\1\10\1\6\1\43\1\7\1\60\1\11\12\61\1\50\1\51\1\5\1\3\1\2\2\66\1\37\3\64\1\15\1\64\1\20\5\64\1\21\1\64\1\35\1\16\3\64\1\17\3\64\1\36\1\13\1\14\3\66\1\40\1\64\1\66\1\32\1\56\1\25\1\24\1\47\1\1\1\64\1\23\1\53\1\64\1\22\1\52\1\26\1\30\1\64\1\31\2\64\1\55\1\44\1\64\1\57\2\64\1\34\1\33\1\45\1\54\1\46\67\66\1\27\uff4a\66",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\1\67\12\71\1\70\16\71",
+            "\1\73",
             "",
-            "\1\74",
             "\1\76",
+            "\1\100",
             "",
-            "\12\101",
+            "\12\103",
             "",
-            "\1\104\4\uffff\1\105",
+            "\1\106\4\uffff\1\107",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\1\121\31\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\1\123\31\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\21\67\1\130\10\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\134",
-            "\1\135",
-            "\1\136",
-            "\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\1\71\1\133\17\71\1\132\10\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\137",
+            "\1\140",
+            "\1\141",
+            "\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
             "",
             "",
-            "\1\143\15\uffff\1\144",
-            "\1\145",
+            "\1\147\6\uffff\1\146",
             "",
-            "\1\150",
-            "\1\151",
             "",
+            "\1\152",
             "\1\153",
-            "\1\154",
-            "\1\155",
             "",
+            "\1\156",
             "\1\157",
-            "\1\161\1\uffff\12\101\53\uffff\1\161",
-            "\0\162",
-            "\0\163",
-            "",
-            "",
             "",
-            "\1\165",
-            "\1\166",
+            "\1\161",
+            "\1\162",
+            "\1\163",
             "",
+            "\1\166\1\uffff\12\103\53\uffff\1\166",
+            "\0\167",
+            "\0\170",
             "",
             "",
             "",
+            "\1\172",
+            "\1\173",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\1\161\1\uffff\12\101\53\uffff\1\161",
             "",
             "",
             "",
             "",
+            "\1\166\1\uffff\12\103\53\uffff\1\166",
             "",
             "",
             "",
@@ -2554,107 +2666,126 @@ public class InternalBaseLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\23\67\1\167\6\67",
             "",
             "",
             "",
             "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\23\71\1\174\6\71",
             "",
             "",
-            "\1\171",
             "",
             "",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\173",
-            "\1\174",
             "",
+            "\1\176",
+            "\1\177",
             "",
             "",
             "",
-            "\1\175",
-            "\1\176",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u0081",
+            "\1\u0082",
             "",
             "",
             "",
-            "\1\177",
-            "\1\u0080\1\u0081",
             "",
-            "\1\u0082",
             "\1\u0083",
             "\1\u0084",
             "",
-            "\1\u0085",
             "",
+            "\1\u0086\3\uffff\1\u0085",
             "",
             "",
             "",
-            "",
-            "\1\u0086",
             "\1\u0087",
-            "\1\u0088",
-            "",
-            "\1\u0089",
+            "\1\u0088\1\u0089",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u008a",
+            "\1\u008b",
             "\1\u008c",
+            "",
+            "",
+            "",
+            "",
+            "",
+            "",
             "\1\u008d",
             "\1\u008e",
             "\1\u008f",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "",
+            "\1\u0090",
             "\1\u0091",
-            "\1\u0092",
-            "\1\u0093",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u0094",
             "\1\u0095",
             "\1\u0096",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u0097",
             "\1\u0098",
-            "",
-            "",
             "\1\u0099",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u009b",
             "\1\u009c",
-            "",
             "\1\u009d",
             "\1\u009e",
             "\1\u009f",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00a1",
+            "\1\u00a2",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "\1\u00a5",
             "\1\u00a6",
             "\1\u00a7",
             "\1\u00a8",
+            "",
             "\1\u00a9",
+            "\1\u00aa",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00af",
             "",
             "",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
             "",
             "",
-            "\1\u00aa",
-            "\1\u00ab",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00ad",
-            "\1\u00ae",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00b0",
             "",
-            "\1\u00b1",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
-            "\1\u00b4",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00bf",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\1\u00c1",
             "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             "",
-            "\1\u00b5",
-            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\1\u00c4",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
+            "",
+            "",
+            "\1\u00c6",
+            "",
+            "\12\71\7\uffff\32\71\4\uffff\1\71\1\uffff\32\71",
             ""
     };
 
@@ -2688,7 +2819,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -2768,59 +2899,63 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 35;}
 
-                        else if ( (LA17_0=='v') ) {s = 36;}
+                        else if ( (LA17_0=='t') ) {s = 36;}
+
+                        else if ( (LA17_0=='{') ) {s = 37;}
+
+                        else if ( (LA17_0=='}') ) {s = 38;}
 
-                        else if ( (LA17_0==':') ) {s = 37;}
+                        else if ( (LA17_0=='e') ) {s = 39;}
 
-                        else if ( (LA17_0==';') ) {s = 38;}
+                        else if ( (LA17_0==':') ) {s = 40;}
 
-                        else if ( (LA17_0=='l') ) {s = 39;}
+                        else if ( (LA17_0==';') ) {s = 41;}
 
-                        else if ( (LA17_0=='i') ) {s = 40;}
+                        else if ( (LA17_0=='l') ) {s = 42;}
 
-                        else if ( (LA17_0=='|') ) {s = 41;}
+                        else if ( (LA17_0=='i') ) {s = 43;}
 
-                        else if ( (LA17_0=='s') ) {s = 42;}
+                        else if ( (LA17_0=='|') ) {s = 44;}
 
-                        else if ( (LA17_0=='e') ) {s = 43;}
+                        else if ( (LA17_0=='s') ) {s = 45;}
 
-                        else if ( (LA17_0=='b') ) {s = 44;}
+                        else if ( (LA17_0=='b') ) {s = 46;}
 
-                        else if ( (LA17_0=='.') ) {s = 45;}
+                        else if ( (LA17_0=='v') ) {s = 47;}
 
-                        else if ( (LA17_0=='t') ) {s = 46;}
+                        else if ( (LA17_0=='.') ) {s = 48;}
 
-                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 47;}
+                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 49;}
 
-                        else if ( (LA17_0=='\"') ) {s = 48;}
+                        else if ( (LA17_0=='\"') ) {s = 50;}
 
-                        else if ( (LA17_0=='\'') ) {s = 49;}
+                        else if ( (LA17_0=='\'') ) {s = 51;}
 
-                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='o'||(LA17_0>='q' && LA17_0<='r')||LA17_0=='u'||(LA17_0>='w' && LA17_0<='x')) ) {s = 50;}
+                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='o'||(LA17_0>='q' && LA17_0<='r')||LA17_0=='u'||(LA17_0>='w' && LA17_0<='x')) ) {s = 52;}
 
-                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 51;}
+                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 53;}
 
-                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||LA17_0=='{'||(LA17_0>='}' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 52;}
+                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 54;}
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA17_48 = input.LA(1);
+                        int LA17_50 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_48>='\u0000' && LA17_48<='\uFFFF')) ) {s = 114;}
+                        if ( ((LA17_50>='\u0000' && LA17_50<='\uFFFF')) ) {s = 119;}
 
-                        else s = 52;
+                        else s = 54;
 
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA17_49 = input.LA(1);
+                        int LA17_51 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_49>='\u0000' && LA17_49<='\uFFFF')) ) {s = 115;}
+                        if ( ((LA17_51>='\u0000' && LA17_51<='\uFFFF')) ) {s = 120;}
 
-                        else s = 52;
+                        else s = 54;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageParser.java b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageParser.java
index 4e44433c..40bcf9d5 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.base.dsl.ide/src-gen/de/evoal/languages/model/base/dsl/ide/contentassist/antlr/internal/InternalBaseLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalBaseLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "'value'", "':'", "';'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'.'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "'type'", "'{'", "'}'", "'extends'", "':'", "';'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -66,6 +66,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     public static final int T__65=65;
     public static final int T__70=70;
     public static final int T__71=71;
+    public static final int T__72=72;
     public static final int RULE_STRING=8;
     public static final int RULE_SL_COMMENT=12;
     public static final int T__37=37;
@@ -76,9 +77,12 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     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__73=73;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__74=74;
     public static final int T__31=31;
+    public static final int T__75=75;
     public static final int T__32=32;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
@@ -1232,31 +1236,102 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalBaseLanguage.g:413:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:413:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:417:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:418:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalBaseLanguage.g:417:2: ( ( ruleConstantReferenceRule ) )
+            // InternalBaseLanguage.g:418:2: ( ruleConstantReferenceRule )
             {
-            // InternalBaseLanguage.g:418:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalBaseLanguage.g:419:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalBaseLanguage.g:418:2: ( ruleConstantReferenceRule )
+            // InternalBaseLanguage.g:419:3: ruleConstantReferenceRule
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:420:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalBaseLanguage.g:420:4: rule__ValueReferenceRule__Group__0
+             before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalBaseLanguage.g:429:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalBaseLanguage.g:430:1: ( ruleConstantReferenceRule EOF )
+            // InternalBaseLanguage.g:431:1: ruleConstantReferenceRule EOF
+            {
+             before(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalBaseLanguage.g:438:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:442:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalBaseLanguage.g:443:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            {
+            // InternalBaseLanguage.g:443:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalBaseLanguage.g:444:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            // InternalBaseLanguage.g:445:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalBaseLanguage.g:445:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
 
             }
 
@@ -1275,15 +1350,15 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalBaseLanguage.g:429:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
+    // InternalBaseLanguage.g:454:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
     public final void entryRuleLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:430:1: ( ruleLiteralRule EOF )
-            // InternalBaseLanguage.g:431:1: ruleLiteralRule EOF
+            // InternalBaseLanguage.g:455:1: ( ruleLiteralRule EOF )
+            // InternalBaseLanguage.g:456:1: ruleLiteralRule EOF
             {
              before(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1309,21 +1384,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalBaseLanguage.g:438:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:463:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
     public final void ruleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:442:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:443:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalBaseLanguage.g:467:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:468:2: ( ( rule__LiteralRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:443:2: ( ( rule__LiteralRule__Alternatives ) )
-            // InternalBaseLanguage.g:444:3: ( rule__LiteralRule__Alternatives )
+            // InternalBaseLanguage.g:468:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalBaseLanguage.g:469:3: ( rule__LiteralRule__Alternatives )
             {
              before(grammarAccess.getLiteralRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:445:3: ( rule__LiteralRule__Alternatives )
-            // InternalBaseLanguage.g:445:4: rule__LiteralRule__Alternatives
+            // InternalBaseLanguage.g:470:3: ( rule__LiteralRule__Alternatives )
+            // InternalBaseLanguage.g:470:4: rule__LiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralRule__Alternatives();
@@ -1356,11 +1431,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalBaseLanguage.g:454:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
+    // InternalBaseLanguage.g:479:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
     public final void entryRuleNumberLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:455:1: ( ruleNumberLiteralRule EOF )
-            // InternalBaseLanguage.g:456:1: ruleNumberLiteralRule EOF
+            // InternalBaseLanguage.g:480:1: ( ruleNumberLiteralRule EOF )
+            // InternalBaseLanguage.g:481:1: ruleNumberLiteralRule EOF
             {
              before(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1386,21 +1461,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalBaseLanguage.g:463:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:488:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
     public final void ruleNumberLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:467:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:468:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalBaseLanguage.g:492:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:493:2: ( ( rule__NumberLiteralRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:468:2: ( ( rule__NumberLiteralRule__Alternatives ) )
-            // InternalBaseLanguage.g:469:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalBaseLanguage.g:493:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalBaseLanguage.g:494:3: ( rule__NumberLiteralRule__Alternatives )
             {
              before(grammarAccess.getNumberLiteralRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:470:3: ( rule__NumberLiteralRule__Alternatives )
-            // InternalBaseLanguage.g:470:4: rule__NumberLiteralRule__Alternatives
+            // InternalBaseLanguage.g:495:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalBaseLanguage.g:495:4: rule__NumberLiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__NumberLiteralRule__Alternatives();
@@ -1433,11 +1508,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalBaseLanguage.g:479:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
+    // InternalBaseLanguage.g:504:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
     public final void entryRuleDoubleLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:480:1: ( ruleDoubleLiteralRule EOF )
-            // InternalBaseLanguage.g:481:1: ruleDoubleLiteralRule EOF
+            // InternalBaseLanguage.g:505:1: ( ruleDoubleLiteralRule EOF )
+            // InternalBaseLanguage.g:506:1: ruleDoubleLiteralRule EOF
             {
              before(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1463,21 +1538,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalBaseLanguage.g:488:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:513:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
     public final void ruleDoubleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:492:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:493:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:517:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:518:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:493:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
-            // InternalBaseLanguage.g:494:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:518:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:519:3: ( rule__DoubleLiteralRule__Group__0 )
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:495:3: ( rule__DoubleLiteralRule__Group__0 )
-            // InternalBaseLanguage.g:495:4: rule__DoubleLiteralRule__Group__0
+            // InternalBaseLanguage.g:520:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:520:4: rule__DoubleLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__Group__0();
@@ -1510,11 +1585,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalBaseLanguage.g:504:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
+    // InternalBaseLanguage.g:529:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
     public final void entryRuleIntegerLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:505:1: ( ruleIntegerLiteralRule EOF )
-            // InternalBaseLanguage.g:506:1: ruleIntegerLiteralRule EOF
+            // InternalBaseLanguage.g:530:1: ( ruleIntegerLiteralRule EOF )
+            // InternalBaseLanguage.g:531:1: ruleIntegerLiteralRule EOF
             {
              before(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1540,21 +1615,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalBaseLanguage.g:513:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:538:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
     public final void ruleIntegerLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:517:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:518:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:542:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:543:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:518:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
-            // InternalBaseLanguage.g:519:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:543:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:544:3: ( rule__IntegerLiteralRule__Group__0 )
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:520:3: ( rule__IntegerLiteralRule__Group__0 )
-            // InternalBaseLanguage.g:520:4: rule__IntegerLiteralRule__Group__0
+            // InternalBaseLanguage.g:545:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:545:4: rule__IntegerLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__0();
@@ -1587,11 +1662,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalBaseLanguage.g:529:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
+    // InternalBaseLanguage.g:554:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
     public final void entryRuleStringLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:530:1: ( ruleStringLiteralRule EOF )
-            // InternalBaseLanguage.g:531:1: ruleStringLiteralRule EOF
+            // InternalBaseLanguage.g:555:1: ( ruleStringLiteralRule EOF )
+            // InternalBaseLanguage.g:556:1: ruleStringLiteralRule EOF
             {
              before(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1617,21 +1692,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalBaseLanguage.g:538:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
+    // InternalBaseLanguage.g:563:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
     public final void ruleStringLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:542:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
-            // InternalBaseLanguage.g:543:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalBaseLanguage.g:567:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
+            // InternalBaseLanguage.g:568:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
             {
-            // InternalBaseLanguage.g:543:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
-            // InternalBaseLanguage.g:544:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalBaseLanguage.g:568:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalBaseLanguage.g:569:3: ( rule__StringLiteralRule__ValueAssignment )
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueAssignment()); 
-            // InternalBaseLanguage.g:545:3: ( rule__StringLiteralRule__ValueAssignment )
-            // InternalBaseLanguage.g:545:4: rule__StringLiteralRule__ValueAssignment
+            // InternalBaseLanguage.g:570:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalBaseLanguage.g:570:4: rule__StringLiteralRule__ValueAssignment
             {
             pushFollow(FOLLOW_2);
             rule__StringLiteralRule__ValueAssignment();
@@ -1664,11 +1739,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalBaseLanguage.g:554:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
+    // InternalBaseLanguage.g:579:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
     public final void entryRuleBooleanLiteralRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:555:1: ( ruleBooleanLiteralRule EOF )
-            // InternalBaseLanguage.g:556:1: ruleBooleanLiteralRule EOF
+            // InternalBaseLanguage.g:580:1: ( ruleBooleanLiteralRule EOF )
+            // InternalBaseLanguage.g:581:1: ruleBooleanLiteralRule EOF
             {
              before(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1694,21 +1769,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalBaseLanguage.g:563:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:588:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
     public final void ruleBooleanLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:567:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:568:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:592:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:593:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:568:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
-            // InternalBaseLanguage.g:569:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:593:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalBaseLanguage.g:594:3: ( rule__BooleanLiteralRule__Group__0 )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:570:3: ( rule__BooleanLiteralRule__Group__0 )
-            // InternalBaseLanguage.g:570:4: rule__BooleanLiteralRule__Group__0
+            // InternalBaseLanguage.g:595:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalBaseLanguage.g:595:4: rule__BooleanLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__0();
@@ -1740,12 +1815,89 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalBaseLanguage.g:604:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalBaseLanguage.g:605:1: ( ruleTypeDefinitionRule EOF )
+            // InternalBaseLanguage.g:606:1: ruleTypeDefinitionRule EOF
+            {
+             before(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalBaseLanguage.g:613:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:617:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:618:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalBaseLanguage.g:618:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalBaseLanguage.g:619:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            // InternalBaseLanguage.g:620:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalBaseLanguage.g:620:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalBaseLanguage.g:579:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalBaseLanguage.g:629:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:580:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalBaseLanguage.g:581:1: ruleAttributeDefinitionRule EOF
+            // InternalBaseLanguage.g:630:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalBaseLanguage.g:631:1: ruleAttributeDefinitionRule EOF
             {
              before(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1771,21 +1923,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalBaseLanguage.g:588:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:638:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:592:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:593:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalBaseLanguage.g:642:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:643:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:593:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalBaseLanguage.g:594:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalBaseLanguage.g:643:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalBaseLanguage.g:644:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:595:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalBaseLanguage.g:595:4: rule__AttributeDefinitionRule__Group__0
+            // InternalBaseLanguage.g:645:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalBaseLanguage.g:645:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -1818,11 +1970,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalBaseLanguage.g:604:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalBaseLanguage.g:654:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:605:1: ( ruleTypeRule EOF )
-            // InternalBaseLanguage.g:606:1: ruleTypeRule EOF
+            // InternalBaseLanguage.g:655:1: ( ruleTypeRule EOF )
+            // InternalBaseLanguage.g:656:1: ruleTypeRule EOF
             {
              before(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1848,21 +2000,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalBaseLanguage.g:613:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:663:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:617:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:618:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalBaseLanguage.g:667:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:668:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:618:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalBaseLanguage.g:619:3: ( rule__TypeRule__Alternatives )
+            // InternalBaseLanguage.g:668:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalBaseLanguage.g:669:3: ( rule__TypeRule__Alternatives )
             {
              before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:620:3: ( rule__TypeRule__Alternatives )
-            // InternalBaseLanguage.g:620:4: rule__TypeRule__Alternatives
+            // InternalBaseLanguage.g:670:3: ( rule__TypeRule__Alternatives )
+            // InternalBaseLanguage.g:670:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -1895,11 +2047,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalBaseLanguage.g:629:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalBaseLanguage.g:679:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:630:1: ( ruleLiteralTypeRule EOF )
-            // InternalBaseLanguage.g:631:1: ruleLiteralTypeRule EOF
+            // InternalBaseLanguage.g:680:1: ( ruleLiteralTypeRule EOF )
+            // InternalBaseLanguage.g:681:1: ruleLiteralTypeRule EOF
             {
              before(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1925,21 +2077,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalBaseLanguage.g:638:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:688:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:642:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:643:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:692:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:693:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:643:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:644:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalBaseLanguage.g:693:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:694:3: ( rule__LiteralTypeRule__Group__0 )
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:645:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalBaseLanguage.g:645:4: rule__LiteralTypeRule__Group__0
+            // InternalBaseLanguage.g:695:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalBaseLanguage.g:695:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -1972,11 +2124,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalBaseLanguage.g:654:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalBaseLanguage.g:704:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:655:1: ( ruleInstanceTypeRule EOF )
-            // InternalBaseLanguage.g:656:1: ruleInstanceTypeRule EOF
+            // InternalBaseLanguage.g:705:1: ( ruleInstanceTypeRule EOF )
+            // InternalBaseLanguage.g:706:1: ruleInstanceTypeRule EOF
             {
              before(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2002,21 +2154,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalBaseLanguage.g:663:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:713:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:667:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:668:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:717:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:718:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:668:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:669:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalBaseLanguage.g:718:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:719:3: ( rule__InstanceTypeRule__Group__0 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:670:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalBaseLanguage.g:670:4: rule__InstanceTypeRule__Group__0
+            // InternalBaseLanguage.g:720:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalBaseLanguage.g:720:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -2049,11 +2201,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalBaseLanguage.g:679:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalBaseLanguage.g:729:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:680:1: ( ruleStringTypeRule EOF )
-            // InternalBaseLanguage.g:681:1: ruleStringTypeRule EOF
+            // InternalBaseLanguage.g:730:1: ( ruleStringTypeRule EOF )
+            // InternalBaseLanguage.g:731:1: ruleStringTypeRule EOF
             {
              before(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2079,21 +2231,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalBaseLanguage.g:688:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:738:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:692:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:693:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:742:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:743:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:693:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:694:3: ( rule__StringTypeRule__Group__0 )
+            // InternalBaseLanguage.g:743:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:744:3: ( rule__StringTypeRule__Group__0 )
             {
              before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:695:3: ( rule__StringTypeRule__Group__0 )
-            // InternalBaseLanguage.g:695:4: rule__StringTypeRule__Group__0
+            // InternalBaseLanguage.g:745:3: ( rule__StringTypeRule__Group__0 )
+            // InternalBaseLanguage.g:745:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -2126,11 +2278,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalBaseLanguage.g:704:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalBaseLanguage.g:754:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:705:1: ( ruleExpressionTypeRule EOF )
-            // InternalBaseLanguage.g:706:1: ruleExpressionTypeRule EOF
+            // InternalBaseLanguage.g:755:1: ( ruleExpressionTypeRule EOF )
+            // InternalBaseLanguage.g:756:1: ruleExpressionTypeRule EOF
             {
              before(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2156,21 +2308,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalBaseLanguage.g:713:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:763:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:717:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:718:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:767:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:768:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:718:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:719:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalBaseLanguage.g:768:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:769:3: ( rule__ExpressionTypeRule__Group__0 )
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:720:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalBaseLanguage.g:720:4: rule__ExpressionTypeRule__Group__0
+            // InternalBaseLanguage.g:770:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalBaseLanguage.g:770:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -2203,11 +2355,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalBaseLanguage.g:729:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalBaseLanguage.g:779:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:730:1: ( ruleIntTypeRule EOF )
-            // InternalBaseLanguage.g:731:1: ruleIntTypeRule EOF
+            // InternalBaseLanguage.g:780:1: ( ruleIntTypeRule EOF )
+            // InternalBaseLanguage.g:781:1: ruleIntTypeRule EOF
             {
              before(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2233,21 +2385,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalBaseLanguage.g:738:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:788:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:742:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:743:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:792:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:793:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:743:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:744:3: ( rule__IntTypeRule__Group__0 )
+            // InternalBaseLanguage.g:793:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:794:3: ( rule__IntTypeRule__Group__0 )
             {
              before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:745:3: ( rule__IntTypeRule__Group__0 )
-            // InternalBaseLanguage.g:745:4: rule__IntTypeRule__Group__0
+            // InternalBaseLanguage.g:795:3: ( rule__IntTypeRule__Group__0 )
+            // InternalBaseLanguage.g:795:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -2280,11 +2432,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalBaseLanguage.g:754:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalBaseLanguage.g:804:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:755:1: ( ruleFloatTypeRule EOF )
-            // InternalBaseLanguage.g:756:1: ruleFloatTypeRule EOF
+            // InternalBaseLanguage.g:805:1: ( ruleFloatTypeRule EOF )
+            // InternalBaseLanguage.g:806:1: ruleFloatTypeRule EOF
             {
              before(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2310,21 +2462,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalBaseLanguage.g:763:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:813:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:767:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:768:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:817:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:818:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:768:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:769:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalBaseLanguage.g:818:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:819:3: ( rule__FloatTypeRule__Group__0 )
             {
              before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:770:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalBaseLanguage.g:770:4: rule__FloatTypeRule__Group__0
+            // InternalBaseLanguage.g:820:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalBaseLanguage.g:820:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -2357,11 +2509,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalBaseLanguage.g:779:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalBaseLanguage.g:829:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:780:1: ( ruleBooleanTypeRule EOF )
-            // InternalBaseLanguage.g:781:1: ruleBooleanTypeRule EOF
+            // InternalBaseLanguage.g:830:1: ( ruleBooleanTypeRule EOF )
+            // InternalBaseLanguage.g:831:1: ruleBooleanTypeRule EOF
             {
              before(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2387,21 +2539,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalBaseLanguage.g:788:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:838:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:792:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:793:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:842:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:843:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:793:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:794:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalBaseLanguage.g:843:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:844:3: ( rule__BooleanTypeRule__Group__0 )
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:795:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalBaseLanguage.g:795:4: rule__BooleanTypeRule__Group__0
+            // InternalBaseLanguage.g:845:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalBaseLanguage.g:845:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -2434,11 +2586,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalBaseLanguage.g:804:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalBaseLanguage.g:854:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:805:1: ( ruleVoidTypeRule EOF )
-            // InternalBaseLanguage.g:806:1: ruleVoidTypeRule EOF
+            // InternalBaseLanguage.g:855:1: ( ruleVoidTypeRule EOF )
+            // InternalBaseLanguage.g:856:1: ruleVoidTypeRule EOF
             {
              before(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2464,21 +2616,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalBaseLanguage.g:813:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:863:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:817:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:818:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:867:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:868:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:818:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:819:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalBaseLanguage.g:868:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:869:3: ( rule__VoidTypeRule__Group__0 )
             {
              before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:820:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalBaseLanguage.g:820:4: rule__VoidTypeRule__Group__0
+            // InternalBaseLanguage.g:870:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalBaseLanguage.g:870:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -2511,11 +2663,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalBaseLanguage.g:829:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalBaseLanguage.g:879:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:830:1: ( ruleDataTypeRule EOF )
-            // InternalBaseLanguage.g:831:1: ruleDataTypeRule EOF
+            // InternalBaseLanguage.g:880:1: ( ruleDataTypeRule EOF )
+            // InternalBaseLanguage.g:881:1: ruleDataTypeRule EOF
             {
              before(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2541,21 +2693,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalBaseLanguage.g:838:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:888:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:842:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:843:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:892:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:893:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:843:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:844:3: ( rule__DataTypeRule__Group__0 )
+            // InternalBaseLanguage.g:893:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:894:3: ( rule__DataTypeRule__Group__0 )
             {
              before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:845:3: ( rule__DataTypeRule__Group__0 )
-            // InternalBaseLanguage.g:845:4: rule__DataTypeRule__Group__0
+            // InternalBaseLanguage.g:895:3: ( rule__DataTypeRule__Group__0 )
+            // InternalBaseLanguage.g:895:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -2588,11 +2740,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalBaseLanguage.g:854:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalBaseLanguage.g:904:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:855:1: ( ruleArrayTypeRule EOF )
-            // InternalBaseLanguage.g:856:1: ruleArrayTypeRule EOF
+            // InternalBaseLanguage.g:905:1: ( ruleArrayTypeRule EOF )
+            // InternalBaseLanguage.g:906:1: ruleArrayTypeRule EOF
             {
              before(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2618,21 +2770,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalBaseLanguage.g:863:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:913:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:867:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:868:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:917:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:918:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:868:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalBaseLanguage.g:869:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalBaseLanguage.g:918:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalBaseLanguage.g:919:3: ( rule__ArrayTypeRule__Group__0 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:870:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalBaseLanguage.g:870:4: rule__ArrayTypeRule__Group__0
+            // InternalBaseLanguage.g:920:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalBaseLanguage.g:920:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -2665,11 +2817,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalBaseLanguage.g:879:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalBaseLanguage.g:929:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:880:1: ( ruleParameterRule EOF )
-            // InternalBaseLanguage.g:881:1: ruleParameterRule EOF
+            // InternalBaseLanguage.g:930:1: ( ruleParameterRule EOF )
+            // InternalBaseLanguage.g:931:1: ruleParameterRule EOF
             {
              before(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2695,21 +2847,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalBaseLanguage.g:888:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalBaseLanguage.g:938:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:892:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalBaseLanguage.g:893:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalBaseLanguage.g:942:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalBaseLanguage.g:943:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalBaseLanguage.g:893:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalBaseLanguage.g:894:3: ( rule__ParameterRule__Group__0 )
+            // InternalBaseLanguage.g:943:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalBaseLanguage.g:944:3: ( rule__ParameterRule__Group__0 )
             {
              before(grammarAccess.getParameterRuleAccess().getGroup()); 
-            // InternalBaseLanguage.g:895:3: ( rule__ParameterRule__Group__0 )
-            // InternalBaseLanguage.g:895:4: rule__ParameterRule__Group__0
+            // InternalBaseLanguage.g:945:3: ( rule__ParameterRule__Group__0 )
+            // InternalBaseLanguage.g:945:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -2742,11 +2894,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalBaseLanguage.g:904:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalBaseLanguage.g:954:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:905:1: ( ruleFunctionNameRule EOF )
-            // InternalBaseLanguage.g:906:1: ruleFunctionNameRule EOF
+            // InternalBaseLanguage.g:955:1: ( ruleFunctionNameRule EOF )
+            // InternalBaseLanguage.g:956:1: ruleFunctionNameRule EOF
             {
              before(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2772,21 +2924,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalBaseLanguage.g:913:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalBaseLanguage.g:963:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:917:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalBaseLanguage.g:918:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalBaseLanguage.g:967:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalBaseLanguage.g:968:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalBaseLanguage.g:918:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalBaseLanguage.g:919:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalBaseLanguage.g:968:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalBaseLanguage.g:969:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
-            // InternalBaseLanguage.g:920:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalBaseLanguage.g:920:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalBaseLanguage.g:970:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalBaseLanguage.g:970:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -2819,11 +2971,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalBaseLanguage.g:929:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalBaseLanguage.g:979:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:930:1: ( ruleQualifiedName EOF )
-            // InternalBaseLanguage.g:931:1: ruleQualifiedName EOF
+            // InternalBaseLanguage.g:980:1: ( ruleQualifiedName EOF )
+            // InternalBaseLanguage.g:981:1: ruleQualifiedName EOF
             {
              before(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -2849,21 +3001,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalBaseLanguage.g:938:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalBaseLanguage.g:988:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:942:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalBaseLanguage.g:943:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalBaseLanguage.g:992:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalBaseLanguage.g:993:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalBaseLanguage.g:943:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalBaseLanguage.g:944:3: ( rule__QualifiedName__Group__0 )
+            // InternalBaseLanguage.g:993:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalBaseLanguage.g:994:3: ( rule__QualifiedName__Group__0 )
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            // InternalBaseLanguage.g:945:3: ( rule__QualifiedName__Group__0 )
-            // InternalBaseLanguage.g:945:4: rule__QualifiedName__Group__0
+            // InternalBaseLanguage.g:995:3: ( rule__QualifiedName__Group__0 )
+            // InternalBaseLanguage.g:995:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -2896,11 +3048,11 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalBaseLanguage.g:954:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalBaseLanguage.g:1004:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:955:1: ( ruleStringOrId EOF )
-            // InternalBaseLanguage.g:956:1: ruleStringOrId EOF
+            // InternalBaseLanguage.g:1005:1: ( ruleStringOrId EOF )
+            // InternalBaseLanguage.g:1006:1: ruleStringOrId EOF
             {
              before(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -2926,21 +3078,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalBaseLanguage.g:963:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalBaseLanguage.g:1013:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:967:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalBaseLanguage.g:968:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalBaseLanguage.g:1017:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalBaseLanguage.g:1018:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalBaseLanguage.g:968:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalBaseLanguage.g:969:3: ( rule__StringOrId__Alternatives )
+            // InternalBaseLanguage.g:1018:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalBaseLanguage.g:1019:3: ( rule__StringOrId__Alternatives )
             {
              before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:970:3: ( rule__StringOrId__Alternatives )
-            // InternalBaseLanguage.g:970:4: rule__StringOrId__Alternatives
+            // InternalBaseLanguage.g:1020:3: ( rule__StringOrId__Alternatives )
+            // InternalBaseLanguage.g:1020:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -2973,21 +3125,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalBaseLanguage.g:979:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:1029:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:983:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:984:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1033:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:1034:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:984:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalBaseLanguage.g:985:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1034:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1035:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
              before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:986:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalBaseLanguage.g:986:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalBaseLanguage.g:1036:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1036:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -3020,21 +3172,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalBaseLanguage.g:995:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:1045:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:999:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:1000:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1049:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:1050:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:1000:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalBaseLanguage.g:1001:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1050:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1051:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
              before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:1002:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalBaseLanguage.g:1002:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalBaseLanguage.g:1052:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1052:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -3067,21 +3219,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalBaseLanguage.g:1011:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:1061:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1015:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:1016:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1065:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:1066:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:1016:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalBaseLanguage.g:1017:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1066:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1067:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
              before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:1018:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalBaseLanguage.g:1018:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalBaseLanguage.g:1068:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalBaseLanguage.g:1068:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -3114,21 +3266,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalBaseLanguage.g:1027:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalBaseLanguage.g:1077:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1031:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalBaseLanguage.g:1032:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1081:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalBaseLanguage.g:1082:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalBaseLanguage.g:1032:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalBaseLanguage.g:1033:3: ( rule__FactorRule__Alternatives )
+            // InternalBaseLanguage.g:1082:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalBaseLanguage.g:1083:3: ( rule__FactorRule__Alternatives )
             {
              before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
-            // InternalBaseLanguage.g:1034:3: ( rule__FactorRule__Alternatives )
-            // InternalBaseLanguage.g:1034:4: rule__FactorRule__Alternatives
+            // InternalBaseLanguage.g:1084:3: ( rule__FactorRule__Alternatives )
+            // InternalBaseLanguage.g:1084:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -3161,53 +3313,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalBaseLanguage.g:1042:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalBaseLanguage.g:1092:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1046:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalBaseLanguage.g:1096:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt1=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt1=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 15:
-            case 71:
-                {
-                alt1=2;
-                }
-                break;
-            case 51:
-                {
-                alt1=3;
-                }
-                break;
-            case 54:
-                {
-                alt1=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 1, 0, input);
-
-                throw nvae;
-            }
-
+            alt1 = dfa1.predict(input);
             switch (alt1) {
                 case 1 :
-                    // InternalBaseLanguage.g:1047:2: ( ruleCallRule )
+                    // InternalBaseLanguage.g:1097:2: ( ruleCallRule )
                     {
-                    // InternalBaseLanguage.g:1047:2: ( ruleCallRule )
-                    // InternalBaseLanguage.g:1048:3: ruleCallRule
+                    // InternalBaseLanguage.g:1097:2: ( ruleCallRule )
+                    // InternalBaseLanguage.g:1098:3: ruleCallRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3223,10 +3343,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1053:2: ( ruleLiteralRule )
+                    // InternalBaseLanguage.g:1103:2: ( ruleLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1053:2: ( ruleLiteralRule )
-                    // InternalBaseLanguage.g:1054:3: ruleLiteralRule
+                    // InternalBaseLanguage.g:1103:2: ( ruleLiteralRule )
+                    // InternalBaseLanguage.g:1104:3: ruleLiteralRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3242,10 +3362,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1059:2: ( ruleParanthesesRule )
+                    // InternalBaseLanguage.g:1109:2: ( ruleParanthesesRule )
                     {
-                    // InternalBaseLanguage.g:1059:2: ( ruleParanthesesRule )
-                    // InternalBaseLanguage.g:1060:3: ruleParanthesesRule
+                    // InternalBaseLanguage.g:1109:2: ( ruleParanthesesRule )
+                    // InternalBaseLanguage.g:1110:3: ruleParanthesesRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3261,10 +3381,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1065:2: ( ruleValueReferenceRule )
+                    // InternalBaseLanguage.g:1115:2: ( ruleValueReferenceRule )
                     {
-                    // InternalBaseLanguage.g:1065:2: ( ruleValueReferenceRule )
-                    // InternalBaseLanguage.g:1066:3: ruleValueReferenceRule
+                    // InternalBaseLanguage.g:1115:2: ( ruleValueReferenceRule )
+                    // InternalBaseLanguage.g:1116:3: ruleValueReferenceRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -3297,13 +3417,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalBaseLanguage.g:1075:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalBaseLanguage.g:1125:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1079:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalBaseLanguage.g:1129:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt2=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -3318,7 +3438,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                 }
                 break;
             case 15:
-            case 71:
+            case 74:
                 {
                 alt2=3;
                 }
@@ -3332,10 +3452,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
             switch (alt2) {
                 case 1 :
-                    // InternalBaseLanguage.g:1080:2: ( ruleNumberLiteralRule )
+                    // InternalBaseLanguage.g:1130:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1080:2: ( ruleNumberLiteralRule )
-                    // InternalBaseLanguage.g:1081:3: ruleNumberLiteralRule
+                    // InternalBaseLanguage.g:1130:2: ( ruleNumberLiteralRule )
+                    // InternalBaseLanguage.g:1131:3: ruleNumberLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3351,10 +3471,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1086:2: ( ruleStringLiteralRule )
+                    // InternalBaseLanguage.g:1136:2: ( ruleStringLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1086:2: ( ruleStringLiteralRule )
-                    // InternalBaseLanguage.g:1087:3: ruleStringLiteralRule
+                    // InternalBaseLanguage.g:1136:2: ( ruleStringLiteralRule )
+                    // InternalBaseLanguage.g:1137:3: ruleStringLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3370,10 +3490,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1092:2: ( ruleBooleanLiteralRule )
+                    // InternalBaseLanguage.g:1142:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1092:2: ( ruleBooleanLiteralRule )
-                    // InternalBaseLanguage.g:1093:3: ruleBooleanLiteralRule
+                    // InternalBaseLanguage.g:1142:2: ( ruleBooleanLiteralRule )
+                    // InternalBaseLanguage.g:1143:3: ruleBooleanLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3406,13 +3526,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalBaseLanguage.g:1102:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalBaseLanguage.g:1152:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1106:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalBaseLanguage.g:1156:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -3430,10 +3550,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt3) {
                 case 1 :
-                    // InternalBaseLanguage.g:1107:2: ( ruleDoubleLiteralRule )
+                    // InternalBaseLanguage.g:1157:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1107:2: ( ruleDoubleLiteralRule )
-                    // InternalBaseLanguage.g:1108:3: ruleDoubleLiteralRule
+                    // InternalBaseLanguage.g:1157:2: ( ruleDoubleLiteralRule )
+                    // InternalBaseLanguage.g:1158:3: ruleDoubleLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3449,10 +3569,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1113:2: ( ruleIntegerLiteralRule )
+                    // InternalBaseLanguage.g:1163:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalBaseLanguage.g:1113:2: ( ruleIntegerLiteralRule )
-                    // InternalBaseLanguage.g:1114:3: ruleIntegerLiteralRule
+                    // InternalBaseLanguage.g:1163:2: ( ruleIntegerLiteralRule )
+                    // InternalBaseLanguage.g:1164:3: ruleIntegerLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3485,17 +3605,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalBaseLanguage.g:1123:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalBaseLanguage.g:1173:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1127:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalBaseLanguage.g:1177:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
-            if ( (LA4_0==71) ) {
+            if ( (LA4_0==74) ) {
                 alt4=1;
             }
             else if ( (LA4_0==15) ) {
@@ -3509,14 +3629,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt4) {
                 case 1 :
-                    // InternalBaseLanguage.g:1128:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalBaseLanguage.g:1178:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalBaseLanguage.g:1128:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalBaseLanguage.g:1129:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalBaseLanguage.g:1178:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalBaseLanguage.g:1179:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
-                    // InternalBaseLanguage.g:1130:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalBaseLanguage.g:1130:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalBaseLanguage.g:1180:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalBaseLanguage.g:1180:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -3534,10 +3654,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1134:2: ( 'false' )
+                    // InternalBaseLanguage.g:1184:2: ( 'false' )
                     {
-                    // InternalBaseLanguage.g:1134:2: ( 'false' )
-                    // InternalBaseLanguage.g:1135:3: 'false'
+                    // InternalBaseLanguage.g:1184:2: ( 'false' )
+                    // InternalBaseLanguage.g:1185:3: 'false'
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
                     match(input,15,FOLLOW_2); 
@@ -3566,61 +3686,61 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalBaseLanguage.g:1144:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalBaseLanguage.g:1194:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1148:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalBaseLanguage.g:1198:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt5=10;
             switch ( input.LA(1) ) {
-            case 61:
+            case 64:
                 {
                 alt5=1;
                 }
                 break;
-            case 63:
+            case 66:
                 {
                 alt5=2;
                 }
                 break;
-            case 64:
+            case 67:
                 {
                 alt5=3;
                 }
                 break;
-            case 65:
+            case 68:
                 {
                 alt5=4;
                 }
                 break;
-            case 58:
+            case 61:
                 {
                 alt5=5;
                 }
                 break;
-            case 68:
+            case 71:
                 {
                 alt5=6;
                 }
                 break;
-            case 59:
+            case 62:
                 {
                 alt5=7;
                 }
                 break;
-            case 66:
+            case 69:
                 {
                 alt5=8;
                 }
                 break;
-            case 62:
+            case 65:
                 {
                 alt5=9;
                 }
                 break;
-            case 67:
+            case 70:
                 {
                 alt5=10;
                 }
@@ -3634,10 +3754,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
             switch (alt5) {
                 case 1 :
-                    // InternalBaseLanguage.g:1149:2: ( ruleStringTypeRule )
+                    // InternalBaseLanguage.g:1199:2: ( ruleStringTypeRule )
                     {
-                    // InternalBaseLanguage.g:1149:2: ( ruleStringTypeRule )
-                    // InternalBaseLanguage.g:1150:3: ruleStringTypeRule
+                    // InternalBaseLanguage.g:1199:2: ( ruleStringTypeRule )
+                    // InternalBaseLanguage.g:1200:3: ruleStringTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3653,10 +3773,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1155:2: ( ruleIntTypeRule )
+                    // InternalBaseLanguage.g:1205:2: ( ruleIntTypeRule )
                     {
-                    // InternalBaseLanguage.g:1155:2: ( ruleIntTypeRule )
-                    // InternalBaseLanguage.g:1156:3: ruleIntTypeRule
+                    // InternalBaseLanguage.g:1205:2: ( ruleIntTypeRule )
+                    // InternalBaseLanguage.g:1206:3: ruleIntTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3672,10 +3792,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1161:2: ( ruleFloatTypeRule )
+                    // InternalBaseLanguage.g:1211:2: ( ruleFloatTypeRule )
                     {
-                    // InternalBaseLanguage.g:1161:2: ( ruleFloatTypeRule )
-                    // InternalBaseLanguage.g:1162:3: ruleFloatTypeRule
+                    // InternalBaseLanguage.g:1211:2: ( ruleFloatTypeRule )
+                    // InternalBaseLanguage.g:1212:3: ruleFloatTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3691,10 +3811,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1167:2: ( ruleBooleanTypeRule )
+                    // InternalBaseLanguage.g:1217:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalBaseLanguage.g:1167:2: ( ruleBooleanTypeRule )
-                    // InternalBaseLanguage.g:1168:3: ruleBooleanTypeRule
+                    // InternalBaseLanguage.g:1217:2: ( ruleBooleanTypeRule )
+                    // InternalBaseLanguage.g:1218:3: ruleBooleanTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -3710,10 +3830,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:1173:2: ( ruleLiteralTypeRule )
+                    // InternalBaseLanguage.g:1223:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalBaseLanguage.g:1173:2: ( ruleLiteralTypeRule )
-                    // InternalBaseLanguage.g:1174:3: ruleLiteralTypeRule
+                    // InternalBaseLanguage.g:1223:2: ( ruleLiteralTypeRule )
+                    // InternalBaseLanguage.g:1224:3: ruleLiteralTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
                     pushFollow(FOLLOW_2);
@@ -3729,10 +3849,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:1179:2: ( ruleArrayTypeRule )
+                    // InternalBaseLanguage.g:1229:2: ( ruleArrayTypeRule )
                     {
-                    // InternalBaseLanguage.g:1179:2: ( ruleArrayTypeRule )
-                    // InternalBaseLanguage.g:1180:3: ruleArrayTypeRule
+                    // InternalBaseLanguage.g:1229:2: ( ruleArrayTypeRule )
+                    // InternalBaseLanguage.g:1230:3: ruleArrayTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
                     pushFollow(FOLLOW_2);
@@ -3748,10 +3868,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 7 :
-                    // InternalBaseLanguage.g:1185:2: ( ruleInstanceTypeRule )
+                    // InternalBaseLanguage.g:1235:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalBaseLanguage.g:1185:2: ( ruleInstanceTypeRule )
-                    // InternalBaseLanguage.g:1186:3: ruleInstanceTypeRule
+                    // InternalBaseLanguage.g:1235:2: ( ruleInstanceTypeRule )
+                    // InternalBaseLanguage.g:1236:3: ruleInstanceTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
                     pushFollow(FOLLOW_2);
@@ -3767,10 +3887,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 8 :
-                    // InternalBaseLanguage.g:1191:2: ( ruleVoidTypeRule )
+                    // InternalBaseLanguage.g:1241:2: ( ruleVoidTypeRule )
                     {
-                    // InternalBaseLanguage.g:1191:2: ( ruleVoidTypeRule )
-                    // InternalBaseLanguage.g:1192:3: ruleVoidTypeRule
+                    // InternalBaseLanguage.g:1241:2: ( ruleVoidTypeRule )
+                    // InternalBaseLanguage.g:1242:3: ruleVoidTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
                     pushFollow(FOLLOW_2);
@@ -3786,10 +3906,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 9 :
-                    // InternalBaseLanguage.g:1197:2: ( ruleExpressionTypeRule )
+                    // InternalBaseLanguage.g:1247:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalBaseLanguage.g:1197:2: ( ruleExpressionTypeRule )
-                    // InternalBaseLanguage.g:1198:3: ruleExpressionTypeRule
+                    // InternalBaseLanguage.g:1247:2: ( ruleExpressionTypeRule )
+                    // InternalBaseLanguage.g:1248:3: ruleExpressionTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
                     pushFollow(FOLLOW_2);
@@ -3805,10 +3925,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 10 :
-                    // InternalBaseLanguage.g:1203:2: ( ruleDataTypeRule )
+                    // InternalBaseLanguage.g:1253:2: ( ruleDataTypeRule )
                     {
-                    // InternalBaseLanguage.g:1203:2: ( ruleDataTypeRule )
-                    // InternalBaseLanguage.g:1204:3: ruleDataTypeRule
+                    // InternalBaseLanguage.g:1253:2: ( ruleDataTypeRule )
+                    // InternalBaseLanguage.g:1254:3: ruleDataTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
                     pushFollow(FOLLOW_2);
@@ -3841,13 +3961,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalBaseLanguage.g:1213:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalBaseLanguage.g:1263:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1217:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalBaseLanguage.g:1267:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -3865,10 +3985,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt6) {
                 case 1 :
-                    // InternalBaseLanguage.g:1218:2: ( RULE_QUOTED_ID )
+                    // InternalBaseLanguage.g:1268:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalBaseLanguage.g:1218:2: ( RULE_QUOTED_ID )
-                    // InternalBaseLanguage.g:1219:3: RULE_QUOTED_ID
+                    // InternalBaseLanguage.g:1268:2: ( RULE_QUOTED_ID )
+                    // InternalBaseLanguage.g:1269:3: RULE_QUOTED_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
                     match(input,RULE_QUOTED_ID,FOLLOW_2); 
@@ -3880,10 +4000,10 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1224:2: ( RULE_ID )
+                    // InternalBaseLanguage.g:1274:2: ( RULE_ID )
                     {
-                    // InternalBaseLanguage.g:1224:2: ( RULE_ID )
-                    // InternalBaseLanguage.g:1225:3: RULE_ID
+                    // InternalBaseLanguage.g:1274:2: ( RULE_ID )
+                    // InternalBaseLanguage.g:1275:3: RULE_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
                     match(input,RULE_ID,FOLLOW_2); 
@@ -3912,13 +4032,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalBaseLanguage.g:1234:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalBaseLanguage.g:1284:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1238:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalBaseLanguage.g:1288:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt7=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -3960,14 +4080,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
             switch (alt7) {
                 case 1 :
-                    // InternalBaseLanguage.g:1239:2: ( ( '>=' ) )
+                    // InternalBaseLanguage.g:1289:2: ( ( '>=' ) )
                     {
-                    // InternalBaseLanguage.g:1239:2: ( ( '>=' ) )
-                    // InternalBaseLanguage.g:1240:3: ( '>=' )
+                    // InternalBaseLanguage.g:1289:2: ( ( '>=' ) )
+                    // InternalBaseLanguage.g:1290:3: ( '>=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
-                    // InternalBaseLanguage.g:1241:3: ( '>=' )
-                    // InternalBaseLanguage.g:1241:4: '>='
+                    // InternalBaseLanguage.g:1291:3: ( '>=' )
+                    // InternalBaseLanguage.g:1291:4: '>='
                     {
                     match(input,16,FOLLOW_2); 
 
@@ -3981,14 +4101,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1245:2: ( ( '>' ) )
+                    // InternalBaseLanguage.g:1295:2: ( ( '>' ) )
                     {
-                    // InternalBaseLanguage.g:1245:2: ( ( '>' ) )
-                    // InternalBaseLanguage.g:1246:3: ( '>' )
+                    // InternalBaseLanguage.g:1295:2: ( ( '>' ) )
+                    // InternalBaseLanguage.g:1296:3: ( '>' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
-                    // InternalBaseLanguage.g:1247:3: ( '>' )
-                    // InternalBaseLanguage.g:1247:4: '>'
+                    // InternalBaseLanguage.g:1297:3: ( '>' )
+                    // InternalBaseLanguage.g:1297:4: '>'
                     {
                     match(input,17,FOLLOW_2); 
 
@@ -4002,14 +4122,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1251:2: ( ( '=' ) )
+                    // InternalBaseLanguage.g:1301:2: ( ( '=' ) )
                     {
-                    // InternalBaseLanguage.g:1251:2: ( ( '=' ) )
-                    // InternalBaseLanguage.g:1252:3: ( '=' )
+                    // InternalBaseLanguage.g:1301:2: ( ( '=' ) )
+                    // InternalBaseLanguage.g:1302:3: ( '=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
-                    // InternalBaseLanguage.g:1253:3: ( '=' )
-                    // InternalBaseLanguage.g:1253:4: '='
+                    // InternalBaseLanguage.g:1303:3: ( '=' )
+                    // InternalBaseLanguage.g:1303:4: '='
                     {
                     match(input,18,FOLLOW_2); 
 
@@ -4023,14 +4143,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1257:2: ( ( '!=' ) )
+                    // InternalBaseLanguage.g:1307:2: ( ( '!=' ) )
                     {
-                    // InternalBaseLanguage.g:1257:2: ( ( '!=' ) )
-                    // InternalBaseLanguage.g:1258:3: ( '!=' )
+                    // InternalBaseLanguage.g:1307:2: ( ( '!=' ) )
+                    // InternalBaseLanguage.g:1308:3: ( '!=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
-                    // InternalBaseLanguage.g:1259:3: ( '!=' )
-                    // InternalBaseLanguage.g:1259:4: '!='
+                    // InternalBaseLanguage.g:1309:3: ( '!=' )
+                    // InternalBaseLanguage.g:1309:4: '!='
                     {
                     match(input,19,FOLLOW_2); 
 
@@ -4044,14 +4164,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:1263:2: ( ( '<' ) )
+                    // InternalBaseLanguage.g:1313:2: ( ( '<' ) )
                     {
-                    // InternalBaseLanguage.g:1263:2: ( ( '<' ) )
-                    // InternalBaseLanguage.g:1264:3: ( '<' )
+                    // InternalBaseLanguage.g:1313:2: ( ( '<' ) )
+                    // InternalBaseLanguage.g:1314:3: ( '<' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
-                    // InternalBaseLanguage.g:1265:3: ( '<' )
-                    // InternalBaseLanguage.g:1265:4: '<'
+                    // InternalBaseLanguage.g:1315:3: ( '<' )
+                    // InternalBaseLanguage.g:1315:4: '<'
                     {
                     match(input,20,FOLLOW_2); 
 
@@ -4065,14 +4185,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:1269:2: ( ( '<=' ) )
+                    // InternalBaseLanguage.g:1319:2: ( ( '<=' ) )
                     {
-                    // InternalBaseLanguage.g:1269:2: ( ( '<=' ) )
-                    // InternalBaseLanguage.g:1270:3: ( '<=' )
+                    // InternalBaseLanguage.g:1319:2: ( ( '<=' ) )
+                    // InternalBaseLanguage.g:1320:3: ( '<=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
-                    // InternalBaseLanguage.g:1271:3: ( '<=' )
-                    // InternalBaseLanguage.g:1271:4: '<='
+                    // InternalBaseLanguage.g:1321:3: ( '<=' )
+                    // InternalBaseLanguage.g:1321:4: '<='
                     {
                     match(input,21,FOLLOW_2); 
 
@@ -4103,13 +4223,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalBaseLanguage.g:1279:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalBaseLanguage.g:1329:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1283:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalBaseLanguage.g:1333:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt8=2;
             int LA8_0 = input.LA(1);
 
@@ -4127,14 +4247,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt8) {
                 case 1 :
-                    // InternalBaseLanguage.g:1284:2: ( ( '+' ) )
+                    // InternalBaseLanguage.g:1334:2: ( ( '+' ) )
                     {
-                    // InternalBaseLanguage.g:1284:2: ( ( '+' ) )
-                    // InternalBaseLanguage.g:1285:3: ( '+' )
+                    // InternalBaseLanguage.g:1334:2: ( ( '+' ) )
+                    // InternalBaseLanguage.g:1335:3: ( '+' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
-                    // InternalBaseLanguage.g:1286:3: ( '+' )
-                    // InternalBaseLanguage.g:1286:4: '+'
+                    // InternalBaseLanguage.g:1336:3: ( '+' )
+                    // InternalBaseLanguage.g:1336:4: '+'
                     {
                     match(input,22,FOLLOW_2); 
 
@@ -4148,14 +4268,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1290:2: ( ( '-' ) )
+                    // InternalBaseLanguage.g:1340:2: ( ( '-' ) )
                     {
-                    // InternalBaseLanguage.g:1290:2: ( ( '-' ) )
-                    // InternalBaseLanguage.g:1291:3: ( '-' )
+                    // InternalBaseLanguage.g:1340:2: ( ( '-' ) )
+                    // InternalBaseLanguage.g:1341:3: ( '-' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
-                    // InternalBaseLanguage.g:1292:3: ( '-' )
-                    // InternalBaseLanguage.g:1292:4: '-'
+                    // InternalBaseLanguage.g:1342:3: ( '-' )
+                    // InternalBaseLanguage.g:1342:4: '-'
                     {
                     match(input,23,FOLLOW_2); 
 
@@ -4186,13 +4306,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalBaseLanguage.g:1300:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalBaseLanguage.g:1350:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1304:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalBaseLanguage.g:1354:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt9=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -4219,14 +4339,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
             switch (alt9) {
                 case 1 :
-                    // InternalBaseLanguage.g:1305:2: ( ( '*' ) )
+                    // InternalBaseLanguage.g:1355:2: ( ( '*' ) )
                     {
-                    // InternalBaseLanguage.g:1305:2: ( ( '*' ) )
-                    // InternalBaseLanguage.g:1306:3: ( '*' )
+                    // InternalBaseLanguage.g:1355:2: ( ( '*' ) )
+                    // InternalBaseLanguage.g:1356:3: ( '*' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
-                    // InternalBaseLanguage.g:1307:3: ( '*' )
-                    // InternalBaseLanguage.g:1307:4: '*'
+                    // InternalBaseLanguage.g:1357:3: ( '*' )
+                    // InternalBaseLanguage.g:1357:4: '*'
                     {
                     match(input,24,FOLLOW_2); 
 
@@ -4240,14 +4360,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1311:2: ( ( '/' ) )
+                    // InternalBaseLanguage.g:1361:2: ( ( '/' ) )
                     {
-                    // InternalBaseLanguage.g:1311:2: ( ( '/' ) )
-                    // InternalBaseLanguage.g:1312:3: ( '/' )
+                    // InternalBaseLanguage.g:1361:2: ( ( '/' ) )
+                    // InternalBaseLanguage.g:1362:3: ( '/' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
-                    // InternalBaseLanguage.g:1313:3: ( '/' )
-                    // InternalBaseLanguage.g:1313:4: '/'
+                    // InternalBaseLanguage.g:1363:3: ( '/' )
+                    // InternalBaseLanguage.g:1363:4: '/'
                     {
                     match(input,25,FOLLOW_2); 
 
@@ -4261,14 +4381,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1317:2: ( ( '%' ) )
+                    // InternalBaseLanguage.g:1367:2: ( ( '%' ) )
                     {
-                    // InternalBaseLanguage.g:1317:2: ( ( '%' ) )
-                    // InternalBaseLanguage.g:1318:3: ( '%' )
+                    // InternalBaseLanguage.g:1367:2: ( ( '%' ) )
+                    // InternalBaseLanguage.g:1368:3: ( '%' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
-                    // InternalBaseLanguage.g:1319:3: ( '%' )
-                    // InternalBaseLanguage.g:1319:4: '%'
+                    // InternalBaseLanguage.g:1369:3: ( '%' )
+                    // InternalBaseLanguage.g:1369:4: '%'
                     {
                     match(input,26,FOLLOW_2); 
 
@@ -4299,13 +4419,13 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalBaseLanguage.g:1327:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalBaseLanguage.g:1377:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1331:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalBaseLanguage.g:1381:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt10=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -4417,14 +4537,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
             switch (alt10) {
                 case 1 :
-                    // InternalBaseLanguage.g:1332:2: ( ( 'Y' ) )
+                    // InternalBaseLanguage.g:1382:2: ( ( 'Y' ) )
                     {
-                    // InternalBaseLanguage.g:1332:2: ( ( 'Y' ) )
-                    // InternalBaseLanguage.g:1333:3: ( 'Y' )
+                    // InternalBaseLanguage.g:1382:2: ( ( 'Y' ) )
+                    // InternalBaseLanguage.g:1383:3: ( 'Y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
-                    // InternalBaseLanguage.g:1334:3: ( 'Y' )
-                    // InternalBaseLanguage.g:1334:4: 'Y'
+                    // InternalBaseLanguage.g:1384:3: ( 'Y' )
+                    // InternalBaseLanguage.g:1384:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); 
 
@@ -4438,14 +4558,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1338:2: ( ( 'Z' ) )
+                    // InternalBaseLanguage.g:1388:2: ( ( 'Z' ) )
                     {
-                    // InternalBaseLanguage.g:1338:2: ( ( 'Z' ) )
-                    // InternalBaseLanguage.g:1339:3: ( 'Z' )
+                    // InternalBaseLanguage.g:1388:2: ( ( 'Z' ) )
+                    // InternalBaseLanguage.g:1389:3: ( 'Z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
-                    // InternalBaseLanguage.g:1340:3: ( 'Z' )
-                    // InternalBaseLanguage.g:1340:4: 'Z'
+                    // InternalBaseLanguage.g:1390:3: ( 'Z' )
+                    // InternalBaseLanguage.g:1390:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); 
 
@@ -4459,14 +4579,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1344:2: ( ( 'E' ) )
+                    // InternalBaseLanguage.g:1394:2: ( ( 'E' ) )
                     {
-                    // InternalBaseLanguage.g:1344:2: ( ( 'E' ) )
-                    // InternalBaseLanguage.g:1345:3: ( 'E' )
+                    // InternalBaseLanguage.g:1394:2: ( ( 'E' ) )
+                    // InternalBaseLanguage.g:1395:3: ( 'E' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
-                    // InternalBaseLanguage.g:1346:3: ( 'E' )
-                    // InternalBaseLanguage.g:1346:4: 'E'
+                    // InternalBaseLanguage.g:1396:3: ( 'E' )
+                    // InternalBaseLanguage.g:1396:4: 'E'
                     {
                     match(input,29,FOLLOW_2); 
 
@@ -4480,14 +4600,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1350:2: ( ( 'P' ) )
+                    // InternalBaseLanguage.g:1400:2: ( ( 'P' ) )
                     {
-                    // InternalBaseLanguage.g:1350:2: ( ( 'P' ) )
-                    // InternalBaseLanguage.g:1351:3: ( 'P' )
+                    // InternalBaseLanguage.g:1400:2: ( ( 'P' ) )
+                    // InternalBaseLanguage.g:1401:3: ( 'P' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
-                    // InternalBaseLanguage.g:1352:3: ( 'P' )
-                    // InternalBaseLanguage.g:1352:4: 'P'
+                    // InternalBaseLanguage.g:1402:3: ( 'P' )
+                    // InternalBaseLanguage.g:1402:4: 'P'
                     {
                     match(input,30,FOLLOW_2); 
 
@@ -4501,14 +4621,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:1356:2: ( ( 'T' ) )
+                    // InternalBaseLanguage.g:1406:2: ( ( 'T' ) )
                     {
-                    // InternalBaseLanguage.g:1356:2: ( ( 'T' ) )
-                    // InternalBaseLanguage.g:1357:3: ( 'T' )
+                    // InternalBaseLanguage.g:1406:2: ( ( 'T' ) )
+                    // InternalBaseLanguage.g:1407:3: ( 'T' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
-                    // InternalBaseLanguage.g:1358:3: ( 'T' )
-                    // InternalBaseLanguage.g:1358:4: 'T'
+                    // InternalBaseLanguage.g:1408:3: ( 'T' )
+                    // InternalBaseLanguage.g:1408:4: 'T'
                     {
                     match(input,31,FOLLOW_2); 
 
@@ -4522,14 +4642,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:1362:2: ( ( 'G' ) )
+                    // InternalBaseLanguage.g:1412:2: ( ( 'G' ) )
                     {
-                    // InternalBaseLanguage.g:1362:2: ( ( 'G' ) )
-                    // InternalBaseLanguage.g:1363:3: ( 'G' )
+                    // InternalBaseLanguage.g:1412:2: ( ( 'G' ) )
+                    // InternalBaseLanguage.g:1413:3: ( 'G' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
-                    // InternalBaseLanguage.g:1364:3: ( 'G' )
-                    // InternalBaseLanguage.g:1364:4: 'G'
+                    // InternalBaseLanguage.g:1414:3: ( 'G' )
+                    // InternalBaseLanguage.g:1414:4: 'G'
                     {
                     match(input,32,FOLLOW_2); 
 
@@ -4543,14 +4663,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 7 :
-                    // InternalBaseLanguage.g:1368:2: ( ( 'M' ) )
+                    // InternalBaseLanguage.g:1418:2: ( ( 'M' ) )
                     {
-                    // InternalBaseLanguage.g:1368:2: ( ( 'M' ) )
-                    // InternalBaseLanguage.g:1369:3: ( 'M' )
+                    // InternalBaseLanguage.g:1418:2: ( ( 'M' ) )
+                    // InternalBaseLanguage.g:1419:3: ( 'M' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
-                    // InternalBaseLanguage.g:1370:3: ( 'M' )
-                    // InternalBaseLanguage.g:1370:4: 'M'
+                    // InternalBaseLanguage.g:1420:3: ( 'M' )
+                    // InternalBaseLanguage.g:1420:4: 'M'
                     {
                     match(input,33,FOLLOW_2); 
 
@@ -4564,14 +4684,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 8 :
-                    // InternalBaseLanguage.g:1374:2: ( ( 'k' ) )
+                    // InternalBaseLanguage.g:1424:2: ( ( 'k' ) )
                     {
-                    // InternalBaseLanguage.g:1374:2: ( ( 'k' ) )
-                    // InternalBaseLanguage.g:1375:3: ( 'k' )
+                    // InternalBaseLanguage.g:1424:2: ( ( 'k' ) )
+                    // InternalBaseLanguage.g:1425:3: ( 'k' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
-                    // InternalBaseLanguage.g:1376:3: ( 'k' )
-                    // InternalBaseLanguage.g:1376:4: 'k'
+                    // InternalBaseLanguage.g:1426:3: ( 'k' )
+                    // InternalBaseLanguage.g:1426:4: 'k'
                     {
                     match(input,34,FOLLOW_2); 
 
@@ -4585,14 +4705,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 9 :
-                    // InternalBaseLanguage.g:1380:2: ( ( 'h' ) )
+                    // InternalBaseLanguage.g:1430:2: ( ( 'h' ) )
                     {
-                    // InternalBaseLanguage.g:1380:2: ( ( 'h' ) )
-                    // InternalBaseLanguage.g:1381:3: ( 'h' )
+                    // InternalBaseLanguage.g:1430:2: ( ( 'h' ) )
+                    // InternalBaseLanguage.g:1431:3: ( 'h' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
-                    // InternalBaseLanguage.g:1382:3: ( 'h' )
-                    // InternalBaseLanguage.g:1382:4: 'h'
+                    // InternalBaseLanguage.g:1432:3: ( 'h' )
+                    // InternalBaseLanguage.g:1432:4: 'h'
                     {
                     match(input,35,FOLLOW_2); 
 
@@ -4606,14 +4726,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 10 :
-                    // InternalBaseLanguage.g:1386:2: ( ( 'da' ) )
+                    // InternalBaseLanguage.g:1436:2: ( ( 'da' ) )
                     {
-                    // InternalBaseLanguage.g:1386:2: ( ( 'da' ) )
-                    // InternalBaseLanguage.g:1387:3: ( 'da' )
+                    // InternalBaseLanguage.g:1436:2: ( ( 'da' ) )
+                    // InternalBaseLanguage.g:1437:3: ( 'da' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
-                    // InternalBaseLanguage.g:1388:3: ( 'da' )
-                    // InternalBaseLanguage.g:1388:4: 'da'
+                    // InternalBaseLanguage.g:1438:3: ( 'da' )
+                    // InternalBaseLanguage.g:1438:4: 'da'
                     {
                     match(input,36,FOLLOW_2); 
 
@@ -4627,14 +4747,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 11 :
-                    // InternalBaseLanguage.g:1392:2: ( ( 'd' ) )
+                    // InternalBaseLanguage.g:1442:2: ( ( 'd' ) )
                     {
-                    // InternalBaseLanguage.g:1392:2: ( ( 'd' ) )
-                    // InternalBaseLanguage.g:1393:3: ( 'd' )
+                    // InternalBaseLanguage.g:1442:2: ( ( 'd' ) )
+                    // InternalBaseLanguage.g:1443:3: ( 'd' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
-                    // InternalBaseLanguage.g:1394:3: ( 'd' )
-                    // InternalBaseLanguage.g:1394:4: 'd'
+                    // InternalBaseLanguage.g:1444:3: ( 'd' )
+                    // InternalBaseLanguage.g:1444:4: 'd'
                     {
                     match(input,37,FOLLOW_2); 
 
@@ -4648,14 +4768,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 12 :
-                    // InternalBaseLanguage.g:1398:2: ( ( 'c' ) )
+                    // InternalBaseLanguage.g:1448:2: ( ( 'c' ) )
                     {
-                    // InternalBaseLanguage.g:1398:2: ( ( 'c' ) )
-                    // InternalBaseLanguage.g:1399:3: ( 'c' )
+                    // InternalBaseLanguage.g:1448:2: ( ( 'c' ) )
+                    // InternalBaseLanguage.g:1449:3: ( 'c' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
-                    // InternalBaseLanguage.g:1400:3: ( 'c' )
-                    // InternalBaseLanguage.g:1400:4: 'c'
+                    // InternalBaseLanguage.g:1450:3: ( 'c' )
+                    // InternalBaseLanguage.g:1450:4: 'c'
                     {
                     match(input,38,FOLLOW_2); 
 
@@ -4669,14 +4789,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 13 :
-                    // InternalBaseLanguage.g:1404:2: ( ( 'm' ) )
+                    // InternalBaseLanguage.g:1454:2: ( ( 'm' ) )
                     {
-                    // InternalBaseLanguage.g:1404:2: ( ( 'm' ) )
-                    // InternalBaseLanguage.g:1405:3: ( 'm' )
+                    // InternalBaseLanguage.g:1454:2: ( ( 'm' ) )
+                    // InternalBaseLanguage.g:1455:3: ( 'm' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
-                    // InternalBaseLanguage.g:1406:3: ( 'm' )
-                    // InternalBaseLanguage.g:1406:4: 'm'
+                    // InternalBaseLanguage.g:1456:3: ( 'm' )
+                    // InternalBaseLanguage.g:1456:4: 'm'
                     {
                     match(input,39,FOLLOW_2); 
 
@@ -4690,14 +4810,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 14 :
-                    // InternalBaseLanguage.g:1410:2: ( ( '\\u00B5' ) )
+                    // InternalBaseLanguage.g:1460:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalBaseLanguage.g:1410:2: ( ( '\\u00B5' ) )
-                    // InternalBaseLanguage.g:1411:3: ( '\\u00B5' )
+                    // InternalBaseLanguage.g:1460:2: ( ( '\\u00B5' ) )
+                    // InternalBaseLanguage.g:1461:3: ( '\\u00B5' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
-                    // InternalBaseLanguage.g:1412:3: ( '\\u00B5' )
-                    // InternalBaseLanguage.g:1412:4: '\\u00B5'
+                    // InternalBaseLanguage.g:1462:3: ( '\\u00B5' )
+                    // InternalBaseLanguage.g:1462:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); 
 
@@ -4711,14 +4831,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 15 :
-                    // InternalBaseLanguage.g:1416:2: ( ( 'n' ) )
+                    // InternalBaseLanguage.g:1466:2: ( ( 'n' ) )
                     {
-                    // InternalBaseLanguage.g:1416:2: ( ( 'n' ) )
-                    // InternalBaseLanguage.g:1417:3: ( 'n' )
+                    // InternalBaseLanguage.g:1466:2: ( ( 'n' ) )
+                    // InternalBaseLanguage.g:1467:3: ( 'n' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
-                    // InternalBaseLanguage.g:1418:3: ( 'n' )
-                    // InternalBaseLanguage.g:1418:4: 'n'
+                    // InternalBaseLanguage.g:1468:3: ( 'n' )
+                    // InternalBaseLanguage.g:1468:4: 'n'
                     {
                     match(input,41,FOLLOW_2); 
 
@@ -4732,14 +4852,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 16 :
-                    // InternalBaseLanguage.g:1422:2: ( ( 'p' ) )
+                    // InternalBaseLanguage.g:1472:2: ( ( 'p' ) )
                     {
-                    // InternalBaseLanguage.g:1422:2: ( ( 'p' ) )
-                    // InternalBaseLanguage.g:1423:3: ( 'p' )
+                    // InternalBaseLanguage.g:1472:2: ( ( 'p' ) )
+                    // InternalBaseLanguage.g:1473:3: ( 'p' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
-                    // InternalBaseLanguage.g:1424:3: ( 'p' )
-                    // InternalBaseLanguage.g:1424:4: 'p'
+                    // InternalBaseLanguage.g:1474:3: ( 'p' )
+                    // InternalBaseLanguage.g:1474:4: 'p'
                     {
                     match(input,42,FOLLOW_2); 
 
@@ -4753,14 +4873,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 17 :
-                    // InternalBaseLanguage.g:1428:2: ( ( 'f' ) )
+                    // InternalBaseLanguage.g:1478:2: ( ( 'f' ) )
                     {
-                    // InternalBaseLanguage.g:1428:2: ( ( 'f' ) )
-                    // InternalBaseLanguage.g:1429:3: ( 'f' )
+                    // InternalBaseLanguage.g:1478:2: ( ( 'f' ) )
+                    // InternalBaseLanguage.g:1479:3: ( 'f' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
-                    // InternalBaseLanguage.g:1430:3: ( 'f' )
-                    // InternalBaseLanguage.g:1430:4: 'f'
+                    // InternalBaseLanguage.g:1480:3: ( 'f' )
+                    // InternalBaseLanguage.g:1480:4: 'f'
                     {
                     match(input,43,FOLLOW_2); 
 
@@ -4774,14 +4894,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 18 :
-                    // InternalBaseLanguage.g:1434:2: ( ( 'a' ) )
+                    // InternalBaseLanguage.g:1484:2: ( ( 'a' ) )
                     {
-                    // InternalBaseLanguage.g:1434:2: ( ( 'a' ) )
-                    // InternalBaseLanguage.g:1435:3: ( 'a' )
+                    // InternalBaseLanguage.g:1484:2: ( ( 'a' ) )
+                    // InternalBaseLanguage.g:1485:3: ( 'a' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
-                    // InternalBaseLanguage.g:1436:3: ( 'a' )
-                    // InternalBaseLanguage.g:1436:4: 'a'
+                    // InternalBaseLanguage.g:1486:3: ( 'a' )
+                    // InternalBaseLanguage.g:1486:4: 'a'
                     {
                     match(input,44,FOLLOW_2); 
 
@@ -4795,14 +4915,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 19 :
-                    // InternalBaseLanguage.g:1440:2: ( ( 'z' ) )
+                    // InternalBaseLanguage.g:1490:2: ( ( 'z' ) )
                     {
-                    // InternalBaseLanguage.g:1440:2: ( ( 'z' ) )
-                    // InternalBaseLanguage.g:1441:3: ( 'z' )
+                    // InternalBaseLanguage.g:1490:2: ( ( 'z' ) )
+                    // InternalBaseLanguage.g:1491:3: ( 'z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
-                    // InternalBaseLanguage.g:1442:3: ( 'z' )
-                    // InternalBaseLanguage.g:1442:4: 'z'
+                    // InternalBaseLanguage.g:1492:3: ( 'z' )
+                    // InternalBaseLanguage.g:1492:4: 'z'
                     {
                     match(input,45,FOLLOW_2); 
 
@@ -4816,14 +4936,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 20 :
-                    // InternalBaseLanguage.g:1446:2: ( ( 'y' ) )
+                    // InternalBaseLanguage.g:1496:2: ( ( 'y' ) )
                     {
-                    // InternalBaseLanguage.g:1446:2: ( ( 'y' ) )
-                    // InternalBaseLanguage.g:1447:3: ( 'y' )
+                    // InternalBaseLanguage.g:1496:2: ( ( 'y' ) )
+                    // InternalBaseLanguage.g:1497:3: ( 'y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
-                    // InternalBaseLanguage.g:1448:3: ( 'y' )
-                    // InternalBaseLanguage.g:1448:4: 'y'
+                    // InternalBaseLanguage.g:1498:3: ( 'y' )
+                    // InternalBaseLanguage.g:1498:4: 'y'
                     {
                     match(input,46,FOLLOW_2); 
 
@@ -4854,14 +4974,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1456:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1506:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
     public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1460:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1461:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalBaseLanguage.g:1510:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1511:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__OrExpressionRule__Group__0__Impl();
@@ -4892,21 +5012,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1468:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:1518:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1472:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1473:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1522:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalBaseLanguage.g:1523:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1473:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalBaseLanguage.g:1474:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1523:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1524:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalBaseLanguage.g:1475:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalBaseLanguage.g:1475:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+            // InternalBaseLanguage.g:1525:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1525:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_0();
@@ -4939,14 +5059,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1483:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1533:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
     public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1487:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1488:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1537:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1538:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__1__Impl();
@@ -4972,20 +5092,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1494:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:1544:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
     public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1498:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:1499:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1548:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:1549:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:1499:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalBaseLanguage.g:1500:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1549:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1550:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:1501:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1551:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop11:
             do {
                 int alt11=2;
@@ -4998,7 +5118,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt11) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1501:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalBaseLanguage.g:1551:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__OrExpressionRule__Group_1__0();
@@ -5037,14 +5157,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:1510:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:1560:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
     public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1514:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:1515:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:1564:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:1565:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__OrExpressionRule__Group_1__0__Impl();
@@ -5075,17 +5195,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:1522:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    // InternalBaseLanguage.g:1572:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
     public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1526:1: ( ( 'OR' ) )
-            // InternalBaseLanguage.g:1527:1: ( 'OR' )
+            // InternalBaseLanguage.g:1576:1: ( ( 'OR' ) )
+            // InternalBaseLanguage.g:1577:1: ( 'OR' )
             {
-            // InternalBaseLanguage.g:1527:1: ( 'OR' )
-            // InternalBaseLanguage.g:1528:2: 'OR'
+            // InternalBaseLanguage.g:1577:1: ( 'OR' )
+            // InternalBaseLanguage.g:1578:2: 'OR'
             {
              before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             match(input,47,FOLLOW_2); 
@@ -5112,14 +5232,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:1537:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:1587:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
     public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1541:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:1542:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:1591:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:1592:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group_1__1__Impl();
@@ -5145,21 +5265,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:1548:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:1598:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1552:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:1553:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1602:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:1603:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:1553:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalBaseLanguage.g:1554:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1603:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1604:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalBaseLanguage.g:1555:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalBaseLanguage.g:1555:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+            // InternalBaseLanguage.g:1605:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1605:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_1_1();
@@ -5192,14 +5312,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1564:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1614:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
     public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1568:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1569:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalBaseLanguage.g:1618:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1619:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__XorExpressionRule__Group__0__Impl();
@@ -5230,21 +5350,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1576:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:1626:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1580:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1581:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1630:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalBaseLanguage.g:1631:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1581:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalBaseLanguage.g:1582:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1631:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1632:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalBaseLanguage.g:1583:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalBaseLanguage.g:1583:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+            // InternalBaseLanguage.g:1633:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1633:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_0();
@@ -5277,14 +5397,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1591:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1641:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
     public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1595:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1596:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1645:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1646:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__1__Impl();
@@ -5310,20 +5430,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1602:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:1652:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
     public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1606:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:1607:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1656:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:1657:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:1607:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalBaseLanguage.g:1608:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1657:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1658:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:1609:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1659:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop12:
             do {
                 int alt12=2;
@@ -5336,7 +5456,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1609:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalBaseLanguage.g:1659:3: rule__XorExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_7);
             	    rule__XorExpressionRule__Group_1__0();
@@ -5375,14 +5495,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:1618:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:1668:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
     public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1622:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:1623:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:1672:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:1673:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__XorExpressionRule__Group_1__0__Impl();
@@ -5413,17 +5533,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:1630:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    // InternalBaseLanguage.g:1680:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
     public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1634:1: ( ( 'XOR' ) )
-            // InternalBaseLanguage.g:1635:1: ( 'XOR' )
+            // InternalBaseLanguage.g:1684:1: ( ( 'XOR' ) )
+            // InternalBaseLanguage.g:1685:1: ( 'XOR' )
             {
-            // InternalBaseLanguage.g:1635:1: ( 'XOR' )
-            // InternalBaseLanguage.g:1636:2: 'XOR'
+            // InternalBaseLanguage.g:1685:1: ( 'XOR' )
+            // InternalBaseLanguage.g:1686:2: 'XOR'
             {
              before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             match(input,48,FOLLOW_2); 
@@ -5450,14 +5570,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:1645:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:1695:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
     public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1649:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:1650:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:1699:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:1700:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group_1__1__Impl();
@@ -5483,21 +5603,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:1656:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:1706:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1660:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:1661:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1710:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:1711:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:1661:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalBaseLanguage.g:1662:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1711:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1712:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalBaseLanguage.g:1663:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalBaseLanguage.g:1663:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+            // InternalBaseLanguage.g:1713:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1713:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_1_1();
@@ -5530,14 +5650,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1672:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1722:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
     public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1676:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1677:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalBaseLanguage.g:1726:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1727:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__AndExpressionRule__Group__0__Impl();
@@ -5568,21 +5688,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1684:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:1734:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1688:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1689:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1738:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalBaseLanguage.g:1739:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1689:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalBaseLanguage.g:1690:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1739:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalBaseLanguage.g:1740:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalBaseLanguage.g:1691:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalBaseLanguage.g:1691:3: rule__AndExpressionRule__SubExpressionsAssignment_0
+            // InternalBaseLanguage.g:1741:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalBaseLanguage.g:1741:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_0();
@@ -5615,14 +5735,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1699:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1749:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
     public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1703:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1704:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1753:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1754:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__1__Impl();
@@ -5648,20 +5768,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1710:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:1760:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
     public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1714:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:1715:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1764:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:1765:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:1715:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalBaseLanguage.g:1716:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1765:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:1766:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:1717:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:1767:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop13:
             do {
                 int alt13=2;
@@ -5674,7 +5794,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1717:3: rule__AndExpressionRule__Group_1__0
+            	    // InternalBaseLanguage.g:1767:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_9);
             	    rule__AndExpressionRule__Group_1__0();
@@ -5713,14 +5833,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:1726:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:1776:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
     public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1730:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:1731:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:1780:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:1781:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__AndExpressionRule__Group_1__0__Impl();
@@ -5751,17 +5871,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:1738:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    // InternalBaseLanguage.g:1788:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
     public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1742:1: ( ( 'AND' ) )
-            // InternalBaseLanguage.g:1743:1: ( 'AND' )
+            // InternalBaseLanguage.g:1792:1: ( ( 'AND' ) )
+            // InternalBaseLanguage.g:1793:1: ( 'AND' )
             {
-            // InternalBaseLanguage.g:1743:1: ( 'AND' )
-            // InternalBaseLanguage.g:1744:2: 'AND'
+            // InternalBaseLanguage.g:1793:1: ( 'AND' )
+            // InternalBaseLanguage.g:1794:2: 'AND'
             {
              before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             match(input,49,FOLLOW_2); 
@@ -5788,14 +5908,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:1753:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:1803:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
     public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1757:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:1758:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:1807:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:1808:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group_1__1__Impl();
@@ -5821,21 +5941,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:1764:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:1814:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1768:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:1769:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1818:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:1819:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:1769:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalBaseLanguage.g:1770:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1819:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:1820:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalBaseLanguage.g:1771:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalBaseLanguage.g:1771:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalBaseLanguage.g:1821:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalBaseLanguage.g:1821:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_1_1();
@@ -5868,14 +5988,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1780:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1830:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
     public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1784:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1785:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalBaseLanguage.g:1834:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1835:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__NotExpressionRule__Group__0__Impl();
@@ -5906,29 +6026,29 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1792:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    // InternalBaseLanguage.g:1842:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
     public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1796:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalBaseLanguage.g:1797:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalBaseLanguage.g:1846:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalBaseLanguage.g:1847:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalBaseLanguage.g:1797:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalBaseLanguage.g:1798:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalBaseLanguage.g:1847:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalBaseLanguage.g:1848:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            // InternalBaseLanguage.g:1799:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalBaseLanguage.g:1849:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( (LA14_0==70) ) {
+            if ( (LA14_0==73) ) {
                 alt14=1;
             }
             switch (alt14) {
                 case 1 :
-                    // InternalBaseLanguage.g:1799:3: rule__NotExpressionRule__NegatedAssignment_0
+                    // InternalBaseLanguage.g:1849:3: rule__NotExpressionRule__NegatedAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__NotExpressionRule__NegatedAssignment_0();
@@ -5964,14 +6084,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1807:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1857:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
     public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1811:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1812:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1861:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1862:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__1__Impl();
@@ -5997,21 +6117,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1818:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:1868:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
     public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1822:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalBaseLanguage.g:1823:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalBaseLanguage.g:1872:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalBaseLanguage.g:1873:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:1823:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalBaseLanguage.g:1824:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalBaseLanguage.g:1873:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalBaseLanguage.g:1874:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
-            // InternalBaseLanguage.g:1825:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalBaseLanguage.g:1825:3: rule__NotExpressionRule__OperandAssignment_1
+            // InternalBaseLanguage.g:1875:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalBaseLanguage.g:1875:3: rule__NotExpressionRule__OperandAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__OperandAssignment_1();
@@ -6044,14 +6164,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1834:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1884:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
     public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1838:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1839:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalBaseLanguage.g:1888:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1889:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__ComparisonExpressionRule__Group__0__Impl();
@@ -6082,21 +6202,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1846:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:1896:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1850:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1851:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:1900:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalBaseLanguage.g:1901:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1851:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalBaseLanguage.g:1852:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:1901:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:1902:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalBaseLanguage.g:1853:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalBaseLanguage.g:1853:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            // InternalBaseLanguage.g:1903:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:1903:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__LeftOperandAssignment_0();
@@ -6129,14 +6249,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1861:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1911:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
     public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1865:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1866:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1915:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1916:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__1__Impl();
@@ -6162,20 +6282,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1872:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    // InternalBaseLanguage.g:1922:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
     public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1876:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalBaseLanguage.g:1877:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalBaseLanguage.g:1926:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalBaseLanguage.g:1927:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalBaseLanguage.g:1877:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalBaseLanguage.g:1878:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalBaseLanguage.g:1927:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalBaseLanguage.g:1928:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
-            // InternalBaseLanguage.g:1879:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalBaseLanguage.g:1929:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             loop15:
             do {
                 int alt15=2;
@@ -6188,7 +6308,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1879:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalBaseLanguage.g:1929:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
@@ -6227,14 +6347,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1888:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1938:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
     public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1892:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1893:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalBaseLanguage.g:1942:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1943:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__PartialComparisonExpressionRule__Group__0__Impl();
@@ -6265,21 +6385,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1900:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:1950:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1904:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1905:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalBaseLanguage.g:1954:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalBaseLanguage.g:1955:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1905:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalBaseLanguage.g:1906:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalBaseLanguage.g:1955:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalBaseLanguage.g:1956:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
-            // InternalBaseLanguage.g:1907:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalBaseLanguage.g:1907:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            // InternalBaseLanguage.g:1957:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalBaseLanguage.g:1957:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__OperatorAssignment_0();
@@ -6312,14 +6432,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1915:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:1965:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
     public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1919:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1920:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:1969:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:1970:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__1__Impl();
@@ -6345,21 +6465,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1926:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:1976:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1930:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalBaseLanguage.g:1931:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:1980:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalBaseLanguage.g:1981:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:1931:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalBaseLanguage.g:1932:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:1981:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:1982:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalBaseLanguage.g:1933:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalBaseLanguage.g:1933:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+            // InternalBaseLanguage.g:1983:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:1983:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
@@ -6392,14 +6512,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalBaseLanguage.g:1942:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:1992:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1946:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:1947:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalBaseLanguage.g:1996:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:1997:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__AddOrSubtractExpressionRule__Group__0__Impl();
@@ -6430,21 +6550,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:1954:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2004:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1958:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalBaseLanguage.g:1959:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2008:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2009:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:1959:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalBaseLanguage.g:1960:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2009:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2010:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalBaseLanguage.g:1961:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalBaseLanguage.g:1961:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+            // InternalBaseLanguage.g:2011:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2011:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
@@ -6477,14 +6597,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalBaseLanguage.g:1969:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2019:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1973:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:1974:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:2023:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2024:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__1__Impl();
@@ -6510,20 +6630,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:1980:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:2030:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:1984:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:1985:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:2034:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:2035:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:1985:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalBaseLanguage.g:1986:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:2035:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:2036:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:1987:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:2037:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop16:
             do {
                 int alt16=2;
@@ -6536,7 +6656,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1987:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalBaseLanguage.g:2037:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_13);
             	    rule__AddOrSubtractExpressionRule__Group_1__0();
@@ -6575,14 +6695,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:1996:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:2046:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2000:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:2001:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:2050:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:2051:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
@@ -6613,21 +6733,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:2008:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalBaseLanguage.g:2058:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2012:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalBaseLanguage.g:2013:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalBaseLanguage.g:2062:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalBaseLanguage.g:2063:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalBaseLanguage.g:2013:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalBaseLanguage.g:2014:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalBaseLanguage.g:2063:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalBaseLanguage.g:2064:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalBaseLanguage.g:2015:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalBaseLanguage.g:2015:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+            // InternalBaseLanguage.g:2065:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalBaseLanguage.g:2065:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
@@ -6660,14 +6780,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:2023:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:2073:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2027:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:2028:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:2077:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:2078:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
@@ -6693,21 +6813,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:2034:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:2084:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2038:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:2039:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2088:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:2089:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:2039:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalBaseLanguage.g:2040:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalBaseLanguage.g:2089:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2090:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalBaseLanguage.g:2041:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalBaseLanguage.g:2041:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+            // InternalBaseLanguage.g:2091:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalBaseLanguage.g:2091:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
@@ -6740,14 +6860,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalBaseLanguage.g:2050:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:2100:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2054:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:2055:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalBaseLanguage.g:2104:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:2105:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_14);
             rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
@@ -6778,21 +6898,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2062:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2112:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2066:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2067:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2116:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2117:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2067:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalBaseLanguage.g:2068:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2117:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2118:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalBaseLanguage.g:2069:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalBaseLanguage.g:2069:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+            // InternalBaseLanguage.g:2119:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2119:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
@@ -6825,14 +6945,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalBaseLanguage.g:2077:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2127:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2081:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2082:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:2131:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2132:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
@@ -6858,20 +6978,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2088:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:2138:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2092:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:2093:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:2142:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:2143:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:2093:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalBaseLanguage.g:2094:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:2143:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalBaseLanguage.g:2144:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:2095:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalBaseLanguage.g:2145:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop17:
             do {
                 int alt17=2;
@@ -6884,7 +7004,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2095:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
+            	    // InternalBaseLanguage.g:2145:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_15);
             	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
@@ -6923,14 +7043,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:2104:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:2154:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2108:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:2109:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:2158:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:2159:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
@@ -6961,21 +7081,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:2116:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalBaseLanguage.g:2166:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2120:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalBaseLanguage.g:2121:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalBaseLanguage.g:2170:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalBaseLanguage.g:2171:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalBaseLanguage.g:2121:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalBaseLanguage.g:2122:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalBaseLanguage.g:2171:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalBaseLanguage.g:2172:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalBaseLanguage.g:2123:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalBaseLanguage.g:2123:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalBaseLanguage.g:2173:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalBaseLanguage.g:2173:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
@@ -7008,14 +7128,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:2131:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:2181:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2135:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:2136:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:2185:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:2186:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
@@ -7041,21 +7161,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:2142:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:2192:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2146:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:2147:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2196:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:2197:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:2147:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalBaseLanguage.g:2148:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalBaseLanguage.g:2197:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2198:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalBaseLanguage.g:2149:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalBaseLanguage.g:2149:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+            // InternalBaseLanguage.g:2199:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalBaseLanguage.g:2199:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
@@ -7088,14 +7208,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalBaseLanguage.g:2158:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:2208:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
     public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2162:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:2163:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalBaseLanguage.g:2212:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:2213:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_16);
             rule__PowerOfExpressionRule__Group__0__Impl();
@@ -7126,21 +7246,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2170:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2220:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2174:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2175:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2224:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2225:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2175:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalBaseLanguage.g:2176:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2225:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalBaseLanguage.g:2226:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalBaseLanguage.g:2177:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalBaseLanguage.g:2177:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalBaseLanguage.g:2227:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalBaseLanguage.g:2227:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__LeftOperandAssignment_0();
@@ -7173,14 +7293,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalBaseLanguage.g:2185:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2235:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2189:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2190:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:2239:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2240:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__1__Impl();
@@ -7206,20 +7326,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2196:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    // InternalBaseLanguage.g:2246:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
     public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2200:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalBaseLanguage.g:2201:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalBaseLanguage.g:2250:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalBaseLanguage.g:2251:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalBaseLanguage.g:2201:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalBaseLanguage.g:2202:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalBaseLanguage.g:2251:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalBaseLanguage.g:2252:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:2203:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalBaseLanguage.g:2253:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -7228,7 +7348,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt18) {
                 case 1 :
-                    // InternalBaseLanguage.g:2203:3: rule__PowerOfExpressionRule__Group_1__0
+                    // InternalBaseLanguage.g:2253:3: rule__PowerOfExpressionRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PowerOfExpressionRule__Group_1__0();
@@ -7264,14 +7384,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalBaseLanguage.g:2212:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    // InternalBaseLanguage.g:2262:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
     public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2216:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalBaseLanguage.g:2217:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalBaseLanguage.g:2266:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalBaseLanguage.g:2267:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__PowerOfExpressionRule__Group_1__0__Impl();
@@ -7302,17 +7422,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalBaseLanguage.g:2224:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    // InternalBaseLanguage.g:2274:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
     public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2228:1: ( ( '^' ) )
-            // InternalBaseLanguage.g:2229:1: ( '^' )
+            // InternalBaseLanguage.g:2278:1: ( ( '^' ) )
+            // InternalBaseLanguage.g:2279:1: ( '^' )
             {
-            // InternalBaseLanguage.g:2229:1: ( '^' )
-            // InternalBaseLanguage.g:2230:2: '^'
+            // InternalBaseLanguage.g:2279:1: ( '^' )
+            // InternalBaseLanguage.g:2280:2: '^'
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
             match(input,50,FOLLOW_2); 
@@ -7339,14 +7459,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalBaseLanguage.g:2239:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:2289:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2243:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalBaseLanguage.g:2244:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalBaseLanguage.g:2293:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalBaseLanguage.g:2294:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group_1__1__Impl();
@@ -7372,21 +7492,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalBaseLanguage.g:2250:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    // InternalBaseLanguage.g:2300:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
     public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2254:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalBaseLanguage.g:2255:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2304:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalBaseLanguage.g:2305:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalBaseLanguage.g:2255:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalBaseLanguage.g:2256:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalBaseLanguage.g:2305:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalBaseLanguage.g:2306:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
-            // InternalBaseLanguage.g:2257:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalBaseLanguage.g:2257:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+            // InternalBaseLanguage.g:2307:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalBaseLanguage.g:2307:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
@@ -7419,14 +7539,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalBaseLanguage.g:2266:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    // InternalBaseLanguage.g:2316:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2270:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalBaseLanguage.g:2271:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalBaseLanguage.g:2320:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalBaseLanguage.g:2321:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
@@ -7457,20 +7577,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2278:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    // InternalBaseLanguage.g:2328:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2282:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalBaseLanguage.g:2283:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalBaseLanguage.g:2332:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalBaseLanguage.g:2333:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-            // InternalBaseLanguage.g:2283:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalBaseLanguage.g:2284:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalBaseLanguage.g:2333:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalBaseLanguage.g:2334:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
-            // InternalBaseLanguage.g:2285:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalBaseLanguage.g:2335:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             loop19:
             do {
                 int alt19=2;
@@ -7483,7 +7603,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt19) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2285:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    // InternalBaseLanguage.g:2335:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
             	    {
             	    pushFollow(FOLLOW_13);
             	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
@@ -7522,14 +7642,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalBaseLanguage.g:2293:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2343:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2297:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2298:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalBaseLanguage.g:2347:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2348:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
@@ -7555,21 +7675,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2304:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:2354:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2308:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalBaseLanguage.g:2309:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:2358:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalBaseLanguage.g:2359:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:2309:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalBaseLanguage.g:2310:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:2359:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:2360:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalBaseLanguage.g:2311:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalBaseLanguage.g:2311:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            // InternalBaseLanguage.g:2361:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:2361:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
@@ -7602,14 +7722,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalBaseLanguage.g:2320:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    // InternalBaseLanguage.g:2370:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
     public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2324:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalBaseLanguage.g:2325:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalBaseLanguage.g:2374:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalBaseLanguage.g:2375:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ParanthesesRule__Group__0__Impl();
@@ -7640,17 +7760,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2332:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    // InternalBaseLanguage.g:2382:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
     public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2336:1: ( ( '(' ) )
-            // InternalBaseLanguage.g:2337:1: ( '(' )
+            // InternalBaseLanguage.g:2386:1: ( ( '(' ) )
+            // InternalBaseLanguage.g:2387:1: ( '(' )
             {
-            // InternalBaseLanguage.g:2337:1: ( '(' )
-            // InternalBaseLanguage.g:2338:2: '('
+            // InternalBaseLanguage.g:2387:1: ( '(' )
+            // InternalBaseLanguage.g:2388:2: '('
             {
              before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             match(input,51,FOLLOW_2); 
@@ -7677,14 +7797,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalBaseLanguage.g:2347:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    // InternalBaseLanguage.g:2397:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
     public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2351:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalBaseLanguage.g:2352:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalBaseLanguage.g:2401:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalBaseLanguage.g:2402:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
             pushFollow(FOLLOW_17);
             rule__ParanthesesRule__Group__1__Impl();
@@ -7715,21 +7835,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2359:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:2409:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2363:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalBaseLanguage.g:2364:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:2413:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalBaseLanguage.g:2414:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:2364:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalBaseLanguage.g:2365:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:2414:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalBaseLanguage.g:2415:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalBaseLanguage.g:2366:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalBaseLanguage.g:2366:3: rule__ParanthesesRule__SubExpressionAssignment_1
+            // InternalBaseLanguage.g:2416:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalBaseLanguage.g:2416:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__SubExpressionAssignment_1();
@@ -7762,14 +7882,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalBaseLanguage.g:2374:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    // InternalBaseLanguage.g:2424:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
     public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2378:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalBaseLanguage.g:2379:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalBaseLanguage.g:2428:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalBaseLanguage.g:2429:2: rule__ParanthesesRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__2__Impl();
@@ -7795,17 +7915,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalBaseLanguage.g:2385:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    // InternalBaseLanguage.g:2435:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
     public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2389:1: ( ( ')' ) )
-            // InternalBaseLanguage.g:2390:1: ( ')' )
+            // InternalBaseLanguage.g:2439:1: ( ( ')' ) )
+            // InternalBaseLanguage.g:2440:1: ( ')' )
             {
-            // InternalBaseLanguage.g:2390:1: ( ')' )
-            // InternalBaseLanguage.g:2391:2: ')'
+            // InternalBaseLanguage.g:2440:1: ( ')' )
+            // InternalBaseLanguage.g:2441:2: ')'
             {
              before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
             match(input,52,FOLLOW_2); 
@@ -7832,14 +7952,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__0"
-    // InternalBaseLanguage.g:2401:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    // InternalBaseLanguage.g:2451:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
     public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2405:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalBaseLanguage.g:2406:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalBaseLanguage.g:2455:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalBaseLanguage.g:2456:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
             pushFollow(FOLLOW_18);
             rule__CallRule__Group__0__Impl();
@@ -7870,21 +7990,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2413:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2463:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
     public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2417:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2418:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalBaseLanguage.g:2467:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2468:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2418:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalBaseLanguage.g:2419:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalBaseLanguage.g:2468:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalBaseLanguage.g:2469:2: ( rule__CallRule__FunctionAssignment_0 )
             {
              before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
-            // InternalBaseLanguage.g:2420:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalBaseLanguage.g:2420:3: rule__CallRule__FunctionAssignment_0
+            // InternalBaseLanguage.g:2470:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalBaseLanguage.g:2470:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__FunctionAssignment_0();
@@ -7917,14 +8037,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__1"
-    // InternalBaseLanguage.g:2428:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    // InternalBaseLanguage.g:2478:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
     public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2432:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalBaseLanguage.g:2433:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalBaseLanguage.g:2482:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalBaseLanguage.g:2483:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
             pushFollow(FOLLOW_19);
             rule__CallRule__Group__1__Impl();
@@ -7955,17 +8075,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2440:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    // InternalBaseLanguage.g:2490:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
     public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2444:1: ( ( '(' ) )
-            // InternalBaseLanguage.g:2445:1: ( '(' )
+            // InternalBaseLanguage.g:2494:1: ( ( '(' ) )
+            // InternalBaseLanguage.g:2495:1: ( '(' )
             {
-            // InternalBaseLanguage.g:2445:1: ( '(' )
-            // InternalBaseLanguage.g:2446:2: '('
+            // InternalBaseLanguage.g:2495:1: ( '(' )
+            // InternalBaseLanguage.g:2496:2: '('
             {
              before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
             match(input,51,FOLLOW_2); 
@@ -7992,14 +8112,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__2"
-    // InternalBaseLanguage.g:2455:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    // InternalBaseLanguage.g:2505:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
     public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2459:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalBaseLanguage.g:2460:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalBaseLanguage.g:2509:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalBaseLanguage.g:2510:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_19);
             rule__CallRule__Group__2__Impl();
@@ -8030,29 +8150,29 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalBaseLanguage.g:2467:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    // InternalBaseLanguage.g:2517:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
     public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2471:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalBaseLanguage.g:2472:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalBaseLanguage.g:2521:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalBaseLanguage.g:2522:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalBaseLanguage.g:2472:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalBaseLanguage.g:2473:2: ( rule__CallRule__Group_2__0 )?
+            // InternalBaseLanguage.g:2522:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalBaseLanguage.g:2523:2: ( rule__CallRule__Group_2__0 )?
             {
              before(grammarAccess.getCallRuleAccess().getGroup_2()); 
-            // InternalBaseLanguage.g:2474:2: ( rule__CallRule__Group_2__0 )?
+            // InternalBaseLanguage.g:2524:2: ( rule__CallRule__Group_2__0 )?
             int alt20=2;
             int LA20_0 = input.LA(1);
 
-            if ( ((LA20_0>=RULE_QUOTED_ID && LA20_0<=RULE_STRING)||LA20_0==15||(LA20_0>=22 && LA20_0<=23)||LA20_0==51||LA20_0==54||(LA20_0>=70 && LA20_0<=71)) ) {
+            if ( ((LA20_0>=RULE_QUOTED_ID && LA20_0<=RULE_STRING)||LA20_0==15||(LA20_0>=22 && LA20_0<=23)||LA20_0==51||(LA20_0>=73 && LA20_0<=74)) ) {
                 alt20=1;
             }
             switch (alt20) {
                 case 1 :
-                    // InternalBaseLanguage.g:2474:3: rule__CallRule__Group_2__0
+                    // InternalBaseLanguage.g:2524:3: rule__CallRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CallRule__Group_2__0();
@@ -8088,14 +8208,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__3"
-    // InternalBaseLanguage.g:2482:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    // InternalBaseLanguage.g:2532:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
     public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2486:1: ( rule__CallRule__Group__3__Impl )
-            // InternalBaseLanguage.g:2487:2: rule__CallRule__Group__3__Impl
+            // InternalBaseLanguage.g:2536:1: ( rule__CallRule__Group__3__Impl )
+            // InternalBaseLanguage.g:2537:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__3__Impl();
@@ -8121,17 +8241,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalBaseLanguage.g:2493:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    // InternalBaseLanguage.g:2543:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
     public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2497:1: ( ( ')' ) )
-            // InternalBaseLanguage.g:2498:1: ( ')' )
+            // InternalBaseLanguage.g:2547:1: ( ( ')' ) )
+            // InternalBaseLanguage.g:2548:1: ( ')' )
             {
-            // InternalBaseLanguage.g:2498:1: ( ')' )
-            // InternalBaseLanguage.g:2499:2: ')'
+            // InternalBaseLanguage.g:2548:1: ( ')' )
+            // InternalBaseLanguage.g:2549:2: ')'
             {
              before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
             match(input,52,FOLLOW_2); 
@@ -8158,14 +8278,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalBaseLanguage.g:2509:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    // InternalBaseLanguage.g:2559:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
     public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2513:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalBaseLanguage.g:2514:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
+            // InternalBaseLanguage.g:2563:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalBaseLanguage.g:2564:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
             pushFollow(FOLLOW_20);
             rule__CallRule__Group_2__0__Impl();
@@ -8196,21 +8316,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalBaseLanguage.g:2521:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    // InternalBaseLanguage.g:2571:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
     public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2525:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalBaseLanguage.g:2526:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalBaseLanguage.g:2575:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalBaseLanguage.g:2576:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalBaseLanguage.g:2526:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalBaseLanguage.g:2527:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalBaseLanguage.g:2576:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalBaseLanguage.g:2577:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
              before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
-            // InternalBaseLanguage.g:2528:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalBaseLanguage.g:2528:3: rule__CallRule__ParametersAssignment_2_0
+            // InternalBaseLanguage.g:2578:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalBaseLanguage.g:2578:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_0();
@@ -8243,14 +8363,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalBaseLanguage.g:2536:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    // InternalBaseLanguage.g:2586:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
     public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2540:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalBaseLanguage.g:2541:2: rule__CallRule__Group_2__1__Impl
+            // InternalBaseLanguage.g:2590:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalBaseLanguage.g:2591:2: rule__CallRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2__1__Impl();
@@ -8276,20 +8396,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalBaseLanguage.g:2547:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    // InternalBaseLanguage.g:2597:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
     public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2551:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalBaseLanguage.g:2552:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalBaseLanguage.g:2601:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalBaseLanguage.g:2602:1: ( ( rule__CallRule__Group_2_1__0 )* )
             {
-            // InternalBaseLanguage.g:2552:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalBaseLanguage.g:2553:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalBaseLanguage.g:2602:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalBaseLanguage.g:2603:2: ( rule__CallRule__Group_2_1__0 )*
             {
              before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
-            // InternalBaseLanguage.g:2554:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalBaseLanguage.g:2604:2: ( rule__CallRule__Group_2_1__0 )*
             loop21:
             do {
                 int alt21=2;
@@ -8302,7 +8422,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
                 switch (alt21) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2554:3: rule__CallRule__Group_2_1__0
+            	    // InternalBaseLanguage.g:2604:3: rule__CallRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_21);
             	    rule__CallRule__Group_2_1__0();
@@ -8341,14 +8461,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalBaseLanguage.g:2563:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    // InternalBaseLanguage.g:2613:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
     public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2567:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalBaseLanguage.g:2568:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalBaseLanguage.g:2617:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalBaseLanguage.g:2618:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
             {
             pushFollow(FOLLOW_5);
             rule__CallRule__Group_2_1__0__Impl();
@@ -8379,17 +8499,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalBaseLanguage.g:2575:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalBaseLanguage.g:2625:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2579:1: ( ( ',' ) )
-            // InternalBaseLanguage.g:2580:1: ( ',' )
+            // InternalBaseLanguage.g:2629:1: ( ( ',' ) )
+            // InternalBaseLanguage.g:2630:1: ( ',' )
             {
-            // InternalBaseLanguage.g:2580:1: ( ',' )
-            // InternalBaseLanguage.g:2581:2: ','
+            // InternalBaseLanguage.g:2630:1: ( ',' )
+            // InternalBaseLanguage.g:2631:2: ','
             {
              before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
             match(input,53,FOLLOW_2); 
@@ -8416,14 +8536,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalBaseLanguage.g:2590:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    // InternalBaseLanguage.g:2640:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
     public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2594:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalBaseLanguage.g:2595:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalBaseLanguage.g:2644:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalBaseLanguage.g:2645:2: rule__CallRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2_1__1__Impl();
@@ -8449,21 +8569,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalBaseLanguage.g:2601:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    // InternalBaseLanguage.g:2651:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
     public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2605:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalBaseLanguage.g:2606:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalBaseLanguage.g:2655:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalBaseLanguage.g:2656:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
             {
-            // InternalBaseLanguage.g:2606:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalBaseLanguage.g:2607:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalBaseLanguage.g:2656:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalBaseLanguage.g:2657:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
             {
              before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
-            // InternalBaseLanguage.g:2608:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalBaseLanguage.g:2608:3: rule__CallRule__ParametersAssignment_2_1_1
+            // InternalBaseLanguage.g:2658:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalBaseLanguage.g:2658:3: rule__CallRule__ParametersAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_1_1();
@@ -8495,160 +8615,15 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalBaseLanguage.g:2617:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalBaseLanguage.g:2621:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalBaseLanguage.g:2622:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
-            {
-            pushFollow(FOLLOW_5);
-            rule__ValueReferenceRule__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
-
-
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2629:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalBaseLanguage.g:2633:1: ( ( () ) )
-            // InternalBaseLanguage.g:2634:1: ( () )
-            {
-            // InternalBaseLanguage.g:2634:1: ( () )
-            // InternalBaseLanguage.g:2635:2: ()
-            {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-            // InternalBaseLanguage.g:2636:2: ()
-            // InternalBaseLanguage.g:2636:3: 
-            {
-            }
-
-             after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-
-            }
-
-
-            }
-
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
-
-
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalBaseLanguage.g:2644:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalBaseLanguage.g:2648:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2649:2: rule__ValueReferenceRule__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
-
-
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2655:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalBaseLanguage.g:2659:1: ( ( 'value' ) )
-            // InternalBaseLanguage.g:2660:1: ( 'value' )
-            {
-            // InternalBaseLanguage.g:2660:1: ( 'value' )
-            // InternalBaseLanguage.g:2661:2: 'value'
-            {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-            match(input,54,FOLLOW_2); 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
-
-
     // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalBaseLanguage.g:2671:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    // InternalBaseLanguage.g:2667:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
     public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2675:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalBaseLanguage.g:2676:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalBaseLanguage.g:2671:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalBaseLanguage.g:2672:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
             pushFollow(FOLLOW_22);
             rule__DoubleLiteralRule__Group__0__Impl();
@@ -8679,21 +8654,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2683:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2679:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
     public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2687:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2688:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalBaseLanguage.g:2683:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2684:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2688:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalBaseLanguage.g:2689:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalBaseLanguage.g:2684:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalBaseLanguage.g:2685:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalBaseLanguage.g:2690:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalBaseLanguage.g:2690:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            // InternalBaseLanguage.g:2686:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalBaseLanguage.g:2686:3: rule__DoubleLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__LiteralAssignment_0();
@@ -8726,14 +8701,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalBaseLanguage.g:2698:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2694:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
     public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2702:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2703:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalBaseLanguage.g:2698:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2699:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__Group__1__Impl();
@@ -8759,20 +8734,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2709:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    // InternalBaseLanguage.g:2705:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
     public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2713:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalBaseLanguage.g:2714:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalBaseLanguage.g:2709:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalBaseLanguage.g:2710:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalBaseLanguage.g:2714:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalBaseLanguage.g:2715:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalBaseLanguage.g:2710:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalBaseLanguage.g:2711:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalBaseLanguage.g:2716:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalBaseLanguage.g:2712:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             int alt22=2;
             int LA22_0 = input.LA(1);
 
@@ -8781,7 +8756,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt22) {
                 case 1 :
-                    // InternalBaseLanguage.g:2716:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalBaseLanguage.g:2712:3: rule__DoubleLiteralRule__FactorAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__DoubleLiteralRule__FactorAssignment_1();
@@ -8817,14 +8792,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalBaseLanguage.g:2725:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    // InternalBaseLanguage.g:2721:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
     public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2729:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalBaseLanguage.g:2730:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalBaseLanguage.g:2725:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalBaseLanguage.g:2726:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
             {
             pushFollow(FOLLOW_22);
             rule__IntegerLiteralRule__Group__0__Impl();
@@ -8855,21 +8830,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2737:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:2733:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
     public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2741:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2742:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalBaseLanguage.g:2737:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalBaseLanguage.g:2738:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2742:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalBaseLanguage.g:2743:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalBaseLanguage.g:2738:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalBaseLanguage.g:2739:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalBaseLanguage.g:2744:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalBaseLanguage.g:2744:3: rule__IntegerLiteralRule__LiteralAssignment_0
+            // InternalBaseLanguage.g:2740:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalBaseLanguage.g:2740:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__LiteralAssignment_0();
@@ -8902,14 +8877,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalBaseLanguage.g:2752:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2748:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
     public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2756:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2757:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalBaseLanguage.g:2752:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2753:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__1__Impl();
@@ -8935,20 +8910,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2763:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    // InternalBaseLanguage.g:2759:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
     public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2767:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalBaseLanguage.g:2768:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalBaseLanguage.g:2763:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalBaseLanguage.g:2764:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalBaseLanguage.g:2768:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalBaseLanguage.g:2769:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalBaseLanguage.g:2764:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalBaseLanguage.g:2765:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalBaseLanguage.g:2770:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalBaseLanguage.g:2766:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -8957,7 +8932,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             }
             switch (alt23) {
                 case 1 :
-                    // InternalBaseLanguage.g:2770:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    // InternalBaseLanguage.g:2766:3: rule__IntegerLiteralRule__FactorAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__IntegerLiteralRule__FactorAssignment_1();
@@ -8993,14 +8968,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalBaseLanguage.g:2779:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    // InternalBaseLanguage.g:2775:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
     public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2783:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalBaseLanguage.g:2784:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalBaseLanguage.g:2779:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalBaseLanguage.g:2780:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__BooleanLiteralRule__Group__0__Impl();
@@ -9031,21 +9006,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2791:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:2787:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2795:1: ( ( () ) )
-            // InternalBaseLanguage.g:2796:1: ( () )
+            // InternalBaseLanguage.g:2791:1: ( ( () ) )
+            // InternalBaseLanguage.g:2792:1: ( () )
             {
-            // InternalBaseLanguage.g:2796:1: ( () )
-            // InternalBaseLanguage.g:2797:2: ()
+            // InternalBaseLanguage.g:2792:1: ( () )
+            // InternalBaseLanguage.g:2793:2: ()
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
-            // InternalBaseLanguage.g:2798:2: ()
-            // InternalBaseLanguage.g:2798:3: 
+            // InternalBaseLanguage.g:2794:2: ()
+            // InternalBaseLanguage.g:2794:3: 
             {
             }
 
@@ -9068,14 +9043,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalBaseLanguage.g:2806:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:2802:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
     public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2810:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalBaseLanguage.g:2811:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalBaseLanguage.g:2806:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalBaseLanguage.g:2807:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__1__Impl();
@@ -9101,21 +9076,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2817:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    // InternalBaseLanguage.g:2813:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
     public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2821:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalBaseLanguage.g:2822:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalBaseLanguage.g:2817:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalBaseLanguage.g:2818:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalBaseLanguage.g:2822:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalBaseLanguage.g:2823:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalBaseLanguage.g:2818:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalBaseLanguage.g:2819:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
-            // InternalBaseLanguage.g:2824:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalBaseLanguage.g:2824:3: rule__BooleanLiteralRule__Alternatives_1
+            // InternalBaseLanguage.g:2820:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalBaseLanguage.g:2820:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Alternatives_1();
@@ -9147,17 +9122,772 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalBaseLanguage.g:2829:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2833:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalBaseLanguage.g:2834:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
+            {
+            pushFollow(FOLLOW_24);
+            rule__TypeDefinitionRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalBaseLanguage.g:2841:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2845:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalBaseLanguage.g:2846:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            {
+            // InternalBaseLanguage.g:2846:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalBaseLanguage.g:2847:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+            // InternalBaseLanguage.g:2848:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==75) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // InternalBaseLanguage.g:2848:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalBaseLanguage.g:2856:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2860:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalBaseLanguage.g:2861:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
+            {
+            pushFollow(FOLLOW_25);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__2();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalBaseLanguage.g:2868:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2872:1: ( ( 'type' ) )
+            // InternalBaseLanguage.g:2873:1: ( 'type' )
+            {
+            // InternalBaseLanguage.g:2873:1: ( 'type' )
+            // InternalBaseLanguage.g:2874:2: 'type'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            match(input,54,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalBaseLanguage.g:2883:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2887:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalBaseLanguage.g:2888:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
+            {
+            pushFollow(FOLLOW_26);
+            rule__TypeDefinitionRule__Group__2__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__3();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalBaseLanguage.g:2895:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2899:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalBaseLanguage.g:2900:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            {
+            // InternalBaseLanguage.g:2900:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalBaseLanguage.g:2901:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            // InternalBaseLanguage.g:2902:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalBaseLanguage.g:2902:3: rule__TypeDefinitionRule__NameAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__NameAssignment_2();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalBaseLanguage.g:2910:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2914:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalBaseLanguage.g:2915:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
+            {
+            pushFollow(FOLLOW_26);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__4();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalBaseLanguage.g:2922:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2926:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalBaseLanguage.g:2927:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            {
+            // InternalBaseLanguage.g:2927:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalBaseLanguage.g:2928:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            // InternalBaseLanguage.g:2929:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( (LA25_0==57) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalBaseLanguage.g:2929:3: rule__TypeDefinitionRule__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__Group_3__0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalBaseLanguage.g:2937:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2941:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalBaseLanguage.g:2942:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
+            {
+            pushFollow(FOLLOW_27);
+            rule__TypeDefinitionRule__Group__4__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__5();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalBaseLanguage.g:2949:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2953:1: ( ( '{' ) )
+            // InternalBaseLanguage.g:2954:1: ( '{' )
+            {
+            // InternalBaseLanguage.g:2954:1: ( '{' )
+            // InternalBaseLanguage.g:2955:2: '{'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,55,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalBaseLanguage.g:2964:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2968:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalBaseLanguage.g:2969:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
+            {
+            pushFollow(FOLLOW_27);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__6();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalBaseLanguage.g:2976:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2980:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalBaseLanguage.g:2981:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalBaseLanguage.g:2981:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalBaseLanguage.g:2982:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            // InternalBaseLanguage.g:2983:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( ((LA26_0>=RULE_QUOTED_ID && LA26_0<=RULE_ID)) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // InternalBaseLanguage.g:2983:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_28);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalBaseLanguage.g:2991:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:2995:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalBaseLanguage.g:2996:2: rule__TypeDefinitionRule__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__6__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalBaseLanguage.g:3002:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:3006:1: ( ( '}' ) )
+            // InternalBaseLanguage.g:3007:1: ( '}' )
+            {
+            // InternalBaseLanguage.g:3007:1: ( '}' )
+            // InternalBaseLanguage.g:3008:2: '}'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,56,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalBaseLanguage.g:3018:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:3022:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalBaseLanguage.g:3023:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
+            {
+            pushFollow(FOLLOW_25);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group_3__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalBaseLanguage.g:3030:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:3034:1: ( ( 'extends' ) )
+            // InternalBaseLanguage.g:3035:1: ( 'extends' )
+            {
+            // InternalBaseLanguage.g:3035:1: ( 'extends' )
+            // InternalBaseLanguage.g:3036:2: 'extends'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            match(input,57,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalBaseLanguage.g:3045:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:3049:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalBaseLanguage.g:3050:2: rule__TypeDefinitionRule__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group_3__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalBaseLanguage.g:3056:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:3060:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalBaseLanguage.g:3061:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            {
+            // InternalBaseLanguage.g:3061:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalBaseLanguage.g:3062:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            // InternalBaseLanguage.g:3063:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalBaseLanguage.g:3063:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalBaseLanguage.g:2833:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalBaseLanguage.g:3072:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2837:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalBaseLanguage.g:2838:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalBaseLanguage.g:3076:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalBaseLanguage.g:3077:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_29);
             rule__AttributeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
@@ -9186,21 +9916,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalBaseLanguage.g:2845:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:3084:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2849:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalBaseLanguage.g:2850:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalBaseLanguage.g:3088:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalBaseLanguage.g:3089:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:2850:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalBaseLanguage.g:2851:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalBaseLanguage.g:3089:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalBaseLanguage.g:3090:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
-            // InternalBaseLanguage.g:2852:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalBaseLanguage.g:2852:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalBaseLanguage.g:3091:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalBaseLanguage.g:3091:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -9233,16 +9963,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalBaseLanguage.g:2860:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalBaseLanguage.g:3099:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2864:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalBaseLanguage.g:2865:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalBaseLanguage.g:3103:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalBaseLanguage.g:3104:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_30);
             rule__AttributeDefinitionRule__Group__1__Impl();
 
             state._fsp--;
@@ -9271,20 +10001,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalBaseLanguage.g:2872:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalBaseLanguage.g:3111:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2876:1: ( ( ':' ) )
-            // InternalBaseLanguage.g:2877:1: ( ':' )
+            // InternalBaseLanguage.g:3115:1: ( ( ':' ) )
+            // InternalBaseLanguage.g:3116:1: ( ':' )
             {
-            // InternalBaseLanguage.g:2877:1: ( ':' )
-            // InternalBaseLanguage.g:2878:2: ':'
+            // InternalBaseLanguage.g:3116:1: ( ':' )
+            // InternalBaseLanguage.g:3117:2: ':'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
-            match(input,55,FOLLOW_2); 
+            match(input,58,FOLLOW_2); 
              after(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
 
             }
@@ -9308,16 +10038,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalBaseLanguage.g:2887:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalBaseLanguage.g:3126:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2891:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalBaseLanguage.g:2892:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalBaseLanguage.g:3130:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalBaseLanguage.g:3131:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__AttributeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
@@ -9346,21 +10076,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalBaseLanguage.g:2899:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalBaseLanguage.g:3138:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2903:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalBaseLanguage.g:2904:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalBaseLanguage.g:3142:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalBaseLanguage.g:3143:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalBaseLanguage.g:2904:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalBaseLanguage.g:2905:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalBaseLanguage.g:3143:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalBaseLanguage.g:3144:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
-            // InternalBaseLanguage.g:2906:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalBaseLanguage.g:2906:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalBaseLanguage.g:3145:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalBaseLanguage.g:3145:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -9393,16 +10123,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalBaseLanguage.g:2914:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalBaseLanguage.g:3153:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2918:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalBaseLanguage.g:2919:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalBaseLanguage.g:3157:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalBaseLanguage.g:3158:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_31);
             rule__AttributeDefinitionRule__Group__3__Impl();
 
             state._fsp--;
@@ -9431,29 +10161,29 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalBaseLanguage.g:2926:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalBaseLanguage.g:3165:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2930:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalBaseLanguage.g:2931:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalBaseLanguage.g:3169:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalBaseLanguage.g:3170:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalBaseLanguage.g:2931:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalBaseLanguage.g:2932:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalBaseLanguage.g:3170:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalBaseLanguage.g:3171:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
-            // InternalBaseLanguage.g:2933:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalBaseLanguage.g:3172:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
 
-            if ( (LA24_0==57) ) {
-                alt24=1;
+            if ( (LA27_0==60) ) {
+                alt27=1;
             }
-            switch (alt24) {
+            switch (alt27) {
                 case 1 :
-                    // InternalBaseLanguage.g:2933:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalBaseLanguage.g:3172:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -9489,14 +10219,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalBaseLanguage.g:2941:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalBaseLanguage.g:3180:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2945:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalBaseLanguage.g:2946:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalBaseLanguage.g:3184:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalBaseLanguage.g:3185:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -9522,20 +10252,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalBaseLanguage.g:2952:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalBaseLanguage.g:3191:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2956:1: ( ( ';' ) )
-            // InternalBaseLanguage.g:2957:1: ( ';' )
+            // InternalBaseLanguage.g:3195:1: ( ( ';' ) )
+            // InternalBaseLanguage.g:3196:1: ( ';' )
             {
-            // InternalBaseLanguage.g:2957:1: ( ';' )
-            // InternalBaseLanguage.g:2958:2: ';'
+            // InternalBaseLanguage.g:3196:1: ( ';' )
+            // InternalBaseLanguage.g:3197:2: ';'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
-            match(input,56,FOLLOW_2); 
+            match(input,59,FOLLOW_2); 
              after(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
 
             }
@@ -9559,14 +10289,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalBaseLanguage.g:2968:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalBaseLanguage.g:3207:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2972:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalBaseLanguage.g:2973:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalBaseLanguage.g:3211:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalBaseLanguage.g:3212:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
@@ -9597,20 +10327,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalBaseLanguage.g:2980:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalBaseLanguage.g:3219:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2984:1: ( ( ':=' ) )
-            // InternalBaseLanguage.g:2985:1: ( ':=' )
+            // InternalBaseLanguage.g:3223:1: ( ( ':=' ) )
+            // InternalBaseLanguage.g:3224:1: ( ':=' )
             {
-            // InternalBaseLanguage.g:2985:1: ( ':=' )
-            // InternalBaseLanguage.g:2986:2: ':='
+            // InternalBaseLanguage.g:3224:1: ( ':=' )
+            // InternalBaseLanguage.g:3225:2: ':='
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
-            match(input,57,FOLLOW_2); 
+            match(input,60,FOLLOW_2); 
              after(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
 
             }
@@ -9634,14 +10364,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalBaseLanguage.g:2995:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalBaseLanguage.g:3234:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:2999:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalBaseLanguage.g:3000:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalBaseLanguage.g:3238:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalBaseLanguage.g:3239:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -9667,21 +10397,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalBaseLanguage.g:3006:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalBaseLanguage.g:3245:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3010:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalBaseLanguage.g:3011:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalBaseLanguage.g:3249:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalBaseLanguage.g:3250:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalBaseLanguage.g:3011:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalBaseLanguage.g:3012:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalBaseLanguage.g:3250:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalBaseLanguage.g:3251:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
-            // InternalBaseLanguage.g:3013:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalBaseLanguage.g:3013:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalBaseLanguage.g:3252:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalBaseLanguage.g:3252:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -9714,16 +10444,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalBaseLanguage.g:3022:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3261:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3026:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3027:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalBaseLanguage.g:3265:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3266:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_32);
             rule__LiteralTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -9752,21 +10482,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3034:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3273:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3038:1: ( ( () ) )
-            // InternalBaseLanguage.g:3039:1: ( () )
+            // InternalBaseLanguage.g:3277:1: ( ( () ) )
+            // InternalBaseLanguage.g:3278:1: ( () )
             {
-            // InternalBaseLanguage.g:3039:1: ( () )
-            // InternalBaseLanguage.g:3040:2: ()
+            // InternalBaseLanguage.g:3278:1: ( () )
+            // InternalBaseLanguage.g:3279:2: ()
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
-            // InternalBaseLanguage.g:3041:2: ()
-            // InternalBaseLanguage.g:3041:3: 
+            // InternalBaseLanguage.g:3280:2: ()
+            // InternalBaseLanguage.g:3280:3: 
             {
             }
 
@@ -9789,14 +10519,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalBaseLanguage.g:3049:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3288:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3053:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3054:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3292:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3293:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -9822,20 +10552,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3060:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalBaseLanguage.g:3299:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3064:1: ( ( 'literal' ) )
-            // InternalBaseLanguage.g:3065:1: ( 'literal' )
+            // InternalBaseLanguage.g:3303:1: ( ( 'literal' ) )
+            // InternalBaseLanguage.g:3304:1: ( 'literal' )
             {
-            // InternalBaseLanguage.g:3065:1: ( 'literal' )
-            // InternalBaseLanguage.g:3066:2: 'literal'
+            // InternalBaseLanguage.g:3304:1: ( 'literal' )
+            // InternalBaseLanguage.g:3305:2: 'literal'
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
-            match(input,58,FOLLOW_2); 
+            match(input,61,FOLLOW_2); 
              after(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
 
             }
@@ -9859,16 +10589,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalBaseLanguage.g:3076:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3315:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3080:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3081:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalBaseLanguage.g:3319:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3320:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_33);
             rule__InstanceTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -9897,21 +10627,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3088:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3327:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3092:1: ( ( () ) )
-            // InternalBaseLanguage.g:3093:1: ( () )
+            // InternalBaseLanguage.g:3331:1: ( ( () ) )
+            // InternalBaseLanguage.g:3332:1: ( () )
             {
-            // InternalBaseLanguage.g:3093:1: ( () )
-            // InternalBaseLanguage.g:3094:2: ()
+            // InternalBaseLanguage.g:3332:1: ( () )
+            // InternalBaseLanguage.g:3333:2: ()
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
-            // InternalBaseLanguage.g:3095:2: ()
-            // InternalBaseLanguage.g:3095:3: 
+            // InternalBaseLanguage.g:3334:2: ()
+            // InternalBaseLanguage.g:3334:3: 
             {
             }
 
@@ -9934,16 +10664,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalBaseLanguage.g:3103:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalBaseLanguage.g:3342:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3107:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalBaseLanguage.g:3108:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalBaseLanguage.g:3346:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalBaseLanguage.g:3347:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_25);
             rule__InstanceTypeRule__Group__1__Impl();
 
             state._fsp--;
@@ -9972,20 +10702,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3115:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalBaseLanguage.g:3354:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3119:1: ( ( 'instance' ) )
-            // InternalBaseLanguage.g:3120:1: ( 'instance' )
+            // InternalBaseLanguage.g:3358:1: ( ( 'instance' ) )
+            // InternalBaseLanguage.g:3359:1: ( 'instance' )
             {
-            // InternalBaseLanguage.g:3120:1: ( 'instance' )
-            // InternalBaseLanguage.g:3121:2: 'instance'
+            // InternalBaseLanguage.g:3359:1: ( 'instance' )
+            // InternalBaseLanguage.g:3360:2: 'instance'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
-            match(input,59,FOLLOW_2); 
+            match(input,62,FOLLOW_2); 
              after(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
 
             }
@@ -10009,16 +10739,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalBaseLanguage.g:3130:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalBaseLanguage.g:3369:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3134:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalBaseLanguage.g:3135:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalBaseLanguage.g:3373:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalBaseLanguage.g:3374:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
-            pushFollow(FOLLOW_30);
+            pushFollow(FOLLOW_34);
             rule__InstanceTypeRule__Group__2__Impl();
 
             state._fsp--;
@@ -10047,21 +10777,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalBaseLanguage.g:3142:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalBaseLanguage.g:3381:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3146:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalBaseLanguage.g:3147:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalBaseLanguage.g:3385:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalBaseLanguage.g:3386:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalBaseLanguage.g:3147:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalBaseLanguage.g:3148:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalBaseLanguage.g:3386:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalBaseLanguage.g:3387:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
-            // InternalBaseLanguage.g:3149:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalBaseLanguage.g:3149:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalBaseLanguage.g:3388:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalBaseLanguage.g:3388:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -10094,14 +10824,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalBaseLanguage.g:3157:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalBaseLanguage.g:3396:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3161:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalBaseLanguage.g:3162:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalBaseLanguage.g:3400:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalBaseLanguage.g:3401:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -10127,35 +10857,35 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalBaseLanguage.g:3168:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalBaseLanguage.g:3407:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3172:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalBaseLanguage.g:3173:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalBaseLanguage.g:3411:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalBaseLanguage.g:3412:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalBaseLanguage.g:3173:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalBaseLanguage.g:3174:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalBaseLanguage.g:3412:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalBaseLanguage.g:3413:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
-            // InternalBaseLanguage.g:3175:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop25:
+            // InternalBaseLanguage.g:3414:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop28:
             do {
-                int alt25=2;
-                int LA25_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( (LA25_0==60) ) {
-                    alt25=1;
+                if ( (LA28_0==63) ) {
+                    alt28=1;
                 }
 
 
-                switch (alt25) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalBaseLanguage.g:3175:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalBaseLanguage.g:3414:3: rule__InstanceTypeRule__Group_3__0
             	    {
-            	    pushFollow(FOLLOW_31);
+            	    pushFollow(FOLLOW_35);
             	    rule__InstanceTypeRule__Group_3__0();
 
             	    state._fsp--;
@@ -10165,7 +10895,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             	    break;
 
             	default :
-            	    break loop25;
+            	    break loop28;
                 }
             } while (true);
 
@@ -10192,16 +10922,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalBaseLanguage.g:3184:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalBaseLanguage.g:3423:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3188:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalBaseLanguage.g:3189:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalBaseLanguage.g:3427:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalBaseLanguage.g:3428:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_25);
             rule__InstanceTypeRule__Group_3__0__Impl();
 
             state._fsp--;
@@ -10230,20 +10960,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalBaseLanguage.g:3196:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalBaseLanguage.g:3435:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3200:1: ( ( '|' ) )
-            // InternalBaseLanguage.g:3201:1: ( '|' )
+            // InternalBaseLanguage.g:3439:1: ( ( '|' ) )
+            // InternalBaseLanguage.g:3440:1: ( '|' )
             {
-            // InternalBaseLanguage.g:3201:1: ( '|' )
-            // InternalBaseLanguage.g:3202:2: '|'
+            // InternalBaseLanguage.g:3440:1: ( '|' )
+            // InternalBaseLanguage.g:3441:2: '|'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
-            match(input,60,FOLLOW_2); 
+            match(input,63,FOLLOW_2); 
              after(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
 
             }
@@ -10267,14 +10997,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalBaseLanguage.g:3211:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalBaseLanguage.g:3450:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3215:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalBaseLanguage.g:3216:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalBaseLanguage.g:3454:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalBaseLanguage.g:3455:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -10300,21 +11030,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalBaseLanguage.g:3222:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalBaseLanguage.g:3461:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3226:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalBaseLanguage.g:3227:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalBaseLanguage.g:3465:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalBaseLanguage.g:3466:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalBaseLanguage.g:3227:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalBaseLanguage.g:3228:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalBaseLanguage.g:3466:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalBaseLanguage.g:3467:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
-            // InternalBaseLanguage.g:3229:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalBaseLanguage.g:3229:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalBaseLanguage.g:3468:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalBaseLanguage.g:3468:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -10347,16 +11077,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalBaseLanguage.g:3238:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3477:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3242:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3243:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalBaseLanguage.g:3481:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3482:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
-            pushFollow(FOLLOW_32);
+            pushFollow(FOLLOW_36);
             rule__StringTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -10385,21 +11115,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3250:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3489:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3254:1: ( ( () ) )
-            // InternalBaseLanguage.g:3255:1: ( () )
+            // InternalBaseLanguage.g:3493:1: ( ( () ) )
+            // InternalBaseLanguage.g:3494:1: ( () )
             {
-            // InternalBaseLanguage.g:3255:1: ( () )
-            // InternalBaseLanguage.g:3256:2: ()
+            // InternalBaseLanguage.g:3494:1: ( () )
+            // InternalBaseLanguage.g:3495:2: ()
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
-            // InternalBaseLanguage.g:3257:2: ()
-            // InternalBaseLanguage.g:3257:3: 
+            // InternalBaseLanguage.g:3496:2: ()
+            // InternalBaseLanguage.g:3496:3: 
             {
             }
 
@@ -10422,14 +11152,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalBaseLanguage.g:3265:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3504:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3269:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3270:2: rule__StringTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3508:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3509:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -10455,20 +11185,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3276:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalBaseLanguage.g:3515:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3280:1: ( ( 'string' ) )
-            // InternalBaseLanguage.g:3281:1: ( 'string' )
+            // InternalBaseLanguage.g:3519:1: ( ( 'string' ) )
+            // InternalBaseLanguage.g:3520:1: ( 'string' )
             {
-            // InternalBaseLanguage.g:3281:1: ( 'string' )
-            // InternalBaseLanguage.g:3282:2: 'string'
+            // InternalBaseLanguage.g:3520:1: ( 'string' )
+            // InternalBaseLanguage.g:3521:2: 'string'
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
-            match(input,61,FOLLOW_2); 
+            match(input,64,FOLLOW_2); 
              after(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
 
             }
@@ -10492,16 +11222,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalBaseLanguage.g:3292:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3531:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3296:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3297:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalBaseLanguage.g:3535:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3536:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_37);
             rule__ExpressionTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -10530,21 +11260,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3304:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3543:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3308:1: ( ( () ) )
-            // InternalBaseLanguage.g:3309:1: ( () )
+            // InternalBaseLanguage.g:3547:1: ( ( () ) )
+            // InternalBaseLanguage.g:3548:1: ( () )
             {
-            // InternalBaseLanguage.g:3309:1: ( () )
-            // InternalBaseLanguage.g:3310:2: ()
+            // InternalBaseLanguage.g:3548:1: ( () )
+            // InternalBaseLanguage.g:3549:2: ()
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
-            // InternalBaseLanguage.g:3311:2: ()
-            // InternalBaseLanguage.g:3311:3: 
+            // InternalBaseLanguage.g:3550:2: ()
+            // InternalBaseLanguage.g:3550:3: 
             {
             }
 
@@ -10567,14 +11297,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalBaseLanguage.g:3319:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3558:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3323:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3324:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3562:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3563:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -10600,20 +11330,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3330:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalBaseLanguage.g:3569:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3334:1: ( ( 'expression' ) )
-            // InternalBaseLanguage.g:3335:1: ( 'expression' )
+            // InternalBaseLanguage.g:3573:1: ( ( 'expression' ) )
+            // InternalBaseLanguage.g:3574:1: ( 'expression' )
             {
-            // InternalBaseLanguage.g:3335:1: ( 'expression' )
-            // InternalBaseLanguage.g:3336:2: 'expression'
+            // InternalBaseLanguage.g:3574:1: ( 'expression' )
+            // InternalBaseLanguage.g:3575:2: 'expression'
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
-            match(input,62,FOLLOW_2); 
+            match(input,65,FOLLOW_2); 
              after(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
 
             }
@@ -10637,16 +11367,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalBaseLanguage.g:3346:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3585:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3350:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3351:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalBaseLanguage.g:3589:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3590:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_38);
             rule__IntTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -10675,21 +11405,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3358:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3597:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3362:1: ( ( () ) )
-            // InternalBaseLanguage.g:3363:1: ( () )
+            // InternalBaseLanguage.g:3601:1: ( ( () ) )
+            // InternalBaseLanguage.g:3602:1: ( () )
             {
-            // InternalBaseLanguage.g:3363:1: ( () )
-            // InternalBaseLanguage.g:3364:2: ()
+            // InternalBaseLanguage.g:3602:1: ( () )
+            // InternalBaseLanguage.g:3603:2: ()
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
-            // InternalBaseLanguage.g:3365:2: ()
-            // InternalBaseLanguage.g:3365:3: 
+            // InternalBaseLanguage.g:3604:2: ()
+            // InternalBaseLanguage.g:3604:3: 
             {
             }
 
@@ -10712,14 +11442,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalBaseLanguage.g:3373:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3612:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3377:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3378:2: rule__IntTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3616:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3617:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -10745,20 +11475,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3384:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalBaseLanguage.g:3623:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3388:1: ( ( 'int' ) )
-            // InternalBaseLanguage.g:3389:1: ( 'int' )
+            // InternalBaseLanguage.g:3627:1: ( ( 'int' ) )
+            // InternalBaseLanguage.g:3628:1: ( 'int' )
             {
-            // InternalBaseLanguage.g:3389:1: ( 'int' )
-            // InternalBaseLanguage.g:3390:2: 'int'
+            // InternalBaseLanguage.g:3628:1: ( 'int' )
+            // InternalBaseLanguage.g:3629:2: 'int'
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
-            match(input,63,FOLLOW_2); 
+            match(input,66,FOLLOW_2); 
              after(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
 
             }
@@ -10782,16 +11512,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalBaseLanguage.g:3400:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3639:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3404:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3405:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalBaseLanguage.g:3643:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3644:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_39);
             rule__FloatTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -10820,21 +11550,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3412:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3651:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3416:1: ( ( () ) )
-            // InternalBaseLanguage.g:3417:1: ( () )
+            // InternalBaseLanguage.g:3655:1: ( ( () ) )
+            // InternalBaseLanguage.g:3656:1: ( () )
             {
-            // InternalBaseLanguage.g:3417:1: ( () )
-            // InternalBaseLanguage.g:3418:2: ()
+            // InternalBaseLanguage.g:3656:1: ( () )
+            // InternalBaseLanguage.g:3657:2: ()
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
-            // InternalBaseLanguage.g:3419:2: ()
-            // InternalBaseLanguage.g:3419:3: 
+            // InternalBaseLanguage.g:3658:2: ()
+            // InternalBaseLanguage.g:3658:3: 
             {
             }
 
@@ -10857,14 +11587,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalBaseLanguage.g:3427:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3666:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3431:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3432:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3670:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3671:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -10890,20 +11620,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3438:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalBaseLanguage.g:3677:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3442:1: ( ( 'float' ) )
-            // InternalBaseLanguage.g:3443:1: ( 'float' )
+            // InternalBaseLanguage.g:3681:1: ( ( 'float' ) )
+            // InternalBaseLanguage.g:3682:1: ( 'float' )
             {
-            // InternalBaseLanguage.g:3443:1: ( 'float' )
-            // InternalBaseLanguage.g:3444:2: 'float'
+            // InternalBaseLanguage.g:3682:1: ( 'float' )
+            // InternalBaseLanguage.g:3683:2: 'float'
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
-            match(input,64,FOLLOW_2); 
+            match(input,67,FOLLOW_2); 
              after(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
 
             }
@@ -10927,16 +11657,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalBaseLanguage.g:3454:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3693:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3458:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3459:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalBaseLanguage.g:3697:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3698:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_40);
             rule__BooleanTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -10965,21 +11695,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3466:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3705:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3470:1: ( ( () ) )
-            // InternalBaseLanguage.g:3471:1: ( () )
+            // InternalBaseLanguage.g:3709:1: ( ( () ) )
+            // InternalBaseLanguage.g:3710:1: ( () )
             {
-            // InternalBaseLanguage.g:3471:1: ( () )
-            // InternalBaseLanguage.g:3472:2: ()
+            // InternalBaseLanguage.g:3710:1: ( () )
+            // InternalBaseLanguage.g:3711:2: ()
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
-            // InternalBaseLanguage.g:3473:2: ()
-            // InternalBaseLanguage.g:3473:3: 
+            // InternalBaseLanguage.g:3712:2: ()
+            // InternalBaseLanguage.g:3712:3: 
             {
             }
 
@@ -11002,14 +11732,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalBaseLanguage.g:3481:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3720:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3485:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3486:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3724:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3725:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -11035,20 +11765,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3492:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalBaseLanguage.g:3731:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3496:1: ( ( 'boolean' ) )
-            // InternalBaseLanguage.g:3497:1: ( 'boolean' )
+            // InternalBaseLanguage.g:3735:1: ( ( 'boolean' ) )
+            // InternalBaseLanguage.g:3736:1: ( 'boolean' )
             {
-            // InternalBaseLanguage.g:3497:1: ( 'boolean' )
-            // InternalBaseLanguage.g:3498:2: 'boolean'
+            // InternalBaseLanguage.g:3736:1: ( 'boolean' )
+            // InternalBaseLanguage.g:3737:2: 'boolean'
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
-            match(input,65,FOLLOW_2); 
+            match(input,68,FOLLOW_2); 
              after(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
 
             }
@@ -11072,16 +11802,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalBaseLanguage.g:3508:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3747:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3512:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3513:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalBaseLanguage.g:3751:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3752:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
-            pushFollow(FOLLOW_37);
+            pushFollow(FOLLOW_41);
             rule__VoidTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -11110,21 +11840,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3520:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3759:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3524:1: ( ( () ) )
-            // InternalBaseLanguage.g:3525:1: ( () )
+            // InternalBaseLanguage.g:3763:1: ( ( () ) )
+            // InternalBaseLanguage.g:3764:1: ( () )
             {
-            // InternalBaseLanguage.g:3525:1: ( () )
-            // InternalBaseLanguage.g:3526:2: ()
+            // InternalBaseLanguage.g:3764:1: ( () )
+            // InternalBaseLanguage.g:3765:2: ()
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
-            // InternalBaseLanguage.g:3527:2: ()
-            // InternalBaseLanguage.g:3527:3: 
+            // InternalBaseLanguage.g:3766:2: ()
+            // InternalBaseLanguage.g:3766:3: 
             {
             }
 
@@ -11147,14 +11877,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalBaseLanguage.g:3535:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3774:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3539:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3540:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3778:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3779:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -11180,20 +11910,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3546:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalBaseLanguage.g:3785:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3550:1: ( ( 'void' ) )
-            // InternalBaseLanguage.g:3551:1: ( 'void' )
+            // InternalBaseLanguage.g:3789:1: ( ( 'void' ) )
+            // InternalBaseLanguage.g:3790:1: ( 'void' )
             {
-            // InternalBaseLanguage.g:3551:1: ( 'void' )
-            // InternalBaseLanguage.g:3552:2: 'void'
+            // InternalBaseLanguage.g:3790:1: ( 'void' )
+            // InternalBaseLanguage.g:3791:2: 'void'
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
-            match(input,66,FOLLOW_2); 
+            match(input,69,FOLLOW_2); 
              after(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
 
             }
@@ -11217,16 +11947,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalBaseLanguage.g:3562:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3801:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3566:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3567:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalBaseLanguage.g:3805:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3806:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_30);
             rule__DataTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -11255,21 +11985,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3574:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalBaseLanguage.g:3813:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3578:1: ( ( () ) )
-            // InternalBaseLanguage.g:3579:1: ( () )
+            // InternalBaseLanguage.g:3817:1: ( ( () ) )
+            // InternalBaseLanguage.g:3818:1: ( () )
             {
-            // InternalBaseLanguage.g:3579:1: ( () )
-            // InternalBaseLanguage.g:3580:2: ()
+            // InternalBaseLanguage.g:3818:1: ( () )
+            // InternalBaseLanguage.g:3819:2: ()
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
-            // InternalBaseLanguage.g:3581:2: ()
-            // InternalBaseLanguage.g:3581:3: 
+            // InternalBaseLanguage.g:3820:2: ()
+            // InternalBaseLanguage.g:3820:3: 
             {
             }
 
@@ -11292,14 +12022,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalBaseLanguage.g:3589:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3828:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3593:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3594:2: rule__DataTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3832:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3833:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -11325,20 +12055,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3600:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalBaseLanguage.g:3839:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3604:1: ( ( 'data' ) )
-            // InternalBaseLanguage.g:3605:1: ( 'data' )
+            // InternalBaseLanguage.g:3843:1: ( ( 'data' ) )
+            // InternalBaseLanguage.g:3844:1: ( 'data' )
             {
-            // InternalBaseLanguage.g:3605:1: ( 'data' )
-            // InternalBaseLanguage.g:3606:2: 'data'
+            // InternalBaseLanguage.g:3844:1: ( 'data' )
+            // InternalBaseLanguage.g:3845:2: 'data'
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
-            match(input,67,FOLLOW_2); 
+            match(input,70,FOLLOW_2); 
              after(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
 
             }
@@ -11362,16 +12092,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalBaseLanguage.g:3616:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalBaseLanguage.g:3855:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3620:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalBaseLanguage.g:3621:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalBaseLanguage.g:3859:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalBaseLanguage.g:3860:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_30);
             rule__ArrayTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -11400,20 +12130,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3628:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalBaseLanguage.g:3867:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3632:1: ( ( 'array' ) )
-            // InternalBaseLanguage.g:3633:1: ( 'array' )
+            // InternalBaseLanguage.g:3871:1: ( ( 'array' ) )
+            // InternalBaseLanguage.g:3872:1: ( 'array' )
             {
-            // InternalBaseLanguage.g:3633:1: ( 'array' )
-            // InternalBaseLanguage.g:3634:2: 'array'
+            // InternalBaseLanguage.g:3872:1: ( 'array' )
+            // InternalBaseLanguage.g:3873:2: 'array'
             {
              before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
-            match(input,68,FOLLOW_2); 
+            match(input,71,FOLLOW_2); 
              after(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
 
             }
@@ -11437,14 +12167,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalBaseLanguage.g:3643:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3882:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3647:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3648:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalBaseLanguage.g:3886:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3887:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -11470,21 +12200,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3654:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:3893:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3658:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalBaseLanguage.g:3659:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalBaseLanguage.g:3897:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalBaseLanguage.g:3898:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:3659:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalBaseLanguage.g:3660:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalBaseLanguage.g:3898:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalBaseLanguage.g:3899:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
-            // InternalBaseLanguage.g:3661:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalBaseLanguage.g:3661:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalBaseLanguage.g:3900:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalBaseLanguage.g:3900:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -11517,16 +12247,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalBaseLanguage.g:3670:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalBaseLanguage.g:3909:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3674:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalBaseLanguage.g:3675:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalBaseLanguage.g:3913:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalBaseLanguage.g:3914:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_25);
             rule__ParameterRule__Group__0__Impl();
 
             state._fsp--;
@@ -11555,21 +12285,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalBaseLanguage.g:3682:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalBaseLanguage.g:3921:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3686:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalBaseLanguage.g:3687:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalBaseLanguage.g:3925:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalBaseLanguage.g:3926:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalBaseLanguage.g:3687:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalBaseLanguage.g:3688:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalBaseLanguage.g:3926:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalBaseLanguage.g:3927:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
              before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
-            // InternalBaseLanguage.g:3689:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalBaseLanguage.g:3689:3: rule__ParameterRule__TypeAssignment_0
+            // InternalBaseLanguage.g:3928:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalBaseLanguage.g:3928:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -11602,14 +12332,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalBaseLanguage.g:3697:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalBaseLanguage.g:3936:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3701:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalBaseLanguage.g:3702:2: rule__ParameterRule__Group__1__Impl
+            // InternalBaseLanguage.g:3940:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalBaseLanguage.g:3941:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -11635,21 +12365,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalBaseLanguage.g:3708:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalBaseLanguage.g:3947:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3712:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalBaseLanguage.g:3713:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalBaseLanguage.g:3951:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalBaseLanguage.g:3952:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalBaseLanguage.g:3713:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalBaseLanguage.g:3714:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalBaseLanguage.g:3952:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalBaseLanguage.g:3953:2: ( rule__ParameterRule__NameAssignment_1 )
             {
              before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
-            // InternalBaseLanguage.g:3715:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalBaseLanguage.g:3715:3: rule__ParameterRule__NameAssignment_1
+            // InternalBaseLanguage.g:3954:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalBaseLanguage.g:3954:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -11682,16 +12412,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalBaseLanguage.g:3724:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalBaseLanguage.g:3963: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 {
-            // InternalBaseLanguage.g:3728:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalBaseLanguage.g:3729:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalBaseLanguage.g:3967:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalBaseLanguage.g:3968:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_42);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -11720,17 +12450,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalBaseLanguage.g:3736:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalBaseLanguage.g:3975:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3740:1: ( ( ruleStringOrId ) )
-            // InternalBaseLanguage.g:3741:1: ( ruleStringOrId )
+            // InternalBaseLanguage.g:3979:1: ( ( ruleStringOrId ) )
+            // InternalBaseLanguage.g:3980:1: ( ruleStringOrId )
             {
-            // InternalBaseLanguage.g:3741:1: ( ruleStringOrId )
-            // InternalBaseLanguage.g:3742:2: ruleStringOrId
+            // InternalBaseLanguage.g:3980:1: ( ruleStringOrId )
+            // InternalBaseLanguage.g:3981:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -11761,14 +12491,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalBaseLanguage.g:3751:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalBaseLanguage.g:3990:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3755:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalBaseLanguage.g:3756:2: rule__QualifiedName__Group__1__Impl
+            // InternalBaseLanguage.g:3994:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalBaseLanguage.g:3995:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -11794,35 +12524,35 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalBaseLanguage.g:3762:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalBaseLanguage.g:4001: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 {
-            // InternalBaseLanguage.g:3766:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalBaseLanguage.g:3767:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalBaseLanguage.g:4005:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalBaseLanguage.g:4006:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalBaseLanguage.g:3767:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalBaseLanguage.g:3768:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalBaseLanguage.g:4006:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalBaseLanguage.g:4007:2: ( rule__QualifiedName__Group_1__0 )*
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
-            // InternalBaseLanguage.g:3769:2: ( rule__QualifiedName__Group_1__0 )*
-            loop26:
+            // InternalBaseLanguage.g:4008:2: ( rule__QualifiedName__Group_1__0 )*
+            loop29:
             do {
-                int alt26=2;
-                int LA26_0 = input.LA(1);
+                int alt29=2;
+                int LA29_0 = input.LA(1);
 
-                if ( (LA26_0==69) ) {
-                    alt26=1;
+                if ( (LA29_0==72) ) {
+                    alt29=1;
                 }
 
 
-                switch (alt26) {
+                switch (alt29) {
             	case 1 :
-            	    // InternalBaseLanguage.g:3769:3: rule__QualifiedName__Group_1__0
+            	    // InternalBaseLanguage.g:4008:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_39);
+            	    pushFollow(FOLLOW_43);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -11832,7 +12562,7 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
             	    break;
 
             	default :
-            	    break loop26;
+            	    break loop29;
                 }
             } while (true);
 
@@ -11859,16 +12589,16 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalBaseLanguage.g:3778:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalBaseLanguage.g:4017: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 {
-            // InternalBaseLanguage.g:3782:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalBaseLanguage.g:3783:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalBaseLanguage.g:4021:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalBaseLanguage.g:4022:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_25);
             rule__QualifiedName__Group_1__0__Impl();
 
             state._fsp--;
@@ -11897,20 +12627,20 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalBaseLanguage.g:3790:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalBaseLanguage.g:4029:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3794:1: ( ( '.' ) )
-            // InternalBaseLanguage.g:3795:1: ( '.' )
+            // InternalBaseLanguage.g:4033:1: ( ( '.' ) )
+            // InternalBaseLanguage.g:4034:1: ( '.' )
             {
-            // InternalBaseLanguage.g:3795:1: ( '.' )
-            // InternalBaseLanguage.g:3796:2: '.'
+            // InternalBaseLanguage.g:4034:1: ( '.' )
+            // InternalBaseLanguage.g:4035:2: '.'
             {
              before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
-            match(input,69,FOLLOW_2); 
+            match(input,72,FOLLOW_2); 
              after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
 
             }
@@ -11934,14 +12664,14 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalBaseLanguage.g:3805:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalBaseLanguage.g:4044: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 {
-            // InternalBaseLanguage.g:3809:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalBaseLanguage.g:3810:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalBaseLanguage.g:4048:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalBaseLanguage.g:4049:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -11967,17 +12697,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalBaseLanguage.g:3816:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalBaseLanguage.g:4055:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3820:1: ( ( ruleStringOrId ) )
-            // InternalBaseLanguage.g:3821:1: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4059:1: ( ( ruleStringOrId ) )
+            // InternalBaseLanguage.g:4060:1: ( ruleStringOrId )
             {
-            // InternalBaseLanguage.g:3821:1: ( ruleStringOrId )
-            // InternalBaseLanguage.g:3822:2: ruleStringOrId
+            // InternalBaseLanguage.g:4060:1: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4061:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
@@ -12008,17 +12738,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalBaseLanguage.g:3832:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalBaseLanguage.g:4071:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3836:1: ( ( ruleXorExpressionRule ) )
-            // InternalBaseLanguage.g:3837:2: ( ruleXorExpressionRule )
+            // InternalBaseLanguage.g:4075:1: ( ( ruleXorExpressionRule ) )
+            // InternalBaseLanguage.g:4076:2: ( ruleXorExpressionRule )
             {
-            // InternalBaseLanguage.g:3837:2: ( ruleXorExpressionRule )
-            // InternalBaseLanguage.g:3838:3: ruleXorExpressionRule
+            // InternalBaseLanguage.g:4076:2: ( ruleXorExpressionRule )
+            // InternalBaseLanguage.g:4077:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12049,17 +12779,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalBaseLanguage.g:3847:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalBaseLanguage.g:4086:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3851:1: ( ( ruleXorExpressionRule ) )
-            // InternalBaseLanguage.g:3852:2: ( ruleXorExpressionRule )
+            // InternalBaseLanguage.g:4090:1: ( ( ruleXorExpressionRule ) )
+            // InternalBaseLanguage.g:4091:2: ( ruleXorExpressionRule )
             {
-            // InternalBaseLanguage.g:3852:2: ( ruleXorExpressionRule )
-            // InternalBaseLanguage.g:3853:3: ruleXorExpressionRule
+            // InternalBaseLanguage.g:4091:2: ( ruleXorExpressionRule )
+            // InternalBaseLanguage.g:4092:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12090,17 +12820,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalBaseLanguage.g:3862:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalBaseLanguage.g:4101:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3866:1: ( ( ruleAndExpressionRule ) )
-            // InternalBaseLanguage.g:3867:2: ( ruleAndExpressionRule )
+            // InternalBaseLanguage.g:4105:1: ( ( ruleAndExpressionRule ) )
+            // InternalBaseLanguage.g:4106:2: ( ruleAndExpressionRule )
             {
-            // InternalBaseLanguage.g:3867:2: ( ruleAndExpressionRule )
-            // InternalBaseLanguage.g:3868:3: ruleAndExpressionRule
+            // InternalBaseLanguage.g:4106:2: ( ruleAndExpressionRule )
+            // InternalBaseLanguage.g:4107:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12131,17 +12861,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalBaseLanguage.g:3877:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalBaseLanguage.g:4116:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3881:1: ( ( ruleAndExpressionRule ) )
-            // InternalBaseLanguage.g:3882:2: ( ruleAndExpressionRule )
+            // InternalBaseLanguage.g:4120:1: ( ( ruleAndExpressionRule ) )
+            // InternalBaseLanguage.g:4121:2: ( ruleAndExpressionRule )
             {
-            // InternalBaseLanguage.g:3882:2: ( ruleAndExpressionRule )
-            // InternalBaseLanguage.g:3883:3: ruleAndExpressionRule
+            // InternalBaseLanguage.g:4121:2: ( ruleAndExpressionRule )
+            // InternalBaseLanguage.g:4122:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12172,17 +12902,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalBaseLanguage.g:3892:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalBaseLanguage.g:4131:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3896:1: ( ( ruleNotExpressionRule ) )
-            // InternalBaseLanguage.g:3897:2: ( ruleNotExpressionRule )
+            // InternalBaseLanguage.g:4135:1: ( ( ruleNotExpressionRule ) )
+            // InternalBaseLanguage.g:4136:2: ( ruleNotExpressionRule )
             {
-            // InternalBaseLanguage.g:3897:2: ( ruleNotExpressionRule )
-            // InternalBaseLanguage.g:3898:3: ruleNotExpressionRule
+            // InternalBaseLanguage.g:4136:2: ( ruleNotExpressionRule )
+            // InternalBaseLanguage.g:4137:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12213,17 +12943,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalBaseLanguage.g:3907:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalBaseLanguage.g:4146:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3911:1: ( ( ruleNotExpressionRule ) )
-            // InternalBaseLanguage.g:3912:2: ( ruleNotExpressionRule )
+            // InternalBaseLanguage.g:4150:1: ( ( ruleNotExpressionRule ) )
+            // InternalBaseLanguage.g:4151:2: ( ruleNotExpressionRule )
             {
-            // InternalBaseLanguage.g:3912:2: ( ruleNotExpressionRule )
-            // InternalBaseLanguage.g:3913:3: ruleNotExpressionRule
+            // InternalBaseLanguage.g:4151:2: ( ruleNotExpressionRule )
+            // InternalBaseLanguage.g:4152:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12254,24 +12984,24 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalBaseLanguage.g:3922:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalBaseLanguage.g:4161:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3926:1: ( ( ( '!' ) ) )
-            // InternalBaseLanguage.g:3927:2: ( ( '!' ) )
+            // InternalBaseLanguage.g:4165:1: ( ( ( '!' ) ) )
+            // InternalBaseLanguage.g:4166:2: ( ( '!' ) )
             {
-            // InternalBaseLanguage.g:3927:2: ( ( '!' ) )
-            // InternalBaseLanguage.g:3928:3: ( '!' )
+            // InternalBaseLanguage.g:4166:2: ( ( '!' ) )
+            // InternalBaseLanguage.g:4167:3: ( '!' )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            // InternalBaseLanguage.g:3929:3: ( '!' )
-            // InternalBaseLanguage.g:3930:4: '!'
+            // InternalBaseLanguage.g:4168:3: ( '!' )
+            // InternalBaseLanguage.g:4169:4: '!'
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            match(input,70,FOLLOW_2); 
+            match(input,73,FOLLOW_2); 
              after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
 
             }
@@ -12299,17 +13029,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalBaseLanguage.g:3941:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalBaseLanguage.g:4180:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3945:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalBaseLanguage.g:3946:2: ( ruleComparisonExpressionRule )
+            // InternalBaseLanguage.g:4184:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalBaseLanguage.g:4185:2: ( ruleComparisonExpressionRule )
             {
-            // InternalBaseLanguage.g:3946:2: ( ruleComparisonExpressionRule )
-            // InternalBaseLanguage.g:3947:3: ruleComparisonExpressionRule
+            // InternalBaseLanguage.g:4185:2: ( ruleComparisonExpressionRule )
+            // InternalBaseLanguage.g:4186:3: ruleComparisonExpressionRule
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12340,17 +13070,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalBaseLanguage.g:3956:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalBaseLanguage.g:4195:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3960:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalBaseLanguage.g:3961:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4199:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalBaseLanguage.g:4200:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalBaseLanguage.g:3961:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalBaseLanguage.g:3962:3: ruleAddOrSubtractExpressionRule
+            // InternalBaseLanguage.g:4200:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4201:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12381,17 +13111,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalBaseLanguage.g:3971:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalBaseLanguage.g:4210:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3975:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalBaseLanguage.g:3976:2: ( rulePartialComparisonExpressionRule )
+            // InternalBaseLanguage.g:4214:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalBaseLanguage.g:4215:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalBaseLanguage.g:3976:2: ( rulePartialComparisonExpressionRule )
-            // InternalBaseLanguage.g:3977:3: rulePartialComparisonExpressionRule
+            // InternalBaseLanguage.g:4215:2: ( rulePartialComparisonExpressionRule )
+            // InternalBaseLanguage.g:4216:3: rulePartialComparisonExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12422,17 +13152,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalBaseLanguage.g:3986:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalBaseLanguage.g:4225:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:3990:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalBaseLanguage.g:3991:2: ( ruleComparisonOperatorRule )
+            // InternalBaseLanguage.g:4229:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalBaseLanguage.g:4230:2: ( ruleComparisonOperatorRule )
             {
-            // InternalBaseLanguage.g:3991:2: ( ruleComparisonOperatorRule )
-            // InternalBaseLanguage.g:3992:3: ruleComparisonOperatorRule
+            // InternalBaseLanguage.g:4230:2: ( ruleComparisonOperatorRule )
+            // InternalBaseLanguage.g:4231:3: ruleComparisonOperatorRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12463,17 +13193,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalBaseLanguage.g:4001:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalBaseLanguage.g:4240:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4005:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalBaseLanguage.g:4006:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4244:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalBaseLanguage.g:4245:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalBaseLanguage.g:4006:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalBaseLanguage.g:4007:3: ruleAddOrSubtractExpressionRule
+            // InternalBaseLanguage.g:4245:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4246:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12504,17 +13234,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalBaseLanguage.g:4016:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalBaseLanguage.g:4255:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4020:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalBaseLanguage.g:4021:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalBaseLanguage.g:4259:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalBaseLanguage.g:4260:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalBaseLanguage.g:4021:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalBaseLanguage.g:4022:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalBaseLanguage.g:4260:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalBaseLanguage.g:4261:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12545,17 +13275,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalBaseLanguage.g:4031:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalBaseLanguage.g:4270:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4035:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalBaseLanguage.g:4036:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalBaseLanguage.g:4274:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalBaseLanguage.g:4275:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalBaseLanguage.g:4036:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalBaseLanguage.g:4037:3: ruleAddOrSubtractOperatorRule
+            // InternalBaseLanguage.g:4275:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalBaseLanguage.g:4276:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12586,17 +13316,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalBaseLanguage.g:4046:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalBaseLanguage.g:4285:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4050:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalBaseLanguage.g:4051:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalBaseLanguage.g:4289:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalBaseLanguage.g:4290:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalBaseLanguage.g:4051:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalBaseLanguage.g:4052:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalBaseLanguage.g:4290:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalBaseLanguage.g:4291:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12627,17 +13357,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalBaseLanguage.g:4061:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalBaseLanguage.g:4300:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4065:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalBaseLanguage.g:4066:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4304:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalBaseLanguage.g:4305:2: ( rulePowerOfExpressionRule )
             {
-            // InternalBaseLanguage.g:4066:2: ( rulePowerOfExpressionRule )
-            // InternalBaseLanguage.g:4067:3: rulePowerOfExpressionRule
+            // InternalBaseLanguage.g:4305:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4306:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12668,17 +13398,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalBaseLanguage.g:4076:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalBaseLanguage.g:4315:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4080:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalBaseLanguage.g:4081:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalBaseLanguage.g:4319:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalBaseLanguage.g:4320:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalBaseLanguage.g:4081:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalBaseLanguage.g:4082:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalBaseLanguage.g:4320:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalBaseLanguage.g:4321:3: ruleMultiplyDivideModuloOperatorRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12709,17 +13439,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalBaseLanguage.g:4091:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalBaseLanguage.g:4330:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4095:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalBaseLanguage.g:4096:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4334:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalBaseLanguage.g:4335:2: ( rulePowerOfExpressionRule )
             {
-            // InternalBaseLanguage.g:4096:2: ( rulePowerOfExpressionRule )
-            // InternalBaseLanguage.g:4097:3: rulePowerOfExpressionRule
+            // InternalBaseLanguage.g:4335:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4336:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12750,17 +13480,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalBaseLanguage.g:4106:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalBaseLanguage.g:4345:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4110:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalBaseLanguage.g:4111:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4349:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalBaseLanguage.g:4350:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalBaseLanguage.g:4111:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalBaseLanguage.g:4112:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalBaseLanguage.g:4350:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalBaseLanguage.g:4351:3: ruleUnaryAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12791,17 +13521,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalBaseLanguage.g:4121:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalBaseLanguage.g:4360:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4125:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalBaseLanguage.g:4126:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4364:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalBaseLanguage.g:4365:2: ( rulePowerOfExpressionRule )
             {
-            // InternalBaseLanguage.g:4126:2: ( rulePowerOfExpressionRule )
-            // InternalBaseLanguage.g:4127:3: rulePowerOfExpressionRule
+            // InternalBaseLanguage.g:4365:2: ( rulePowerOfExpressionRule )
+            // InternalBaseLanguage.g:4366:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12832,17 +13562,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalBaseLanguage.g:4136:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalBaseLanguage.g:4375:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4140:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalBaseLanguage.g:4141:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalBaseLanguage.g:4379:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalBaseLanguage.g:4380:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalBaseLanguage.g:4141:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalBaseLanguage.g:4142:3: ruleAddOrSubtractOperatorRule
+            // InternalBaseLanguage.g:4380:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalBaseLanguage.g:4381:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12873,17 +13603,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalBaseLanguage.g:4151:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalBaseLanguage.g:4390:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4155:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalBaseLanguage.g:4156:2: ( ruleLiteralOrReferenceRule )
+            // InternalBaseLanguage.g:4394:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalBaseLanguage.g:4395:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalBaseLanguage.g:4156:2: ( ruleLiteralOrReferenceRule )
-            // InternalBaseLanguage.g:4157:3: ruleLiteralOrReferenceRule
+            // InternalBaseLanguage.g:4395:2: ( ruleLiteralOrReferenceRule )
+            // InternalBaseLanguage.g:4396:3: ruleLiteralOrReferenceRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12914,17 +13644,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalBaseLanguage.g:4166:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalBaseLanguage.g:4405:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4170:1: ( ( ruleExpressionRule ) )
-            // InternalBaseLanguage.g:4171:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4409:1: ( ( ruleExpressionRule ) )
+            // InternalBaseLanguage.g:4410:2: ( ruleExpressionRule )
             {
-            // InternalBaseLanguage.g:4171:2: ( ruleExpressionRule )
-            // InternalBaseLanguage.g:4172:3: ruleExpressionRule
+            // InternalBaseLanguage.g:4410:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4411:3: ruleExpressionRule
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -12955,17 +13685,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalBaseLanguage.g:4181:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalBaseLanguage.g:4420:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4185:1: ( ( ruleFunctionNameRule ) )
-            // InternalBaseLanguage.g:4186:2: ( ruleFunctionNameRule )
+            // InternalBaseLanguage.g:4424:1: ( ( ruleFunctionNameRule ) )
+            // InternalBaseLanguage.g:4425:2: ( ruleFunctionNameRule )
             {
-            // InternalBaseLanguage.g:4186:2: ( ruleFunctionNameRule )
-            // InternalBaseLanguage.g:4187:3: ruleFunctionNameRule
+            // InternalBaseLanguage.g:4425:2: ( ruleFunctionNameRule )
+            // InternalBaseLanguage.g:4426:3: ruleFunctionNameRule
             {
              before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -12996,17 +13726,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalBaseLanguage.g:4196:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalBaseLanguage.g:4435:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4200:1: ( ( ruleExpressionRule ) )
-            // InternalBaseLanguage.g:4201:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4439:1: ( ( ruleExpressionRule ) )
+            // InternalBaseLanguage.g:4440:2: ( ruleExpressionRule )
             {
-            // InternalBaseLanguage.g:4201:2: ( ruleExpressionRule )
-            // InternalBaseLanguage.g:4202:3: ruleExpressionRule
+            // InternalBaseLanguage.g:4440:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4441:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -13037,17 +13767,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalBaseLanguage.g:4211:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalBaseLanguage.g:4450:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4215:1: ( ( ruleExpressionRule ) )
-            // InternalBaseLanguage.g:4216:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4454:1: ( ( ruleExpressionRule ) )
+            // InternalBaseLanguage.g:4455:2: ( ruleExpressionRule )
             {
-            // InternalBaseLanguage.g:4216:2: ( ruleExpressionRule )
-            // InternalBaseLanguage.g:4217:3: ruleExpressionRule
+            // InternalBaseLanguage.g:4455:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4456:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13077,18 +13807,67 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalBaseLanguage.g:4465:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:4469:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:4470:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalBaseLanguage.g:4470:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4471:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            // InternalBaseLanguage.g:4472:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4473:4: ruleQualifiedName
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalBaseLanguage.g:4226:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalBaseLanguage.g:4484:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4230:1: ( ( RULE_DOUBLE ) )
-            // InternalBaseLanguage.g:4231:2: ( RULE_DOUBLE )
+            // InternalBaseLanguage.g:4488:1: ( ( RULE_DOUBLE ) )
+            // InternalBaseLanguage.g:4489:2: ( RULE_DOUBLE )
             {
-            // InternalBaseLanguage.g:4231:2: ( RULE_DOUBLE )
-            // InternalBaseLanguage.g:4232:3: RULE_DOUBLE
+            // InternalBaseLanguage.g:4489:2: ( RULE_DOUBLE )
+            // InternalBaseLanguage.g:4490:3: RULE_DOUBLE
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
             match(input,RULE_DOUBLE,FOLLOW_2); 
@@ -13115,17 +13894,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalBaseLanguage.g:4241:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalBaseLanguage.g:4499:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4245:1: ( ( ruleFactorRule ) )
-            // InternalBaseLanguage.g:4246:2: ( ruleFactorRule )
+            // InternalBaseLanguage.g:4503:1: ( ( ruleFactorRule ) )
+            // InternalBaseLanguage.g:4504:2: ( ruleFactorRule )
             {
-            // InternalBaseLanguage.g:4246:2: ( ruleFactorRule )
-            // InternalBaseLanguage.g:4247:3: ruleFactorRule
+            // InternalBaseLanguage.g:4504:2: ( ruleFactorRule )
+            // InternalBaseLanguage.g:4505:3: ruleFactorRule
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13156,17 +13935,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalBaseLanguage.g:4256:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalBaseLanguage.g:4514:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4260:1: ( ( RULE_INT ) )
-            // InternalBaseLanguage.g:4261:2: ( RULE_INT )
+            // InternalBaseLanguage.g:4518:1: ( ( RULE_INT ) )
+            // InternalBaseLanguage.g:4519:2: ( RULE_INT )
             {
-            // InternalBaseLanguage.g:4261:2: ( RULE_INT )
-            // InternalBaseLanguage.g:4262:3: RULE_INT
+            // InternalBaseLanguage.g:4519:2: ( RULE_INT )
+            // InternalBaseLanguage.g:4520:3: RULE_INT
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -13193,17 +13972,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalBaseLanguage.g:4271:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalBaseLanguage.g:4529:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4275:1: ( ( ruleFactorRule ) )
-            // InternalBaseLanguage.g:4276:2: ( ruleFactorRule )
+            // InternalBaseLanguage.g:4533:1: ( ( ruleFactorRule ) )
+            // InternalBaseLanguage.g:4534:2: ( ruleFactorRule )
             {
-            // InternalBaseLanguage.g:4276:2: ( ruleFactorRule )
-            // InternalBaseLanguage.g:4277:3: ruleFactorRule
+            // InternalBaseLanguage.g:4534:2: ( ruleFactorRule )
+            // InternalBaseLanguage.g:4535:3: ruleFactorRule
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13234,17 +14013,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalBaseLanguage.g:4286:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalBaseLanguage.g:4544:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4290:1: ( ( RULE_STRING ) )
-            // InternalBaseLanguage.g:4291:2: ( RULE_STRING )
+            // InternalBaseLanguage.g:4548:1: ( ( RULE_STRING ) )
+            // InternalBaseLanguage.g:4549:2: ( RULE_STRING )
             {
-            // InternalBaseLanguage.g:4291:2: ( RULE_STRING )
-            // InternalBaseLanguage.g:4292:3: RULE_STRING
+            // InternalBaseLanguage.g:4549:2: ( RULE_STRING )
+            // InternalBaseLanguage.g:4550:3: RULE_STRING
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -13271,24 +14050,24 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalBaseLanguage.g:4301:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalBaseLanguage.g:4559:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4305:1: ( ( ( 'true' ) ) )
-            // InternalBaseLanguage.g:4306:2: ( ( 'true' ) )
+            // InternalBaseLanguage.g:4563:1: ( ( ( 'true' ) ) )
+            // InternalBaseLanguage.g:4564:2: ( ( 'true' ) )
             {
-            // InternalBaseLanguage.g:4306:2: ( ( 'true' ) )
-            // InternalBaseLanguage.g:4307:3: ( 'true' )
+            // InternalBaseLanguage.g:4564:2: ( ( 'true' ) )
+            // InternalBaseLanguage.g:4565:3: ( 'true' )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            // InternalBaseLanguage.g:4308:3: ( 'true' )
-            // InternalBaseLanguage.g:4309:4: 'true'
+            // InternalBaseLanguage.g:4566:3: ( 'true' )
+            // InternalBaseLanguage.g:4567:4: 'true'
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            match(input,71,FOLLOW_2); 
+            match(input,74,FOLLOW_2); 
              after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
 
             }
@@ -13315,18 +14094,194 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalBaseLanguage.g:4578:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:4582:1: ( ( ( 'abstract' ) ) )
+            // InternalBaseLanguage.g:4583:2: ( ( 'abstract' ) )
+            {
+            // InternalBaseLanguage.g:4583:2: ( ( 'abstract' ) )
+            // InternalBaseLanguage.g:4584:3: ( 'abstract' )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            // InternalBaseLanguage.g:4585:3: ( 'abstract' )
+            // InternalBaseLanguage.g:4586:4: 'abstract'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            match(input,75,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalBaseLanguage.g:4597:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:4601:1: ( ( ruleStringOrId ) )
+            // InternalBaseLanguage.g:4602:2: ( ruleStringOrId )
+            {
+            // InternalBaseLanguage.g:4602:2: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4603:3: ruleStringOrId
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalBaseLanguage.g:4612:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:4616:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:4617:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalBaseLanguage.g:4617:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4618:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            // InternalBaseLanguage.g:4619:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4620:4: ruleQualifiedName
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalBaseLanguage.g:4631:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalBaseLanguage.g:4635:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalBaseLanguage.g:4636:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalBaseLanguage.g:4636:2: ( ruleAttributeDefinitionRule )
+            // InternalBaseLanguage.g:4637:3: ruleAttributeDefinitionRule
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalBaseLanguage.g:4320:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalBaseLanguage.g:4646:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4324:1: ( ( ruleStringOrId ) )
-            // InternalBaseLanguage.g:4325:2: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4650:1: ( ( ruleStringOrId ) )
+            // InternalBaseLanguage.g:4651:2: ( ruleStringOrId )
             {
-            // InternalBaseLanguage.g:4325:2: ( ruleStringOrId )
-            // InternalBaseLanguage.g:4326:3: ruleStringOrId
+            // InternalBaseLanguage.g:4651:2: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4652:3: ruleStringOrId
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -13357,17 +14312,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalBaseLanguage.g:4335:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalBaseLanguage.g:4661:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4339:1: ( ( ruleTypeRule ) )
-            // InternalBaseLanguage.g:4340:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4665:1: ( ( ruleTypeRule ) )
+            // InternalBaseLanguage.g:4666:2: ( ruleTypeRule )
             {
-            // InternalBaseLanguage.g:4340:2: ( ruleTypeRule )
-            // InternalBaseLanguage.g:4341:3: ruleTypeRule
+            // InternalBaseLanguage.g:4666:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4667:3: ruleTypeRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -13398,17 +14353,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalBaseLanguage.g:4350:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalBaseLanguage.g:4676:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4354:1: ( ( ruleExpressionRule ) )
-            // InternalBaseLanguage.g:4355:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4680:1: ( ( ruleExpressionRule ) )
+            // InternalBaseLanguage.g:4681:2: ( ruleExpressionRule )
             {
-            // InternalBaseLanguage.g:4355:2: ( ruleExpressionRule )
-            // InternalBaseLanguage.g:4356:3: ruleExpressionRule
+            // InternalBaseLanguage.g:4681:2: ( ruleExpressionRule )
+            // InternalBaseLanguage.g:4682:3: ruleExpressionRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13439,21 +14394,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalBaseLanguage.g:4365:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalBaseLanguage.g:4691:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4369:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalBaseLanguage.g:4370:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4695:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:4696:2: ( ( ruleQualifiedName ) )
             {
-            // InternalBaseLanguage.g:4370:2: ( ( ruleQualifiedName ) )
-            // InternalBaseLanguage.g:4371:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4696:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4697:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
-            // InternalBaseLanguage.g:4372:3: ( ruleQualifiedName )
-            // InternalBaseLanguage.g:4373:4: ruleQualifiedName
+            // InternalBaseLanguage.g:4698:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4699:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -13488,21 +14443,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalBaseLanguage.g:4384:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalBaseLanguage.g:4710:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4388:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalBaseLanguage.g:4389:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4714:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:4715:2: ( ( ruleQualifiedName ) )
             {
-            // InternalBaseLanguage.g:4389:2: ( ( ruleQualifiedName ) )
-            // InternalBaseLanguage.g:4390:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4715:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4716:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
-            // InternalBaseLanguage.g:4391:3: ( ruleQualifiedName )
-            // InternalBaseLanguage.g:4392:4: ruleQualifiedName
+            // InternalBaseLanguage.g:4717:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4718:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -13537,17 +14492,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalBaseLanguage.g:4403:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalBaseLanguage.g:4729:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4407:1: ( ( ruleTypeRule ) )
-            // InternalBaseLanguage.g:4408:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4733:1: ( ( ruleTypeRule ) )
+            // InternalBaseLanguage.g:4734:2: ( ruleTypeRule )
             {
-            // InternalBaseLanguage.g:4408:2: ( ruleTypeRule )
-            // InternalBaseLanguage.g:4409:3: ruleTypeRule
+            // InternalBaseLanguage.g:4734:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4735:3: ruleTypeRule
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13578,17 +14533,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalBaseLanguage.g:4418:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalBaseLanguage.g:4744:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4422:1: ( ( ruleTypeRule ) )
-            // InternalBaseLanguage.g:4423:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4748:1: ( ( ruleTypeRule ) )
+            // InternalBaseLanguage.g:4749:2: ( ruleTypeRule )
             {
-            // InternalBaseLanguage.g:4423:2: ( ruleTypeRule )
-            // InternalBaseLanguage.g:4424:3: ruleTypeRule
+            // InternalBaseLanguage.g:4749:2: ( ruleTypeRule )
+            // InternalBaseLanguage.g:4750:3: ruleTypeRule
             {
              before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -13619,17 +14574,17 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalBaseLanguage.g:4433:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalBaseLanguage.g:4759:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4437:1: ( ( ruleStringOrId ) )
-            // InternalBaseLanguage.g:4438:2: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4763:1: ( ( ruleStringOrId ) )
+            // InternalBaseLanguage.g:4764:2: ( ruleStringOrId )
             {
-            // InternalBaseLanguage.g:4438:2: ( ruleStringOrId )
-            // InternalBaseLanguage.g:4439:3: ruleStringOrId
+            // InternalBaseLanguage.g:4764:2: ( ruleStringOrId )
+            // InternalBaseLanguage.g:4765:3: ruleStringOrId
             {
              before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -13660,21 +14615,21 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalBaseLanguage.g:4448:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalBaseLanguage.g:4774:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalBaseLanguage.g:4452:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalBaseLanguage.g:4453:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4778:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:4779:2: ( ( ruleQualifiedName ) )
             {
-            // InternalBaseLanguage.g:4453:2: ( ( ruleQualifiedName ) )
-            // InternalBaseLanguage.g:4454:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4779:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:4780:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
-            // InternalBaseLanguage.g:4455:3: ( ruleQualifiedName )
-            // InternalBaseLanguage.g:4456:4: ruleQualifiedName
+            // InternalBaseLanguage.g:4781:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:4782:4: ruleQualifiedName
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
             pushFollow(FOLLOW_2);
@@ -13710,13 +14665,58 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     // Delegated rules
 
 
+    protected DFA1 dfa1 = new DFA1(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\112\2\110\2\uffff\1\5\2\uffff\2\110";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\43\uffff\1\4\26\uffff\1\3",
+            "\13\7\24\uffff\4\7\1\6\2\7\5\uffff\1\7\14\uffff\1\5",
+            "\13\7\24\uffff\4\7\1\6\2\7\5\uffff\1\7\14\uffff\1\5",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\24\uffff\4\7\1\6\2\7\5\uffff\1\7\14\uffff\1\5",
+            "\13\7\24\uffff\4\7\1\6\2\7\5\uffff\1\7\14\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA1 extends DFA {
+
+        public DFA1(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 1;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1092:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     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[]{0x0000800000000000L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000800000000002L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0048000000C081F0L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0008000000C081F0L,0x0000000000000600L});
     public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0001000000000000L});
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0001000000000002L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0002000000000000L});
@@ -13730,26 +14730,30 @@ public class InternalBaseLanguageParser extends AbstractInternalContentAssistPar
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0004000000000000L});
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0010000000000000L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0058000000C081F0L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0018000000C081F0L,0x0000000000000600L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0020000000000000L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0020000000000002L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00007FFFF8000000L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000000000081C0L,0x0000000000000080L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0080000000000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0xEC00000000000000L,0x000000000000001FL});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0300000000000000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000030L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x1000000000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x1000000000000002L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000000000081C0L,0x0000000000000400L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000030L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0280000000000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0100000000000030L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000032L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x6000000000000000L,0x00000000000000FFL});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x1800000000000000L});
     public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x2000000000000000L});
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x4000000000000000L});
     public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x8000000000000000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000020L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x8000000000000002L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.base.dsl.ui/src-gen/de/evoal/languages/model/base/dsl/ui/contentassist/AbstractBaseLanguageProposalProvider.java b/src/languages/de.evoal.languages.model.base.dsl.ui/src-gen/de/evoal/languages/model/base/dsl/ui/contentassist/AbstractBaseLanguageProposalProvider.java
index e3955650..9c9c146a 100644
--- a/src/languages/de.evoal.languages.model.base.dsl.ui/src-gen/de/evoal/languages/model/base/dsl/ui/contentassist/AbstractBaseLanguageProposalProvider.java
+++ b/src/languages/de.evoal.languages.model.base.dsl.ui/src-gen/de/evoal/languages/model/base/dsl/ui/contentassist/AbstractBaseLanguageProposalProvider.java
@@ -85,6 +85,9 @@ public abstract class AbstractBaseLanguageProposalProvider extends TerminalsProp
 	public void completeCallRule_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeConstantReferenceRule_Definition(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		lookupCrossReference(((CrossReference)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeDoubleLiteralRule_Literal(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -139,6 +142,15 @@ public abstract class AbstractBaseLanguageProposalProvider extends TerminalsProp
 	public void completeFunctionDefinitionRule_Parameters(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeConstantDefinitionRule_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantDefinitionRule_Name(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
+	public void completeConstantDefinitionRule_Value(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeParameterRule_Type(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
@@ -203,6 +215,9 @@ public abstract class AbstractBaseLanguageProposalProvider extends TerminalsProp
 	public void complete_ValueReferenceRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_ConstantReferenceRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_LiteralRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
@@ -266,6 +281,9 @@ public abstract class AbstractBaseLanguageProposalProvider extends TerminalsProp
 	public void complete_FunctionDefinitionRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
+	public void complete_ConstantDefinitionRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		// subclasses may override
+	}
 	public void complete_ParameterRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/BaseLanguage.xtextbin b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/BaseLanguage.xtextbin
index 0da8ef0b5e6a5311333d0f772805244f986fce2a..b2fb6b2340d31224665d6f541827b55e696c7109 100644
GIT binary patch
delta 2940
zcmZuzX?PP=6y+tENz*OVrfCW-P?lN>5)@Q~md<-!6lAj?n^2rKQwXM$kWBdC0~{9+
zL9OU0?hA;b2#O*qDvG#ofIBWI;s)QRh@z<AcJIuagn;=&nS0K;=bpFBbkr|x+_+F6
zgEuV_j(PPwf$AjJ;jfFT2~AeDCZ$b@D{8CKl#D1&dKqy#q)ASCxx?AX=?ex=f)N+J
zg5(Q1A*C&>hP7~16&*EhdL=0k=weP@g5;t!xjuy@x=61gd4jZ=Wd7(<;&wP{1t-0l
zh=QY;&}GmiFCLybOB)+g;<6et`z%NDa?YjKAgKyS*8(^@ia0GAPl(QbVCg!5(hlNv
zl#fnEv~Vmkzdk(ISnn_JTBBai-L5eD`73g7AcEkcH<Hc*HH_*00lu5iM-?ITW_-5N
zA#`$97z6#?jIDl;?-ncup?E76Z%Y;R;OJ;58HtMYc0}~CjM6*6p2xJOhPb;sGX}ZK
z9^~%-8RQ;>u7qayo-DHpYm4nXR#%dI3?!#D+8&eR;RLLXnZ<pW#Tr=m9^>S=7M3H%
zF1L^8a6ixC0b_e{pSrcg4S7D8>I8Y3!9Row>mbeIx|FuLFaWUfe3<L3H>v`q1sfnw
zH+=--c@*O*H#!2P{t2^WRiqms8|UyEnCLOAKW;1wRC+gIV8h|r6ZmYiu`N*UeG;D`
z?kRlsv~eiVt7r?7%kkke`0!a2?`}*hDe*VVNy-tCK8K`gsBgvk^Two--W4w(sTxT5
zquXG*{6w;)VO}h*Bog)>e$iM};`42{m*OShxagRALSHtjy99c^f>FmT2|{1BVXq-<
z^4KOqUq@K^8wi_i!``%EZ=nN3y^SdS9YlpVN@|uu(rhUv&7*7RI_XkrrL>rKNXw-a
z(rOx)*3t!3mv&2gq<wTG9Zx-UCfxyRSvX;SOi7<DYZZ3#RoI1Rupk)B#K7r&7Zx~6
zr|;oTsTDkOOG1mwt(xepg){R$xJ*5Qq&|TE3mUW`^g{?uP~~>T+zub1|1E&{7zf02
zyBnZc$~;YhEl%hsfX+@N;Y6YVlkzEE5uaK1rqNwQq@SaRc@xk*z;-Mk^b5X$Wlf8R
zTauc>kIR<;rF&uM0JSS8PW~02e4nwtYgx_LFs4Yq$uRw`ZTdUxHk8osv5e!H2KQr+
z1JJ``)RYzva$Dg+WIw=O&Y?eI`5=_N<H4Ic69=<0|A}`#WQ;5I=|7t%=oeBb(8G2C
zg8CJDx*=;|;<D4<Q0@rG<&IFbwASyO@&~S8b}-0`;NnkH_bBQfvq7Nq7wEdes%DD*
zP4b!r`VXk)H%6lJak~Fn6xIoKbA!QDnYb81W##~7=ComiFc&C`Z774<OaQ}7G-z3o
z$IVe$#*DI}Q67_?jr1J50Qg*>XSGD55k*!_fjkt*2XCE6g*CXUBdMvGm-9Ls+scac
z0#oo56fCq0Am~HEh($F8i%`&y!_s(Mo}ZR0=Bxl8HdTgUOHA=DIGc<t!n(pP@F)?b
zT~RgMZhDQImE!6gz%GQ9VViEyreK8m&TLiEox1Z*J+PA(mkZyj76O`;Lo<Q(#7TPD
zNKotz-92FrC9Dq^$W6acb!*SF3OF$AREvh^g;jzP^SrRW{90jEpyXIcSiejOuFxM9
zPCHIvfURH-7R12@!eDt5qv23$D4m_oy`F(n<phIv873NJ#y1!zI@3lG!p;I8!dy@>
zh0jLeAs}3szG74I>>SP;it2DhWnzd+XT!`U)!3xQ21AqK&?HAmUD{@=T5KiZ4E3@m
zr<+jDV|)a=3M15+>h-AJV53025l0Ath>pVeW9RbAjhzQI=g=C$MnKM9^TS7ugcGv;
z{li9Luv3w9K0qDAEdD6`dlCFi_tFC_pLL@L*${e!{=-BzkV(wXMuYR>#-!ScO8iDM
zcJ}b-V=QOVCNMk}3}>-%Am)NyLf8dhB6V%CCTNXYm5s;8_6^M@pd+}U*@bALlCX*P
zFp~h61D^+Qm%}mSTV*olI0f9~!xw_wu4Bo(-Plyi3A+fBgqy>xV;P)HGozfI;iuX5
zGb6*##oP}j!(@B^wxGHGgteaFNypC?7P3qsLqT9)!rJg(jF-*C=<M&)6J7>vmSvhQ
z0h3`cDYDr>6kGADm#|AR3`fxL4p3}Q8*YH^DtFAHKs8rC1^{uc97&ol3^oS=xafpU
Ykv2%1r7hB7>8Ny2+D|7-TZx1G2e4n0I{*Lx

delta 2560
zcmZuyX>=1+6z-d3lBP@2O425@6a!S20)rqfK+D``K|urr1Z2}G9XR2Hq$inj;IPC6
zMNknL#a$Lf+)xxzQBmAcMBGII7eoaY6mbJoym#hJ(jMuLHhK5E-*Vs5MT3{tZ<r^u
z-W%u3#{+d<*##NaMuy9oOH#+VU_N7T1@p+BSz5eVXDxo<O6HZMf!J^r)}<*77Mjtr
zP~WRrv8*l;K)8lL-4L{h`Q?ISlb+IyWGd}()zo_7T7<%47LcOm&a%qjsOGrtf+a%v
zI?0{qYH#i+s|qkTT+d|L4L7h78J3#c%6bNFB++i@ZW*oJWUA$z%IjmZVvV{7mQzi^
znn|^rvDQ6v3$0b#wqOOC@mXdPjl#>Vt!&@s*uMQFw(lV53Z%dD|1@_|ZK0F?Zsw=-
zg;SHknN3<MmQE(@<o8hWmF9`^YTqi6ceU9gTwS$>(H7jBCB|WSBplU!)UeiU3Rn8?
z7Y*xZKq0eNBuE2#00-oS2PyDF=9X~h(8CzmRac8PAECwdlAP!2fas9vkN5+R(m3j{
z_!t#8m^G1T;Bi``h9_ukqd76svE)f&iPGXGT71e}8mSIGO~3)T_6)6UCgv)Oc~7KZ
z__Ne806XXhp2H;mbaTU?*-a@uosQuED9-aVrUf>}`3+l~p}&9>ZWvzA;6*dhHr!z=
zp_>E_UUFbB6Kwp5Q4C%oSoBqb&2V6^Ik4Bs5TV{66x(KQZCl=XC9G8!s4LWkuvlH9
zE>qV)N?iwY)m`ddbsr3c(cpvW@aFQ0u<tD~@9k!^BJ6z|Hz*%=m}*5R^A0lmw1%{i
z(xw_1b|-$9jX6y^gLg5voX}?KR^0c<*=9t%Pp0V3e1On=eYT<F0c7wYq6^Z^css^m
zx7G3yE0y76N1A!y6XMuJ>0lQ&OLN&E_*9%P%`j52hGs(-hxs$a!fsY1g~6%R>(gS1
zn1LH$U$Z@edaoI&Y&YX`Oyz+uTABXRG5r<E^<%J)$`sEs_%&(lM-3l&wn@Jcq~A)e
zJeOBdsDfwnJ3O0(aDW;PnyV^<nePSe2f`IA%4oEom@d#iT36sFdW8--I1K$Wy71zt
z5oitJ7ot0i`b9$$M$W>oqU8ut7buD-qKn@w-rtco1AjOuB>oeL-LV92Ab$CaSdSvB
ze{ejhwctG_I*t=>k)mYF$o#j({0}+)*MT9|2_*JRBO0RSc}UF}QkP8T$z)vD5?R+=
zvfH?e*!_yq0>IqdP5fL&e(rIANa#iW{05uKQphI-pBbnMWeNnYP!JA_8Tj<Z?Gf`L
zi?Emo{SFWb14J0NkrrVI5th<4AeGYQ<ouo@y4r|oWXtF_h~ya;4^euJ+88gxljGCl
z`b<4x*hiF?)1dd03gcmtiJ(mBkVM+h5>xe@Qd^-^K}rGI&m029Dp5@4?I=l=gG9zm
zdsO$u1eWnr(LhmS_6i6OQM_ZkgWU$(nTK~oBi0?`oy6<GtC2{W$M|U{W#~){U0N`7
zwHY#2Fvh!4vKmZQJT@6?%%$osy!N0}g^J=-F;P!zZxl+@%Rw>5Pe&i}EF`fe)|+_y
zAa9%8!<u71gJrD$-n=i-mnuqY5Q>~>iJV0uXA6<OC~^*p6zbWh+LG!=QvE4Hy=G`R
zkpZHwRzz^B$X>@XbYKS(z3RY_9w<X2ve?tX6)xUGelC_={c0Jn$2kYAmr9Gr(i%Nj
z^xW`4G}sB)$Oj`->Tgl-^XT(@{0zHcKlkwn9OQlAFcco;jMwn~yp*4Bc8yj}8e-c}
zH=@0v7(Sn0fURyk5{wT+$?UtvFGL|an0z=bJ5M+tLHhWF^N}Rkh4G6V>!Zxo(O_mY
zjcE*y$v;v{;k%F5&3Y60#kMjZOLM}9BU?r%<E(8M-%9@yM}I;q{fR=Ka`Q>f>6}bv
tx-&k7JoLHL_CScssL+*hjsDWG_!xD)x=G!v9#M~}htvZwUfseZ_8(UwCDH%@

diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.g b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.g
index c45aafa8..029ec979 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.g
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.g
@@ -922,21 +922,49 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
 	(
 		(
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -1215,6 +1243,111 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.tokens b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.tokens
index c923c08c..c1135db7 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguage.tokens
@@ -1,60 +1,64 @@
 '!'=18
-'!='=44
-'%'=51
+'!='=48
+'%'=55
 '('=20
 ')'=21
-'*'=49
-'+'=47
+'*'=53
+'+'=51
 ','=22
-'-'=48
-'.'=40
-'/'=50
-':'=26
-':='=27
-';'=28
-'<'=45
-'<='=46
-'='=43
-'>'=42
-'>='=41
+'-'=52
+'.'=44
+'/'=54
+':'=30
+':='=31
+';'=32
+'<'=49
+'<='=50
+'='=47
+'>'=46
+'>='=45
 'AND'=17
-'E'=54
-'G'=57
-'M'=58
+'E'=58
+'G'=61
+'M'=62
 'OR'=15
-'P'=55
-'T'=56
+'P'=59
+'T'=60
 'XOR'=16
-'Y'=52
-'Z'=53
-'\u00B5'=65
+'Y'=56
+'Z'=57
+'\u00B5'=69
 '^'=19
-'a'=69
-'array'=39
-'boolean'=36
-'c'=63
-'d'=62
-'da'=61
-'data'=38
-'expression'=33
-'f'=68
-'false'=25
-'float'=35
-'h'=60
-'instance'=30
-'int'=34
-'k'=59
-'literal'=29
-'m'=64
-'n'=66
-'p'=67
-'string'=32
-'true'=24
-'value'=23
-'void'=37
-'y'=71
-'z'=70
-'|'=31
+'a'=73
+'abstract'=25
+'array'=43
+'boolean'=40
+'c'=67
+'d'=66
+'da'=65
+'data'=42
+'expression'=37
+'extends'=27
+'f'=72
+'false'=24
+'float'=39
+'h'=64
+'instance'=34
+'int'=38
+'k'=63
+'literal'=33
+'m'=68
+'n'=70
+'p'=71
+'string'=36
+'true'=23
+'type'=26
+'void'=41
+'y'=75
+'z'=74
+'{'=28
+'|'=35
+'}'=29
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
 RULE_DOUBLE=4
@@ -123,3 +127,7 @@ T__68=68
 T__69=69
 T__70=70
 T__71=71
+T__72=72
+T__73=73
+T__74=74
+T__75=75
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageLexer.java b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageLexer.java
index 673ba82a..bf7bd9d6 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageLexer.java
@@ -54,6 +54,7 @@ public class InternalBaseLanguageLexer extends Lexer {
     public static final int T__65=65;
     public static final int T__70=70;
     public static final int T__71=71;
+    public static final int T__72=72;
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=12;
     public static final int T__37=37;
@@ -64,9 +65,12 @@ public class InternalBaseLanguageLexer extends Lexer {
     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__73=73;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__74=74;
     public static final int T__31=31;
+    public static final int T__75=75;
     public static final int T__32=32;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
@@ -263,10 +267,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:19:7: ( 'value' )
-            // InternalBaseLanguage.g:19:9: 'value'
+            // InternalBaseLanguage.g:19:7: ( 'true' )
+            // InternalBaseLanguage.g:19:9: 'true'
             {
-            match("value"); 
+            match("true"); 
 
 
             }
@@ -284,10 +288,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:20:7: ( 'true' )
-            // InternalBaseLanguage.g:20:9: 'true'
+            // InternalBaseLanguage.g:20:7: ( 'false' )
+            // InternalBaseLanguage.g:20:9: 'false'
             {
-            match("true"); 
+            match("false"); 
 
 
             }
@@ -305,10 +309,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:21:7: ( 'false' )
-            // InternalBaseLanguage.g:21:9: 'false'
+            // InternalBaseLanguage.g:21:7: ( 'abstract' )
+            // InternalBaseLanguage.g:21:9: 'abstract'
             {
-            match("false"); 
+            match("abstract"); 
 
 
             }
@@ -326,10 +330,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:22:7: ( ':' )
-            // InternalBaseLanguage.g:22:9: ':'
+            // InternalBaseLanguage.g:22:7: ( 'type' )
+            // InternalBaseLanguage.g:22:9: 'type'
             {
-            match(':'); 
+            match("type"); 
+
 
             }
 
@@ -346,10 +351,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:23:7: ( ':=' )
-            // InternalBaseLanguage.g:23:9: ':='
+            // InternalBaseLanguage.g:23:7: ( 'extends' )
+            // InternalBaseLanguage.g:23:9: 'extends'
             {
-            match(":="); 
+            match("extends"); 
 
 
             }
@@ -367,10 +372,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:24:7: ( ';' )
-            // InternalBaseLanguage.g:24:9: ';'
+            // InternalBaseLanguage.g:24:7: ( '{' )
+            // InternalBaseLanguage.g:24:9: '{'
             {
-            match(';'); 
+            match('{'); 
 
             }
 
@@ -387,11 +392,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:25:7: ( 'literal' )
-            // InternalBaseLanguage.g:25:9: 'literal'
+            // InternalBaseLanguage.g:25:7: ( '}' )
+            // InternalBaseLanguage.g:25:9: '}'
             {
-            match("literal"); 
-
+            match('}'); 
 
             }
 
@@ -408,11 +412,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:26:7: ( 'instance' )
-            // InternalBaseLanguage.g:26:9: 'instance'
+            // InternalBaseLanguage.g:26:7: ( ':' )
+            // InternalBaseLanguage.g:26:9: ':'
             {
-            match("instance"); 
-
+            match(':'); 
 
             }
 
@@ -429,10 +432,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:27:7: ( '|' )
-            // InternalBaseLanguage.g:27:9: '|'
+            // InternalBaseLanguage.g:27:7: ( ':=' )
+            // InternalBaseLanguage.g:27:9: ':='
             {
-            match('|'); 
+            match(":="); 
+
 
             }
 
@@ -449,11 +453,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:28:7: ( 'string' )
-            // InternalBaseLanguage.g:28:9: 'string'
+            // InternalBaseLanguage.g:28:7: ( ';' )
+            // InternalBaseLanguage.g:28:9: ';'
             {
-            match("string"); 
-
+            match(';'); 
 
             }
 
@@ -470,10 +473,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:29:7: ( 'expression' )
-            // InternalBaseLanguage.g:29:9: 'expression'
+            // InternalBaseLanguage.g:29:7: ( 'literal' )
+            // InternalBaseLanguage.g:29:9: 'literal'
             {
-            match("expression"); 
+            match("literal"); 
 
 
             }
@@ -491,10 +494,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:30:7: ( 'int' )
-            // InternalBaseLanguage.g:30:9: 'int'
+            // InternalBaseLanguage.g:30:7: ( 'instance' )
+            // InternalBaseLanguage.g:30:9: 'instance'
             {
-            match("int"); 
+            match("instance"); 
 
 
             }
@@ -512,11 +515,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:31:7: ( 'float' )
-            // InternalBaseLanguage.g:31:9: 'float'
+            // InternalBaseLanguage.g:31:7: ( '|' )
+            // InternalBaseLanguage.g:31:9: '|'
             {
-            match("float"); 
-
+            match('|'); 
 
             }
 
@@ -533,10 +535,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:32:7: ( 'boolean' )
-            // InternalBaseLanguage.g:32:9: 'boolean'
+            // InternalBaseLanguage.g:32:7: ( 'string' )
+            // InternalBaseLanguage.g:32:9: 'string'
             {
-            match("boolean"); 
+            match("string"); 
 
 
             }
@@ -554,10 +556,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:33:7: ( 'void' )
-            // InternalBaseLanguage.g:33:9: 'void'
+            // InternalBaseLanguage.g:33:7: ( 'expression' )
+            // InternalBaseLanguage.g:33:9: 'expression'
             {
-            match("void"); 
+            match("expression"); 
 
 
             }
@@ -575,10 +577,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:34:7: ( 'data' )
-            // InternalBaseLanguage.g:34:9: 'data'
+            // InternalBaseLanguage.g:34:7: ( 'int' )
+            // InternalBaseLanguage.g:34:9: 'int'
             {
-            match("data"); 
+            match("int"); 
 
 
             }
@@ -596,10 +598,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:35:7: ( 'array' )
-            // InternalBaseLanguage.g:35:9: 'array'
+            // InternalBaseLanguage.g:35:7: ( 'float' )
+            // InternalBaseLanguage.g:35:9: 'float'
             {
-            match("array"); 
+            match("float"); 
 
 
             }
@@ -617,10 +619,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:36:7: ( '.' )
-            // InternalBaseLanguage.g:36:9: '.'
+            // InternalBaseLanguage.g:36:7: ( 'boolean' )
+            // InternalBaseLanguage.g:36:9: 'boolean'
             {
-            match('.'); 
+            match("boolean"); 
+
 
             }
 
@@ -637,10 +640,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:37:7: ( '>=' )
-            // InternalBaseLanguage.g:37:9: '>='
+            // InternalBaseLanguage.g:37:7: ( 'void' )
+            // InternalBaseLanguage.g:37:9: 'void'
             {
-            match(">="); 
+            match("void"); 
 
 
             }
@@ -658,10 +661,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:38:7: ( '>' )
-            // InternalBaseLanguage.g:38:9: '>'
+            // InternalBaseLanguage.g:38:7: ( 'data' )
+            // InternalBaseLanguage.g:38:9: 'data'
             {
-            match('>'); 
+            match("data"); 
+
 
             }
 
@@ -678,10 +682,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:39:7: ( '=' )
-            // InternalBaseLanguage.g:39:9: '='
+            // InternalBaseLanguage.g:39:7: ( 'array' )
+            // InternalBaseLanguage.g:39:9: 'array'
             {
-            match('='); 
+            match("array"); 
+
 
             }
 
@@ -698,11 +703,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:40:7: ( '!=' )
-            // InternalBaseLanguage.g:40:9: '!='
+            // InternalBaseLanguage.g:40:7: ( '.' )
+            // InternalBaseLanguage.g:40:9: '.'
             {
-            match("!="); 
-
+            match('.'); 
 
             }
 
@@ -719,10 +723,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:41:7: ( '<' )
-            // InternalBaseLanguage.g:41:9: '<'
+            // InternalBaseLanguage.g:41:7: ( '>=' )
+            // InternalBaseLanguage.g:41:9: '>='
             {
-            match('<'); 
+            match(">="); 
+
 
             }
 
@@ -739,11 +744,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:42:7: ( '<=' )
-            // InternalBaseLanguage.g:42:9: '<='
+            // InternalBaseLanguage.g:42:7: ( '>' )
+            // InternalBaseLanguage.g:42:9: '>'
             {
-            match("<="); 
-
+            match('>'); 
 
             }
 
@@ -760,10 +764,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:43:7: ( '+' )
-            // InternalBaseLanguage.g:43:9: '+'
+            // InternalBaseLanguage.g:43:7: ( '=' )
+            // InternalBaseLanguage.g:43:9: '='
             {
-            match('+'); 
+            match('='); 
 
             }
 
@@ -780,10 +784,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:44:7: ( '-' )
-            // InternalBaseLanguage.g:44:9: '-'
+            // InternalBaseLanguage.g:44:7: ( '!=' )
+            // InternalBaseLanguage.g:44:9: '!='
             {
-            match('-'); 
+            match("!="); 
+
 
             }
 
@@ -800,10 +805,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:45:7: ( '*' )
-            // InternalBaseLanguage.g:45:9: '*'
+            // InternalBaseLanguage.g:45:7: ( '<' )
+            // InternalBaseLanguage.g:45:9: '<'
             {
-            match('*'); 
+            match('<'); 
 
             }
 
@@ -820,10 +825,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:46:7: ( '/' )
-            // InternalBaseLanguage.g:46:9: '/'
+            // InternalBaseLanguage.g:46:7: ( '<=' )
+            // InternalBaseLanguage.g:46:9: '<='
             {
-            match('/'); 
+            match("<="); 
+
 
             }
 
@@ -840,10 +846,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:47:7: ( '%' )
-            // InternalBaseLanguage.g:47:9: '%'
+            // InternalBaseLanguage.g:47:7: ( '+' )
+            // InternalBaseLanguage.g:47:9: '+'
             {
-            match('%'); 
+            match('+'); 
 
             }
 
@@ -860,10 +866,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:48:7: ( 'Y' )
-            // InternalBaseLanguage.g:48:9: 'Y'
+            // InternalBaseLanguage.g:48:7: ( '-' )
+            // InternalBaseLanguage.g:48:9: '-'
             {
-            match('Y'); 
+            match('-'); 
 
             }
 
@@ -880,10 +886,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:49:7: ( 'Z' )
-            // InternalBaseLanguage.g:49:9: 'Z'
+            // InternalBaseLanguage.g:49:7: ( '*' )
+            // InternalBaseLanguage.g:49:9: '*'
             {
-            match('Z'); 
+            match('*'); 
 
             }
 
@@ -900,10 +906,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:50:7: ( 'E' )
-            // InternalBaseLanguage.g:50:9: 'E'
+            // InternalBaseLanguage.g:50:7: ( '/' )
+            // InternalBaseLanguage.g:50:9: '/'
             {
-            match('E'); 
+            match('/'); 
 
             }
 
@@ -920,10 +926,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:51:7: ( 'P' )
-            // InternalBaseLanguage.g:51:9: 'P'
+            // InternalBaseLanguage.g:51:7: ( '%' )
+            // InternalBaseLanguage.g:51:9: '%'
             {
-            match('P'); 
+            match('%'); 
 
             }
 
@@ -940,10 +946,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:52:7: ( 'T' )
-            // InternalBaseLanguage.g:52:9: 'T'
+            // InternalBaseLanguage.g:52:7: ( 'Y' )
+            // InternalBaseLanguage.g:52:9: 'Y'
             {
-            match('T'); 
+            match('Y'); 
 
             }
 
@@ -960,10 +966,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:53:7: ( 'G' )
-            // InternalBaseLanguage.g:53:9: 'G'
+            // InternalBaseLanguage.g:53:7: ( 'Z' )
+            // InternalBaseLanguage.g:53:9: 'Z'
             {
-            match('G'); 
+            match('Z'); 
 
             }
 
@@ -980,10 +986,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:54:7: ( 'M' )
-            // InternalBaseLanguage.g:54:9: 'M'
+            // InternalBaseLanguage.g:54:7: ( 'E' )
+            // InternalBaseLanguage.g:54:9: 'E'
             {
-            match('M'); 
+            match('E'); 
 
             }
 
@@ -1000,10 +1006,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:55:7: ( 'k' )
-            // InternalBaseLanguage.g:55:9: 'k'
+            // InternalBaseLanguage.g:55:7: ( 'P' )
+            // InternalBaseLanguage.g:55:9: 'P'
             {
-            match('k'); 
+            match('P'); 
 
             }
 
@@ -1020,10 +1026,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:56:7: ( 'h' )
-            // InternalBaseLanguage.g:56:9: 'h'
+            // InternalBaseLanguage.g:56:7: ( 'T' )
+            // InternalBaseLanguage.g:56:9: 'T'
             {
-            match('h'); 
+            match('T'); 
 
             }
 
@@ -1040,11 +1046,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:57:7: ( 'da' )
-            // InternalBaseLanguage.g:57:9: 'da'
+            // InternalBaseLanguage.g:57:7: ( 'G' )
+            // InternalBaseLanguage.g:57:9: 'G'
             {
-            match("da"); 
-
+            match('G'); 
 
             }
 
@@ -1061,10 +1066,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:58:7: ( 'd' )
-            // InternalBaseLanguage.g:58:9: 'd'
+            // InternalBaseLanguage.g:58:7: ( 'M' )
+            // InternalBaseLanguage.g:58:9: 'M'
             {
-            match('d'); 
+            match('M'); 
 
             }
 
@@ -1081,10 +1086,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:59:7: ( 'c' )
-            // InternalBaseLanguage.g:59:9: 'c'
+            // InternalBaseLanguage.g:59:7: ( 'k' )
+            // InternalBaseLanguage.g:59:9: 'k'
             {
-            match('c'); 
+            match('k'); 
 
             }
 
@@ -1101,10 +1106,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:60:7: ( 'm' )
-            // InternalBaseLanguage.g:60:9: 'm'
+            // InternalBaseLanguage.g:60:7: ( 'h' )
+            // InternalBaseLanguage.g:60:9: 'h'
             {
-            match('m'); 
+            match('h'); 
 
             }
 
@@ -1121,10 +1126,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:61:7: ( '\\u00B5' )
-            // InternalBaseLanguage.g:61:9: '\\u00B5'
+            // InternalBaseLanguage.g:61:7: ( 'da' )
+            // InternalBaseLanguage.g:61:9: 'da'
             {
-            match('\u00B5'); 
+            match("da"); 
+
 
             }
 
@@ -1141,10 +1147,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:62:7: ( 'n' )
-            // InternalBaseLanguage.g:62:9: 'n'
+            // InternalBaseLanguage.g:62:7: ( 'd' )
+            // InternalBaseLanguage.g:62:9: 'd'
             {
-            match('n'); 
+            match('d'); 
 
             }
 
@@ -1161,10 +1167,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:63:7: ( 'p' )
-            // InternalBaseLanguage.g:63:9: 'p'
+            // InternalBaseLanguage.g:63:7: ( 'c' )
+            // InternalBaseLanguage.g:63:9: 'c'
             {
-            match('p'); 
+            match('c'); 
 
             }
 
@@ -1181,10 +1187,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:64:7: ( 'f' )
-            // InternalBaseLanguage.g:64:9: 'f'
+            // InternalBaseLanguage.g:64:7: ( 'm' )
+            // InternalBaseLanguage.g:64:9: 'm'
             {
-            match('f'); 
+            match('m'); 
 
             }
 
@@ -1201,10 +1207,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:65:7: ( 'a' )
-            // InternalBaseLanguage.g:65:9: 'a'
+            // InternalBaseLanguage.g:65:7: ( '\\u00B5' )
+            // InternalBaseLanguage.g:65:9: '\\u00B5'
             {
-            match('a'); 
+            match('\u00B5'); 
 
             }
 
@@ -1221,10 +1227,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:66:7: ( 'z' )
-            // InternalBaseLanguage.g:66:9: 'z'
+            // InternalBaseLanguage.g:66:7: ( 'n' )
+            // InternalBaseLanguage.g:66:9: 'n'
             {
-            match('z'); 
+            match('n'); 
 
             }
 
@@ -1241,10 +1247,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:67:7: ( 'y' )
-            // InternalBaseLanguage.g:67:9: 'y'
+            // InternalBaseLanguage.g:67:7: ( 'p' )
+            // InternalBaseLanguage.g:67:9: 'p'
             {
-            match('y'); 
+            match('p'); 
 
             }
 
@@ -1256,11 +1262,91 @@ public class InternalBaseLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__71"
 
+    // $ANTLR start "T__72"
+    public final void mT__72() throws RecognitionException {
+        try {
+            int _type = T__72;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:68:7: ( 'f' )
+            // InternalBaseLanguage.g:68:9: 'f'
+            {
+            match('f'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__72"
+
+    // $ANTLR start "T__73"
+    public final void mT__73() throws RecognitionException {
+        try {
+            int _type = T__73;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:69:7: ( 'a' )
+            // InternalBaseLanguage.g:69:9: 'a'
+            {
+            match('a'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__73"
+
+    // $ANTLR start "T__74"
+    public final void mT__74() throws RecognitionException {
+        try {
+            int _type = T__74;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:70:7: ( 'z' )
+            // InternalBaseLanguage.g:70:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__74"
+
+    // $ANTLR start "T__75"
+    public final void mT__75() throws RecognitionException {
+        try {
+            int _type = T__75;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalBaseLanguage.g:71:7: ( 'y' )
+            // InternalBaseLanguage.g:71:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:2228:21: ( '0' .. '9' )
-            // InternalBaseLanguage.g:2228:23: '0' .. '9'
+            // InternalBaseLanguage.g:2361:21: ( '0' .. '9' )
+            // InternalBaseLanguage.g:2361:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1275,11 +1361,11 @@ public class InternalBaseLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalBaseLanguage.g:2230:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalBaseLanguage.g:2230:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:2363:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalBaseLanguage.g:2363:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalBaseLanguage.g:2230:30: ( '+' | '-' )?
+            // InternalBaseLanguage.g:2363:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1305,7 +1391,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
             }
 
-            // InternalBaseLanguage.g:2230:41: ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:2363:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1319,7 +1405,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2230:41: RULE_DIGIT
+            	    // InternalBaseLanguage.g:2363:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1349,10 +1435,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2232:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalBaseLanguage.g:2232:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:2365:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalBaseLanguage.g:2365:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalBaseLanguage.g:2232:12: ( '-' )?
+            // InternalBaseLanguage.g:2365:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1361,7 +1447,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalBaseLanguage.g:2232:12: '-'
+                    // InternalBaseLanguage.g:2365:12: '-'
                     {
                     match('-'); 
 
@@ -1370,7 +1456,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
             }
 
-            // InternalBaseLanguage.g:2232:17: ( RULE_DIGIT )+
+            // InternalBaseLanguage.g:2365:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1384,7 +1470,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2232:17: RULE_DIGIT
+            	    // InternalBaseLanguage.g:2365:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1416,15 +1502,15 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2234:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalBaseLanguage.g:2234:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalBaseLanguage.g:2367:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalBaseLanguage.g:2367:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalBaseLanguage.g:2234:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalBaseLanguage.g:2367:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalBaseLanguage.g:2234:16: RULE_INT RULE_EXPONENT
+                    // InternalBaseLanguage.g:2367:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1432,11 +1518,11 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:2234:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalBaseLanguage.g:2367:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalBaseLanguage.g:2234:52: ( RULE_DIGIT )*
+                    // InternalBaseLanguage.g:2367:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1449,7 +1535,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalBaseLanguage.g:2234:52: RULE_DIGIT
+                    	    // InternalBaseLanguage.g:2367:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1461,7 +1547,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalBaseLanguage.g:2234:64: ( RULE_EXPONENT )?
+                    // InternalBaseLanguage.g:2367:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1470,7 +1556,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalBaseLanguage.g:2234:64: RULE_EXPONENT
+                            // InternalBaseLanguage.g:2367:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1501,11 +1587,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2236:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalBaseLanguage.g:2236:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalBaseLanguage.g:2369:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalBaseLanguage.g:2369:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalBaseLanguage.g:2236:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalBaseLanguage.g:2369:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1521,7 +1607,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2236:20: '\\\\' .
+            	    // InternalBaseLanguage.g:2369:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1529,7 +1615,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalBaseLanguage.g:2236:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalBaseLanguage.g:2369:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1566,11 +1652,11 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2238:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalBaseLanguage.g:2238:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalBaseLanguage.g:2371:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalBaseLanguage.g:2371:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalBaseLanguage.g:2238:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalBaseLanguage.g:2371:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1586,7 +1672,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2238:24: '\\\\' .
+            	    // InternalBaseLanguage.g:2371:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1594,7 +1680,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalBaseLanguage.g:2238:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalBaseLanguage.g:2371:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1631,10 +1717,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2240:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalBaseLanguage.g:2240:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalBaseLanguage.g:2373:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalBaseLanguage.g:2373:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalBaseLanguage.g:2240:11: ( '^' )?
+            // InternalBaseLanguage.g:2373:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1643,7 +1729,7 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalBaseLanguage.g:2240:11: '^'
+                    // InternalBaseLanguage.g:2373:11: '^'
                     {
                     match('^'); 
 
@@ -1661,7 +1747,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalBaseLanguage.g:2240:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalBaseLanguage.g:2373:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1710,12 +1796,12 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2242:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalBaseLanguage.g:2242:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalBaseLanguage.g:2375:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalBaseLanguage.g:2375:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalBaseLanguage.g:2242:24: ( options {greedy=false; } : . )*
+            // InternalBaseLanguage.g:2375:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1740,7 +1826,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2242:52: .
+            	    // InternalBaseLanguage.g:2375:52: .
             	    {
             	    matchAny(); 
 
@@ -1770,12 +1856,12 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2244:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalBaseLanguage.g:2244:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalBaseLanguage.g:2377:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalBaseLanguage.g:2377:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalBaseLanguage.g:2244:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalBaseLanguage.g:2377:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1788,7 +1874,7 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalBaseLanguage.g:2244:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalBaseLanguage.g:2377: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();
@@ -1808,7 +1894,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalBaseLanguage.g:2244:40: ( ( '\\r' )? '\\n' )?
+            // InternalBaseLanguage.g:2377:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1817,9 +1903,9 @@ public class InternalBaseLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalBaseLanguage.g:2244:41: ( '\\r' )? '\\n'
+                    // InternalBaseLanguage.g:2377:41: ( '\\r' )? '\\n'
                     {
-                    // InternalBaseLanguage.g:2244:41: ( '\\r' )?
+                    // InternalBaseLanguage.g:2377:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -1828,7 +1914,7 @@ public class InternalBaseLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalBaseLanguage.g:2244:41: '\\r'
+                            // InternalBaseLanguage.g:2377:41: '\\r'
                             {
                             match('\r'); 
 
@@ -1860,10 +1946,10 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2246:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalBaseLanguage.g:2246:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalBaseLanguage.g:2379:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalBaseLanguage.g:2379:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalBaseLanguage.g:2246:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalBaseLanguage.g:2379:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -1917,8 +2003,8 @@ public class InternalBaseLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalBaseLanguage.g:2248:16: ( . )
-            // InternalBaseLanguage.g:2248:18: .
+            // InternalBaseLanguage.g:2381:16: ( . )
+            // InternalBaseLanguage.g:2381:18: .
             {
             matchAny(); 
 
@@ -1933,8 +2019,8 @@ public class InternalBaseLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalBaseLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=66;
+        // InternalBaseLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=70;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2337,63 +2423,91 @@ public class InternalBaseLanguageLexer extends Lexer {
                 }
                 break;
             case 58 :
-                // InternalBaseLanguage.g:1:352: RULE_INT
+                // InternalBaseLanguage.g:1:352: T__72
                 {
-                mRULE_INT(); 
+                mT__72(); 
 
                 }
                 break;
             case 59 :
-                // InternalBaseLanguage.g:1:361: RULE_DOUBLE
+                // InternalBaseLanguage.g:1:358: T__73
                 {
-                mRULE_DOUBLE(); 
+                mT__73(); 
 
                 }
                 break;
             case 60 :
-                // InternalBaseLanguage.g:1:373: RULE_STRING
+                // InternalBaseLanguage.g:1:364: T__74
                 {
-                mRULE_STRING(); 
+                mT__74(); 
 
                 }
                 break;
             case 61 :
-                // InternalBaseLanguage.g:1:385: RULE_QUOTED_ID
+                // InternalBaseLanguage.g:1:370: T__75
                 {
-                mRULE_QUOTED_ID(); 
+                mT__75(); 
 
                 }
                 break;
             case 62 :
-                // InternalBaseLanguage.g:1:400: RULE_ID
+                // InternalBaseLanguage.g:1:376: RULE_INT
                 {
-                mRULE_ID(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 63 :
-                // InternalBaseLanguage.g:1:408: RULE_ML_COMMENT
+                // InternalBaseLanguage.g:1:385: RULE_DOUBLE
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 64 :
-                // InternalBaseLanguage.g:1:424: RULE_SL_COMMENT
+                // InternalBaseLanguage.g:1:397: RULE_STRING
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 65 :
-                // InternalBaseLanguage.g:1:440: RULE_WS
+                // InternalBaseLanguage.g:1:409: RULE_QUOTED_ID
                 {
-                mRULE_WS(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 66 :
-                // InternalBaseLanguage.g:1:448: RULE_ANY_OTHER
+                // InternalBaseLanguage.g:1:424: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 67 :
+                // InternalBaseLanguage.g:1:432: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 68 :
+                // InternalBaseLanguage.g:1:448: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 69 :
+                // InternalBaseLanguage.g:1:464: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 70 :
+                // InternalBaseLanguage.g:1:472: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2457,104 +2571,108 @@ public class InternalBaseLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "2234:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "2367:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\3\66\1\72\1\73\3\uffff\2\66\1\104\1\106\1\uffff\2\66\1\uffff\3\66\1\117\1\121\1\uffff\1\124\1\uffff\1\127\1\uffff\1\132\1\uffff\1\136\1\uffff\1\140\1\141\1\142\1\143\1\144\1\145\1\146\1\147\1\150\1\151\1\152\1\uffff\1\154\1\155\1\156\1\157\1\160\2\64\3\uffff\1\165\1\uffff\2\66\6\uffff\5\66\4\uffff\2\66\1\uffff\3\66\1\u0084\1\uffff\1\66\10\uffff\1\160\34\uffff\1\u0086\1\u0087\7\66\1\u008f\4\66\1\uffff\1\66\2\uffff\1\66\1\u0096\1\u0097\4\66\1\uffff\3\66\1\u009f\1\66\1\u00a1\2\uffff\1\u00a2\1\u00a3\5\66\1\uffff\1\u00a9\3\uffff\2\66\1\u00ac\2\66\1\uffff\1\u00af\1\66\1\uffff\1\66\1\u00b2\1\uffff\1\u00b3\1\66\2\uffff\1\66\1\u00b6\1\uffff";
+        "\1\uffff\3\70\1\74\1\75\3\uffff\1\70\1\105\1\110\1\70\2\uffff\1\115\1\uffff\2\70\1\uffff\3\70\1\126\1\uffff\1\131\1\uffff\1\134\1\uffff\1\137\1\uffff\1\143\1\uffff\1\145\1\146\1\147\1\150\1\151\1\152\1\153\1\154\1\155\1\156\1\157\1\uffff\1\161\1\162\1\163\1\164\1\165\2\66\3\uffff\1\172\1\uffff\2\70\6\uffff\4\70\1\uffff\2\70\1\uffff\1\70\5\uffff\2\70\1\uffff\3\70\1\u008c\10\uffff\1\165\34\uffff\1\u008d\1\u008e\12\70\1\u0099\4\70\3\uffff\1\u009e\1\u009f\10\70\1\uffff\2\70\1\u00aa\1\u00ab\2\uffff\1\u00ac\1\u00ad\1\70\1\u00af\6\70\4\uffff\1\70\1\uffff\4\70\1\u00bb\2\70\1\u00be\1\70\1\u00c0\1\70\1\uffff\1\u00c2\1\u00c3\1\uffff\1\70\1\uffff\1\u00c5\2\uffff\1\70\1\uffff\1\u00c7\1\uffff";
     static final String DFA17_eofS =
-        "\u00b7\uffff";
+        "\u00c8\uffff";
     static final String DFA17_minS =
-        "\1\0\1\122\1\117\1\116\1\75\1\101\3\uffff\1\141\1\162\1\60\1\75\1\uffff\1\151\1\156\1\uffff\1\164\1\170\1\157\2\60\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\3\uffff\1\60\1\uffff\1\122\1\104\6\uffff\1\154\1\151\1\165\1\154\1\157\4\uffff\1\164\1\163\1\uffff\1\162\1\160\1\157\1\60\1\uffff\1\162\10\uffff\1\56\34\uffff\2\60\1\165\1\144\1\145\1\163\1\141\1\145\1\164\1\60\1\151\1\162\1\154\1\141\1\uffff\1\141\2\uffff\1\145\2\60\1\145\1\164\1\162\1\141\1\uffff\1\156\2\145\1\60\1\171\1\60\2\uffff\2\60\1\141\1\156\1\147\1\163\1\141\1\uffff\1\60\3\uffff\1\154\1\143\1\60\1\163\1\156\1\uffff\1\60\1\145\1\uffff\1\151\1\60\1\uffff\1\60\1\157\2\uffff\1\156\1\60\1\uffff";
+        "\1\0\1\122\1\117\1\116\1\75\1\101\3\uffff\1\162\2\60\1\170\2\uffff\1\75\1\uffff\1\151\1\156\1\uffff\1\164\2\157\1\60\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\3\uffff\1\60\1\uffff\1\122\1\104\6\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\160\5\uffff\1\164\1\163\1\uffff\1\162\1\157\1\151\1\60\10\uffff\1\56\34\uffff\2\60\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\60\1\151\1\154\1\144\1\141\3\uffff\2\60\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\2\60\2\uffff\2\60\1\141\1\60\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\1\uffff\2\163\1\154\1\143\1\60\1\156\1\164\1\60\1\151\1\60\1\145\1\uffff\2\60\1\uffff\1\157\1\uffff\1\60\2\uffff\1\156\1\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\122\1\117\1\116\1\75\1\172\3\uffff\1\157\1\162\1\172\1\75\1\uffff\1\151\1\156\1\uffff\1\164\1\170\1\157\2\172\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\172\1\uffff\1\122\1\104\6\uffff\1\154\1\151\1\165\1\154\1\157\4\uffff\2\164\1\uffff\1\162\1\160\1\157\1\172\1\uffff\1\162\10\uffff\1\145\34\uffff\2\172\1\165\1\144\1\145\1\163\1\141\1\145\1\164\1\172\1\151\1\162\1\154\1\141\1\uffff\1\141\2\uffff\1\145\2\172\1\145\1\164\1\162\1\141\1\uffff\1\156\2\145\1\172\1\171\1\172\2\uffff\2\172\1\141\1\156\1\147\1\163\1\141\1\uffff\1\172\3\uffff\1\154\1\143\1\172\1\163\1\156\1\uffff\1\172\1\145\1\uffff\1\151\1\172\1\uffff\1\172\1\157\2\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\1\122\1\117\1\116\1\75\1\172\3\uffff\1\171\2\172\1\170\2\uffff\1\75\1\uffff\1\151\1\156\1\uffff\1\164\2\157\1\172\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\172\1\uffff\1\122\1\104\6\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\164\5\uffff\2\164\1\uffff\1\162\1\157\1\151\1\172\10\uffff\1\145\34\uffff\2\172\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\172\1\151\1\154\1\144\1\141\3\uffff\2\172\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\2\172\2\uffff\2\172\1\141\1\172\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\1\uffff\2\163\1\154\1\143\1\172\1\156\1\164\1\172\1\151\1\172\1\145\1\uffff\2\172\1\uffff\1\157\1\uffff\1\172\2\uffff\1\156\1\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\6\uffff\1\6\1\7\1\10\4\uffff\1\16\2\uffff\1\21\5\uffff\1\32\1\uffff\1\35\1\uffff\1\41\1\uffff\1\43\1\uffff\1\45\13\uffff\1\63\7\uffff\1\76\1\101\1\102\1\uffff\1\76\2\uffff\1\36\1\4\1\5\1\6\1\7\1\10\5\uffff\1\66\1\15\1\14\1\16\2\uffff\1\21\4\uffff\1\60\1\uffff\1\67\1\32\1\33\1\34\1\35\1\40\1\37\1\41\1\uffff\1\42\1\43\1\77\1\100\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\61\1\62\1\63\1\64\1\65\1\70\1\71\1\72\1\73\1\74\1\75\1\101\1\1\16\uffff\1\57\1\uffff\1\2\1\3\7\uffff\1\24\6\uffff\1\27\1\12\7\uffff\1\30\1\uffff\1\11\1\13\1\25\5\uffff\1\31\2\uffff\1\22\2\uffff\1\17\2\uffff\1\26\1\20\2\uffff\1\23";
+        "\6\uffff\1\6\1\7\1\10\4\uffff\1\16\1\17\1\uffff\1\22\2\uffff\1\25\4\uffff\1\36\1\uffff\1\41\1\uffff\1\45\1\uffff\1\47\1\uffff\1\51\13\uffff\1\67\7\uffff\1\102\1\105\1\106\1\uffff\1\102\2\uffff\1\42\1\4\1\5\1\6\1\7\1\10\4\uffff\1\72\2\uffff\1\73\1\uffff\1\16\1\17\1\21\1\20\1\22\2\uffff\1\25\4\uffff\1\64\1\36\1\37\1\40\1\41\1\44\1\43\1\45\1\uffff\1\46\1\47\1\103\1\104\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\65\1\66\1\67\1\70\1\71\1\74\1\75\1\76\1\77\1\100\1\101\1\105\1\1\21\uffff\1\63\1\2\1\3\12\uffff\1\30\4\uffff\1\11\1\14\12\uffff\1\33\1\34\1\12\1\31\1\uffff\1\35\13\uffff\1\26\2\uffff\1\15\1\uffff\1\23\1\uffff\1\32\1\13\1\uffff\1\24\1\uffff\1\27";
     static final String DFA17_specialS =
-        "\1\1\57\uffff\1\0\1\2\u0085\uffff}>";
+        "\1\1\61\uffff\1\0\1\2\u0094\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\64\2\63\2\64\1\63\22\64\1\63\1\4\1\60\2\64\1\36\1\64\1\61\1\6\1\7\1\34\1\32\1\10\1\33\1\26\1\35\12\57\1\14\1\15\1\31\1\30\1\27\2\64\1\3\3\62\1\41\1\62\1\44\5\62\1\45\1\62\1\1\1\42\3\62\1\43\3\62\1\2\1\37\1\40\3\64\1\5\1\62\1\64\1\25\1\23\1\50\1\24\1\22\1\13\1\62\1\47\1\17\1\62\1\46\1\16\1\51\1\53\1\62\1\54\2\62\1\21\1\12\1\62\1\11\2\62\1\56\1\55\1\64\1\20\70\64\1\52\uff4a\64",
-            "\1\65",
+            "\11\66\2\65\2\66\1\65\22\66\1\65\1\4\1\62\2\66\1\40\1\66\1\63\1\6\1\7\1\36\1\34\1\10\1\35\1\30\1\37\12\61\1\17\1\20\1\33\1\32\1\31\2\66\1\3\3\64\1\43\1\64\1\46\5\64\1\47\1\64\1\1\1\44\3\64\1\45\3\64\1\2\1\41\1\42\3\66\1\5\1\64\1\66\1\13\1\25\1\52\1\27\1\14\1\12\1\64\1\51\1\22\1\64\1\50\1\21\1\53\1\55\1\64\1\56\2\64\1\24\1\11\1\64\1\26\2\64\1\60\1\57\1\15\1\23\1\16\67\66\1\54\uff4a\66",
             "\1\67",
-            "\1\70",
             "\1\71",
-            "\32\66\4\uffff\1\66\1\uffff\32\66",
-            "",
+            "\1\72",
+            "\1\73",
+            "\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
             "",
-            "\1\77\15\uffff\1\100",
-            "\1\101",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\1\102\12\66\1\103\16\66",
-            "\1\105",
             "",
-            "\1\110",
+            "\1\101\6\uffff\1\102",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\103\12\70\1\104\16\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\70\1\106\17\70\1\107\10\70",
             "\1\111",
             "",
-            "\1\113",
-            "\1\114",
-            "\1\115",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\1\116\31\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\21\66\1\120\10\66",
             "",
-            "\1\123",
-            "",
-            "\1\126",
-            "",
-            "\12\131",
-            "",
-            "\1\134\4\uffff\1\135",
+            "\1\114",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\117",
+            "\1\120",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\161\1\uffff\12\131\53\uffff\1\161",
-            "\0\162",
-            "\0\163",
+            "\1\122",
+            "\1\123",
+            "\1\124",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\125\31\70",
             "",
+            "\1\130",
             "",
+            "\1\133",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\136",
             "",
-            "\1\166",
-            "\1\167",
+            "\1\141\4\uffff\1\142",
             "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\166\1\uffff\12\136\53\uffff\1\166",
+            "\0\167",
+            "\0\170",
             "",
             "",
             "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
-            "\1\170",
-            "\1\171",
-            "\1\172",
             "\1\173",
             "\1\174",
             "",
             "",
             "",
             "",
-            "\1\175",
-            "\1\176\1\177",
             "",
+            "",
+            "\1\175",
+            "\1\176",
+            "\1\177",
             "\1\u0080",
+            "",
             "\1\u0081",
             "\1\u0082",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\23\66\1\u0083\6\66",
+            "",
+            "\1\u0084\3\uffff\1\u0083",
+            "",
+            "",
+            "",
+            "",
             "",
             "\1\u0085",
+            "\1\u0086\1\u0087",
             "",
+            "\1\u0088",
+            "\1\u0089",
+            "\1\u008a",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\23\70\1\u008b\6\70",
             "",
             "",
             "",
@@ -2562,8 +2680,8 @@ public class InternalBaseLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\161\1\uffff\12\131\53\uffff\1\161",
             "",
+            "\1\166\1\uffff\12\136\53\uffff\1\166",
             "",
             "",
             "",
@@ -2591,70 +2709,83 @@ public class InternalBaseLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u0088",
-            "\1\u0089",
-            "\1\u008a",
-            "\1\u008b",
-            "\1\u008c",
-            "\1\u008d",
-            "\1\u008e",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u008f",
             "\1\u0090",
             "\1\u0091",
             "\1\u0092",
             "\1\u0093",
-            "",
             "\1\u0094",
-            "",
-            "",
             "\1\u0095",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u0096",
+            "\1\u0097",
             "\1\u0098",
-            "\1\u0099",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\1\u009a",
             "\1\u009b",
-            "",
             "\1\u009c",
             "\1\u009d",
-            "\1\u009e",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00a0",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
             "",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3",
             "\1\u00a4",
             "\1\u00a5",
             "\1\u00a6",
             "\1\u00a7",
+            "",
             "\1\u00a8",
+            "\1\u00a9",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00ae",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00b0",
+            "\1\u00b1",
+            "\1\u00b2",
+            "\1\u00b3",
+            "\1\u00b4",
+            "\1\u00b5",
             "",
             "",
             "",
-            "\1\u00aa",
-            "\1\u00ab",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00ad",
-            "\1\u00ae",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00b0",
+            "\1\u00b6",
             "",
-            "\1\u00b1",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "\1\u00ba",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00bf",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00c1",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\1\u00b4",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
+            "\1\u00c4",
             "",
-            "\1\u00b5",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "",
+            "",
+            "\1\u00c6",
+            "",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             ""
     };
 
@@ -2688,19 +2819,19 @@ public class InternalBaseLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_48 = input.LA(1);
+                        int LA17_50 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_48>='\u0000' && LA17_48<='\uFFFF')) ) {s = 114;}
+                        if ( ((LA17_50>='\u0000' && LA17_50<='\uFFFF')) ) {s = 119;}
 
-                        else s = 52;
+                        else s = 54;
 
                         if ( s>=0 ) return s;
                         break;
@@ -2724,103 +2855,107 @@ public class InternalBaseLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 8;}
 
-                        else if ( (LA17_0=='v') ) {s = 9;}
+                        else if ( (LA17_0=='t') ) {s = 9;}
+
+                        else if ( (LA17_0=='f') ) {s = 10;}
+
+                        else if ( (LA17_0=='a') ) {s = 11;}
 
-                        else if ( (LA17_0=='t') ) {s = 10;}
+                        else if ( (LA17_0=='e') ) {s = 12;}
 
-                        else if ( (LA17_0=='f') ) {s = 11;}
+                        else if ( (LA17_0=='{') ) {s = 13;}
 
-                        else if ( (LA17_0==':') ) {s = 12;}
+                        else if ( (LA17_0=='}') ) {s = 14;}
 
-                        else if ( (LA17_0==';') ) {s = 13;}
+                        else if ( (LA17_0==':') ) {s = 15;}
 
-                        else if ( (LA17_0=='l') ) {s = 14;}
+                        else if ( (LA17_0==';') ) {s = 16;}
 
-                        else if ( (LA17_0=='i') ) {s = 15;}
+                        else if ( (LA17_0=='l') ) {s = 17;}
 
-                        else if ( (LA17_0=='|') ) {s = 16;}
+                        else if ( (LA17_0=='i') ) {s = 18;}
 
-                        else if ( (LA17_0=='s') ) {s = 17;}
+                        else if ( (LA17_0=='|') ) {s = 19;}
 
-                        else if ( (LA17_0=='e') ) {s = 18;}
+                        else if ( (LA17_0=='s') ) {s = 20;}
 
-                        else if ( (LA17_0=='b') ) {s = 19;}
+                        else if ( (LA17_0=='b') ) {s = 21;}
 
-                        else if ( (LA17_0=='d') ) {s = 20;}
+                        else if ( (LA17_0=='v') ) {s = 22;}
 
-                        else if ( (LA17_0=='a') ) {s = 21;}
+                        else if ( (LA17_0=='d') ) {s = 23;}
 
-                        else if ( (LA17_0=='.') ) {s = 22;}
+                        else if ( (LA17_0=='.') ) {s = 24;}
 
-                        else if ( (LA17_0=='>') ) {s = 23;}
+                        else if ( (LA17_0=='>') ) {s = 25;}
 
-                        else if ( (LA17_0=='=') ) {s = 24;}
+                        else if ( (LA17_0=='=') ) {s = 26;}
 
-                        else if ( (LA17_0=='<') ) {s = 25;}
+                        else if ( (LA17_0=='<') ) {s = 27;}
 
-                        else if ( (LA17_0=='+') ) {s = 26;}
+                        else if ( (LA17_0=='+') ) {s = 28;}
 
-                        else if ( (LA17_0=='-') ) {s = 27;}
+                        else if ( (LA17_0=='-') ) {s = 29;}
 
-                        else if ( (LA17_0=='*') ) {s = 28;}
+                        else if ( (LA17_0=='*') ) {s = 30;}
 
-                        else if ( (LA17_0=='/') ) {s = 29;}
+                        else if ( (LA17_0=='/') ) {s = 31;}
 
-                        else if ( (LA17_0=='%') ) {s = 30;}
+                        else if ( (LA17_0=='%') ) {s = 32;}
 
-                        else if ( (LA17_0=='Y') ) {s = 31;}
+                        else if ( (LA17_0=='Y') ) {s = 33;}
 
-                        else if ( (LA17_0=='Z') ) {s = 32;}
+                        else if ( (LA17_0=='Z') ) {s = 34;}
 
-                        else if ( (LA17_0=='E') ) {s = 33;}
+                        else if ( (LA17_0=='E') ) {s = 35;}
 
-                        else if ( (LA17_0=='P') ) {s = 34;}
+                        else if ( (LA17_0=='P') ) {s = 36;}
 
-                        else if ( (LA17_0=='T') ) {s = 35;}
+                        else if ( (LA17_0=='T') ) {s = 37;}
 
-                        else if ( (LA17_0=='G') ) {s = 36;}
+                        else if ( (LA17_0=='G') ) {s = 38;}
 
-                        else if ( (LA17_0=='M') ) {s = 37;}
+                        else if ( (LA17_0=='M') ) {s = 39;}
 
-                        else if ( (LA17_0=='k') ) {s = 38;}
+                        else if ( (LA17_0=='k') ) {s = 40;}
 
-                        else if ( (LA17_0=='h') ) {s = 39;}
+                        else if ( (LA17_0=='h') ) {s = 41;}
 
-                        else if ( (LA17_0=='c') ) {s = 40;}
+                        else if ( (LA17_0=='c') ) {s = 42;}
 
-                        else if ( (LA17_0=='m') ) {s = 41;}
+                        else if ( (LA17_0=='m') ) {s = 43;}
 
-                        else if ( (LA17_0=='\u00B5') ) {s = 42;}
+                        else if ( (LA17_0=='\u00B5') ) {s = 44;}
 
-                        else if ( (LA17_0=='n') ) {s = 43;}
+                        else if ( (LA17_0=='n') ) {s = 45;}
 
-                        else if ( (LA17_0=='p') ) {s = 44;}
+                        else if ( (LA17_0=='p') ) {s = 46;}
 
-                        else if ( (LA17_0=='z') ) {s = 45;}
+                        else if ( (LA17_0=='z') ) {s = 47;}
 
-                        else if ( (LA17_0=='y') ) {s = 46;}
+                        else if ( (LA17_0=='y') ) {s = 48;}
 
-                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 47;}
+                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 49;}
 
-                        else if ( (LA17_0=='\"') ) {s = 48;}
+                        else if ( (LA17_0=='\"') ) {s = 50;}
 
-                        else if ( (LA17_0=='\'') ) {s = 49;}
+                        else if ( (LA17_0=='\'') ) {s = 51;}
 
-                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='o'||(LA17_0>='q' && LA17_0<='r')||LA17_0=='u'||(LA17_0>='w' && LA17_0<='x')) ) {s = 50;}
+                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='o'||(LA17_0>='q' && LA17_0<='r')||LA17_0=='u'||(LA17_0>='w' && LA17_0<='x')) ) {s = 52;}
 
-                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 51;}
+                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 53;}
 
-                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||LA17_0=='{'||(LA17_0>='}' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 52;}
+                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 54;}
 
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA17_49 = input.LA(1);
+                        int LA17_51 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_49>='\u0000' && LA17_49<='\uFFFF')) ) {s = 115;}
+                        if ( ((LA17_51>='\u0000' && LA17_51<='\uFFFF')) ) {s = 120;}
 
-                        else s = 52;
+                        else s = 54;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageParser.java b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageParser.java
index 49670761..37c45885 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/parser/antlr/internal/InternalBaseLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'value'", "'true'", "'false'", "':'", "':='", "';'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "'{'", "'}'", "':'", "':='", "';'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -66,6 +66,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
     public static final int T__65=65;
     public static final int T__70=70;
     public static final int T__71=71;
+    public static final int T__72=72;
     public static final int RULE_STRING=6;
     public static final int RULE_SL_COMMENT=12;
     public static final int T__37=37;
@@ -76,9 +77,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
     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__73=73;
     public static final int EOF=-1;
     public static final int T__30=30;
+    public static final int T__74=74;
     public static final int T__31=31;
+    public static final int T__75=75;
     public static final int T__32=32;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
@@ -956,7 +960,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                 int alt5=2;
                 int LA5_0 = input.LA(1);
 
-                if ( ((LA5_0>=41 && LA5_0<=46)) ) {
+                if ( ((LA5_0>=45 && LA5_0<=50)) ) {
                     alt5=1;
                 }
 
@@ -1256,7 +1260,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                 int alt6=2;
                 int LA6_0 = input.LA(1);
 
-                if ( ((LA6_0>=47 && LA6_0<=48)) ) {
+                if ( ((LA6_0>=51 && LA6_0<=52)) ) {
                     alt6=1;
                 }
 
@@ -1453,7 +1457,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                 int alt7=2;
                 int LA7_0 = input.LA(1);
 
-                if ( ((LA7_0>=49 && LA7_0<=51)) ) {
+                if ( ((LA7_0>=53 && LA7_0<=55)) ) {
                     alt7=1;
                 }
 
@@ -1779,7 +1783,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                 int alt9=2;
                 int LA9_0 = input.LA(1);
 
-                if ( ((LA9_0>=47 && LA9_0<=48)) ) {
+                if ( ((LA9_0>=51 && LA9_0<=52)) ) {
                     alt9=1;
                 }
 
@@ -1934,39 +1938,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             {
             // InternalBaseLanguage.g:736:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             int alt10=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt10=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 24:
-            case 25:
-                {
-                alt10=2;
-                }
-                break;
-            case 20:
-                {
-                alt10=3;
-                }
-                break;
-            case 23:
-                {
-                alt10=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 10, 0, input);
-
-                throw nvae;
-            }
-
+            alt10 = dfa10.predict(input);
             switch (alt10) {
                 case 1 :
                     // InternalBaseLanguage.g:737:3: this_CallRule_0= ruleCallRule
@@ -2279,7 +2251,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             int alt12=2;
             int LA12_0 = input.LA(1);
 
-            if ( ((LA12_0>=RULE_DOUBLE && LA12_0<=RULE_ID)||LA12_0==18||LA12_0==20||(LA12_0>=23 && LA12_0<=25)||(LA12_0>=47 && LA12_0<=48)) ) {
+            if ( ((LA12_0>=RULE_DOUBLE && LA12_0<=RULE_ID)||LA12_0==18||LA12_0==20||(LA12_0>=23 && LA12_0<=24)||(LA12_0>=51 && LA12_0<=52)) ) {
                 alt12=1;
             }
             switch (alt12) {
@@ -2445,37 +2417,124 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalBaseLanguage.g:921:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalBaseLanguage.g:921:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:927:2: ( ( () otherlv_1= 'value' ) )
-            // InternalBaseLanguage.g:928:2: ( () otherlv_1= 'value' )
+            // InternalBaseLanguage.g:927:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalBaseLanguage.g:928:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
             {
-            // InternalBaseLanguage.g:928:2: ( () otherlv_1= 'value' )
-            // InternalBaseLanguage.g:929:3: () otherlv_1= 'value'
+
+            		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+            	
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+
+            		current = this_ConstantReferenceRule_0;
+            		afterParserOrEnumRuleCall();
+            	
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalBaseLanguage.g:939:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantReferenceRule = null;
+
+
+        try {
+            // InternalBaseLanguage.g:939:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalBaseLanguage.g:940:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
             {
-            // InternalBaseLanguage.g:929:3: ()
-            // InternalBaseLanguage.g:930:4: 
+             newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantReferenceRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalBaseLanguage.g:946:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalBaseLanguage.g:952:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:953:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalBaseLanguage.g:953:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:954:3: ( ruleQualifiedName )
+            {
+            // InternalBaseLanguage.g:954:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:955:4: ruleQualifiedName
             {
 
-            				current = forceCreateModelElement(
-            					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-            					current);
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+            				}
             			
 
-            }
+            				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+            			
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
 
-            otherlv_1=(Token)match(input,23,FOLLOW_2); 
+            state._fsp--;
+
+
+            				afterParserOrEnumRuleCall();
+            			
+
+            }
 
-            			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-            		
 
             }
 
@@ -2495,11 +2554,11 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         }
         return current;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalBaseLanguage.g:944:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    // InternalBaseLanguage.g:972:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
     public final EObject entryRuleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2507,8 +2566,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:944:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalBaseLanguage.g:945:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalBaseLanguage.g:972:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalBaseLanguage.g:973:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2535,7 +2594,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalBaseLanguage.g:951:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalBaseLanguage.g:979:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2550,10 +2609,10 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:957:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalBaseLanguage.g:958:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalBaseLanguage.g:985:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalBaseLanguage.g:986:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalBaseLanguage.g:958:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalBaseLanguage.g:986:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             int alt13=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -2567,8 +2626,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                 alt13=2;
                 }
                 break;
+            case 23:
             case 24:
-            case 25:
                 {
                 alt13=3;
                 }
@@ -2582,7 +2641,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             switch (alt13) {
                 case 1 :
-                    // InternalBaseLanguage.g:959:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalBaseLanguage.g:987:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0());
@@ -2600,7 +2659,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:968:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalBaseLanguage.g:996:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1());
@@ -2618,7 +2677,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:977:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalBaseLanguage.g:1005:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2());
@@ -2658,7 +2717,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalBaseLanguage.g:989:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalBaseLanguage.g:1017:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2666,8 +2725,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:989:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalBaseLanguage.g:990:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalBaseLanguage.g:1017:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalBaseLanguage.g:1018:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2694,7 +2753,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalBaseLanguage.g:996:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalBaseLanguage.g:1024:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2707,10 +2766,10 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1002:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalBaseLanguage.g:1003:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalBaseLanguage.g:1030:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalBaseLanguage.g:1031:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalBaseLanguage.g:1003:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalBaseLanguage.g:1031:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             int alt14=2;
             int LA14_0 = input.LA(1);
 
@@ -2728,7 +2787,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             }
             switch (alt14) {
                 case 1 :
-                    // InternalBaseLanguage.g:1004:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalBaseLanguage.g:1032:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0());
@@ -2746,7 +2805,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1013:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalBaseLanguage.g:1041:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1());
@@ -2786,7 +2845,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalBaseLanguage.g:1025:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalBaseLanguage.g:1053:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2794,8 +2853,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1025:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalBaseLanguage.g:1026:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalBaseLanguage.g:1053:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalBaseLanguage.g:1054:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2822,7 +2881,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalBaseLanguage.g:1032:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalBaseLanguage.g:1060:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2834,17 +2893,17 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1038:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalBaseLanguage.g:1039:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalBaseLanguage.g:1066:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalBaseLanguage.g:1067:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalBaseLanguage.g:1039:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalBaseLanguage.g:1040:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalBaseLanguage.g:1067:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalBaseLanguage.g:1068:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalBaseLanguage.g:1040:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalBaseLanguage.g:1041:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalBaseLanguage.g:1068:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalBaseLanguage.g:1069:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalBaseLanguage.g:1041:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalBaseLanguage.g:1042:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalBaseLanguage.g:1069:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalBaseLanguage.g:1070:5: lv_literal_0_0= RULE_DOUBLE
             {
             lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_15); 
 
@@ -2866,19 +2925,19 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1058:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalBaseLanguage.g:1086:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
-            if ( ((LA15_0>=52 && LA15_0<=71)) ) {
+            if ( ((LA15_0>=56 && LA15_0<=75)) ) {
                 alt15=1;
             }
             switch (alt15) {
                 case 1 :
-                    // InternalBaseLanguage.g:1059:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalBaseLanguage.g:1087:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalBaseLanguage.g:1059:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalBaseLanguage.g:1060:5: lv_factor_1_0= ruleFactorRule
+                    // InternalBaseLanguage.g:1087:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalBaseLanguage.g:1088:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -2931,7 +2990,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalBaseLanguage.g:1081:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalBaseLanguage.g:1109:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2939,8 +2998,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1081:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalBaseLanguage.g:1082:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalBaseLanguage.g:1109:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalBaseLanguage.g:1110:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2967,7 +3026,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalBaseLanguage.g:1088:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalBaseLanguage.g:1116:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2979,17 +3038,17 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1094:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalBaseLanguage.g:1095:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalBaseLanguage.g:1122:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalBaseLanguage.g:1123:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalBaseLanguage.g:1095:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalBaseLanguage.g:1096:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalBaseLanguage.g:1123:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalBaseLanguage.g:1124:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalBaseLanguage.g:1096:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalBaseLanguage.g:1097:4: (lv_literal_0_0= RULE_INT )
+            // InternalBaseLanguage.g:1124:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalBaseLanguage.g:1125:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalBaseLanguage.g:1097:4: (lv_literal_0_0= RULE_INT )
-            // InternalBaseLanguage.g:1098:5: lv_literal_0_0= RULE_INT
+            // InternalBaseLanguage.g:1125:4: (lv_literal_0_0= RULE_INT )
+            // InternalBaseLanguage.g:1126:5: lv_literal_0_0= RULE_INT
             {
             lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_15); 
 
@@ -3011,19 +3070,19 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1114:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalBaseLanguage.g:1142:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt16=2;
             int LA16_0 = input.LA(1);
 
-            if ( ((LA16_0>=52 && LA16_0<=71)) ) {
+            if ( ((LA16_0>=56 && LA16_0<=75)) ) {
                 alt16=1;
             }
             switch (alt16) {
                 case 1 :
-                    // InternalBaseLanguage.g:1115:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalBaseLanguage.g:1143:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalBaseLanguage.g:1115:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalBaseLanguage.g:1116:5: lv_factor_1_0= ruleFactorRule
+                    // InternalBaseLanguage.g:1143:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalBaseLanguage.g:1144:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -3076,7 +3135,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalBaseLanguage.g:1137:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalBaseLanguage.g:1165:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3084,8 +3143,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1137:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalBaseLanguage.g:1138:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalBaseLanguage.g:1165:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalBaseLanguage.g:1166:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3112,7 +3171,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalBaseLanguage.g:1144:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalBaseLanguage.g:1172:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3122,14 +3181,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1150:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalBaseLanguage.g:1151:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalBaseLanguage.g:1178:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalBaseLanguage.g:1179:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalBaseLanguage.g:1151:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalBaseLanguage.g:1152:3: (lv_value_0_0= RULE_STRING )
+            // InternalBaseLanguage.g:1179:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalBaseLanguage.g:1180:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalBaseLanguage.g:1152:3: (lv_value_0_0= RULE_STRING )
-            // InternalBaseLanguage.g:1153:4: lv_value_0_0= RULE_STRING
+            // InternalBaseLanguage.g:1180:3: (lv_value_0_0= RULE_STRING )
+            // InternalBaseLanguage.g:1181:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
 
@@ -3171,7 +3230,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalBaseLanguage.g:1172:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalBaseLanguage.g:1200:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3179,8 +3238,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1172:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalBaseLanguage.g:1173:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalBaseLanguage.g:1200:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalBaseLanguage.g:1201:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3207,7 +3266,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalBaseLanguage.g:1179:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalBaseLanguage.g:1207:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3218,14 +3277,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1185:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalBaseLanguage.g:1186:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalBaseLanguage.g:1213:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalBaseLanguage.g:1214:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalBaseLanguage.g:1186:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalBaseLanguage.g:1187:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalBaseLanguage.g:1214:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalBaseLanguage.g:1215:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalBaseLanguage.g:1187:3: ()
-            // InternalBaseLanguage.g:1188:4: 
+            // InternalBaseLanguage.g:1215:3: ()
+            // InternalBaseLanguage.g:1216:4: 
             {
 
             				current = forceCreateModelElement(
@@ -3235,14 +3294,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1194:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalBaseLanguage.g:1222:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             int alt17=2;
             int LA17_0 = input.LA(1);
 
-            if ( (LA17_0==24) ) {
+            if ( (LA17_0==23) ) {
                 alt17=1;
             }
-            else if ( (LA17_0==25) ) {
+            else if ( (LA17_0==24) ) {
                 alt17=2;
             }
             else {
@@ -3253,15 +3312,15 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             }
             switch (alt17) {
                 case 1 :
-                    // InternalBaseLanguage.g:1195:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalBaseLanguage.g:1223:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalBaseLanguage.g:1195:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalBaseLanguage.g:1196:5: (lv_value_1_0= 'true' )
+                    // InternalBaseLanguage.g:1223:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalBaseLanguage.g:1224:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalBaseLanguage.g:1196:5: (lv_value_1_0= 'true' )
-                    // InternalBaseLanguage.g:1197:6: lv_value_1_0= 'true'
+                    // InternalBaseLanguage.g:1224:5: (lv_value_1_0= 'true' )
+                    // InternalBaseLanguage.g:1225:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,24,FOLLOW_2); 
+                    lv_value_1_0=(Token)match(input,23,FOLLOW_2); 
 
                     						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
                     					
@@ -3281,9 +3340,9 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1210:4: otherlv_2= 'false'
+                    // InternalBaseLanguage.g:1238:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,25,FOLLOW_2); 
+                    otherlv_2=(Token)match(input,24,FOLLOW_2); 
 
                     				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
                     			
@@ -3315,8 +3374,265 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalBaseLanguage.g:1247:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTypeDefinitionRule = null;
+
+
+        try {
+            // InternalBaseLanguage.g:1247:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalBaseLanguage.g:1248:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            {
+             newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             current =iv_ruleTypeDefinitionRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalBaseLanguage.g:1254:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_abstract_0_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_attributes_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalBaseLanguage.g:1260:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalBaseLanguage.g:1261:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            {
+            // InternalBaseLanguage.g:1261:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalBaseLanguage.g:1262:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            {
+            // InternalBaseLanguage.g:1262:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
+
+            if ( (LA18_0==25) ) {
+                alt18=1;
+            }
+            switch (alt18) {
+                case 1 :
+                    // InternalBaseLanguage.g:1263:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalBaseLanguage.g:1263:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalBaseLanguage.g:1264:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,25,FOLLOW_16); 
+
+                    					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                    				
+
+                    					if (current==null) {
+                    						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    					}
+                    					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                    				
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,26,FOLLOW_17); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+            		
+            // InternalBaseLanguage.g:1280:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalBaseLanguage.g:1281:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalBaseLanguage.g:1281:4: (lv_name_2_0= ruleStringOrId )
+            // InternalBaseLanguage.g:1282:5: lv_name_2_0= ruleStringOrId
+            {
+
+            					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_18);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"name",
+            						lv_name_2_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalBaseLanguage.g:1299:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==27) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // InternalBaseLanguage.g:1300:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,27,FOLLOW_17); 
+
+                    				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                    			
+                    // InternalBaseLanguage.g:1304:4: ( ( ruleQualifiedName ) )
+                    // InternalBaseLanguage.g:1305:5: ( ruleQualifiedName )
+                    {
+                    // InternalBaseLanguage.g:1305:5: ( ruleQualifiedName )
+                    // InternalBaseLanguage.g:1306:6: ruleQualifiedName
+                    {
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    						}
+                    					
+
+                    						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                    					
+                    pushFollow(FOLLOW_19);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+
+
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,28,FOLLOW_20); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+            		
+            // InternalBaseLanguage.g:1325:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
+
+                if ( ((LA20_0>=RULE_QUOTED_ID && LA20_0<=RULE_ID)) ) {
+                    alt20=1;
+                }
+
+
+                switch (alt20) {
+            	case 1 :
+            	    // InternalBaseLanguage.g:1326:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalBaseLanguage.g:1326:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalBaseLanguage.g:1327:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+
+            	    					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	    				
+            	    pushFollow(FOLLOW_20);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+
+
+            	    					if (current==null) {
+            	    						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	    					}
+            	    					add(
+            	    						current,
+            	    						"attributes",
+            	    						lv_attributes_6_0,
+            	    						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	    					afterParserOrEnumRuleCall();
+            	    				
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop20;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,29,FOLLOW_2); 
+
+            			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalBaseLanguage.g:1219:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalBaseLanguage.g:1352:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3324,8 +3640,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1219:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalBaseLanguage.g:1220:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalBaseLanguage.g:1352:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalBaseLanguage.g:1353:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3352,7 +3668,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalBaseLanguage.g:1226:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalBaseLanguage.g:1359:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3370,22 +3686,22 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1232:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalBaseLanguage.g:1233:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalBaseLanguage.g:1365:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalBaseLanguage.g:1366:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalBaseLanguage.g:1233:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalBaseLanguage.g:1234:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalBaseLanguage.g:1366:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalBaseLanguage.g:1367:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalBaseLanguage.g:1234:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalBaseLanguage.g:1235:4: (lv_name_0_0= ruleStringOrId )
+            // InternalBaseLanguage.g:1367:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalBaseLanguage.g:1368:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalBaseLanguage.g:1235:4: (lv_name_0_0= ruleStringOrId )
-            // InternalBaseLanguage.g:1236:5: lv_name_0_0= ruleStringOrId
+            // InternalBaseLanguage.g:1368:4: (lv_name_0_0= ruleStringOrId )
+            // InternalBaseLanguage.g:1369:5: lv_name_0_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_21);
             lv_name_0_0=ruleStringOrId();
 
             state._fsp--;
@@ -3407,20 +3723,20 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,26,FOLLOW_17); 
+            otherlv_1=(Token)match(input,30,FOLLOW_22); 
 
             			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
             		
-            // InternalBaseLanguage.g:1257:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalBaseLanguage.g:1258:4: (lv_type_2_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1390:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalBaseLanguage.g:1391:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalBaseLanguage.g:1258:4: (lv_type_2_0= ruleTypeRule )
-            // InternalBaseLanguage.g:1259:5: lv_type_2_0= ruleTypeRule
+            // InternalBaseLanguage.g:1391:4: (lv_type_2_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1392:5: lv_type_2_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
             				
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_23);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -3442,31 +3758,31 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1276:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt18=2;
-            int LA18_0 = input.LA(1);
+            // InternalBaseLanguage.g:1409:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
 
-            if ( (LA18_0==27) ) {
-                alt18=1;
+            if ( (LA21_0==31) ) {
+                alt21=1;
             }
-            switch (alt18) {
+            switch (alt21) {
                 case 1 :
-                    // InternalBaseLanguage.g:1277:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalBaseLanguage.g:1410:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,27,FOLLOW_4); 
+                    otherlv_3=(Token)match(input,31,FOLLOW_4); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                     			
-                    // InternalBaseLanguage.g:1281:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalBaseLanguage.g:1282:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalBaseLanguage.g:1414:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalBaseLanguage.g:1415:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalBaseLanguage.g:1282:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalBaseLanguage.g:1283:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalBaseLanguage.g:1415:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalBaseLanguage.g:1416:6: lv_initialisation_4_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0());
                     					
-                    pushFollow(FOLLOW_19);
+                    pushFollow(FOLLOW_24);
                     lv_initialisation_4_0=ruleExpressionRule();
 
                     state._fsp--;
@@ -3494,7 +3810,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_5=(Token)match(input,28,FOLLOW_2); 
+            otherlv_5=(Token)match(input,32,FOLLOW_2); 
 
             			newLeafNode(otherlv_5, grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4());
             		
@@ -3521,7 +3837,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalBaseLanguage.g:1309:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalBaseLanguage.g:1442:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3529,8 +3845,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1309:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalBaseLanguage.g:1310:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalBaseLanguage.g:1442:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalBaseLanguage.g:1443:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
              newCompositeNode(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3557,7 +3873,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalBaseLanguage.g:1316:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalBaseLanguage.g:1449:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3586,72 +3902,72 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1322:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalBaseLanguage.g:1323:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalBaseLanguage.g:1455:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalBaseLanguage.g:1456:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalBaseLanguage.g:1323:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt19=10;
+            // InternalBaseLanguage.g:1456:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt22=10;
             switch ( input.LA(1) ) {
-            case 32:
+            case 36:
                 {
-                alt19=1;
+                alt22=1;
                 }
                 break;
-            case 34:
+            case 38:
                 {
-                alt19=2;
+                alt22=2;
                 }
                 break;
-            case 35:
+            case 39:
                 {
-                alt19=3;
+                alt22=3;
                 }
                 break;
-            case 36:
+            case 40:
                 {
-                alt19=4;
+                alt22=4;
                 }
                 break;
-            case 29:
+            case 33:
                 {
-                alt19=5;
+                alt22=5;
                 }
                 break;
-            case 39:
+            case 43:
                 {
-                alt19=6;
+                alt22=6;
                 }
                 break;
-            case 30:
+            case 34:
                 {
-                alt19=7;
+                alt22=7;
                 }
                 break;
-            case 37:
+            case 41:
                 {
-                alt19=8;
+                alt22=8;
                 }
                 break;
-            case 33:
+            case 37:
                 {
-                alt19=9;
+                alt22=9;
                 }
                 break;
-            case 38:
+            case 42:
                 {
-                alt19=10;
+                alt22=10;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt19) {
+            switch (alt22) {
                 case 1 :
-                    // InternalBaseLanguage.g:1324:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalBaseLanguage.g:1457:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0());
@@ -3669,7 +3985,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1333:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalBaseLanguage.g:1466:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1());
@@ -3687,7 +4003,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1342:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalBaseLanguage.g:1475:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2());
@@ -3705,7 +4021,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1351:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalBaseLanguage.g:1484:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3());
@@ -3723,7 +4039,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:1360:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalBaseLanguage.g:1493:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4());
@@ -3741,7 +4057,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:1369:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalBaseLanguage.g:1502:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5());
@@ -3759,7 +4075,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 7 :
-                    // InternalBaseLanguage.g:1378:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalBaseLanguage.g:1511:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6());
@@ -3777,7 +4093,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 8 :
-                    // InternalBaseLanguage.g:1387:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalBaseLanguage.g:1520:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7());
@@ -3795,7 +4111,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 9 :
-                    // InternalBaseLanguage.g:1396:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalBaseLanguage.g:1529:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8());
@@ -3813,7 +4129,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 10 :
-                    // InternalBaseLanguage.g:1405:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalBaseLanguage.g:1538:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9());
@@ -3853,7 +4169,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalBaseLanguage.g:1417:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalBaseLanguage.g:1550:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3861,8 +4177,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1417:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalBaseLanguage.g:1418:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalBaseLanguage.g:1550:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalBaseLanguage.g:1551:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3889,7 +4205,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalBaseLanguage.g:1424:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalBaseLanguage.g:1557:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3899,14 +4215,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1430:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalBaseLanguage.g:1431:2: ( () otherlv_1= 'literal' )
+            // InternalBaseLanguage.g:1563:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalBaseLanguage.g:1564:2: ( () otherlv_1= 'literal' )
             {
-            // InternalBaseLanguage.g:1431:2: ( () otherlv_1= 'literal' )
-            // InternalBaseLanguage.g:1432:3: () otherlv_1= 'literal'
+            // InternalBaseLanguage.g:1564:2: ( () otherlv_1= 'literal' )
+            // InternalBaseLanguage.g:1565:3: () otherlv_1= 'literal'
             {
-            // InternalBaseLanguage.g:1432:3: ()
-            // InternalBaseLanguage.g:1433:4: 
+            // InternalBaseLanguage.g:1565:3: ()
+            // InternalBaseLanguage.g:1566:4: 
             {
 
             				current = forceCreateModelElement(
@@ -3916,7 +4232,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,29,FOLLOW_2); 
+            otherlv_1=(Token)match(input,33,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
             		
@@ -3943,7 +4259,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalBaseLanguage.g:1447:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalBaseLanguage.g:1580:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3951,8 +4267,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1447:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalBaseLanguage.g:1448:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalBaseLanguage.g:1580:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalBaseLanguage.g:1581:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
              newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3979,7 +4295,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalBaseLanguage.g:1454:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalBaseLanguage.g:1587:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -3990,14 +4306,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1460:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalBaseLanguage.g:1461:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalBaseLanguage.g:1593:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalBaseLanguage.g:1594:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalBaseLanguage.g:1461:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalBaseLanguage.g:1462:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalBaseLanguage.g:1594:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalBaseLanguage.g:1595:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalBaseLanguage.g:1462:3: ()
-            // InternalBaseLanguage.g:1463:4: 
+            // InternalBaseLanguage.g:1595:3: ()
+            // InternalBaseLanguage.g:1596:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4007,15 +4323,15 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,30,FOLLOW_20); 
+            otherlv_1=(Token)match(input,34,FOLLOW_17); 
 
             			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
             		
-            // InternalBaseLanguage.g:1473:3: ( ( ruleQualifiedName ) )
-            // InternalBaseLanguage.g:1474:4: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:1606:3: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:1607:4: ( ruleQualifiedName )
             {
-            // InternalBaseLanguage.g:1474:4: ( ruleQualifiedName )
-            // InternalBaseLanguage.g:1475:5: ruleQualifiedName
+            // InternalBaseLanguage.g:1607:4: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:1608:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -4025,7 +4341,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
             				
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_25);
             ruleQualifiedName();
 
             state._fsp--;
@@ -4039,30 +4355,30 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1489:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop20:
+            // InternalBaseLanguage.g:1622:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop23:
             do {
-                int alt20=2;
-                int LA20_0 = input.LA(1);
+                int alt23=2;
+                int LA23_0 = input.LA(1);
 
-                if ( (LA20_0==31) ) {
-                    alt20=1;
+                if ( (LA23_0==35) ) {
+                    alt23=1;
                 }
 
 
-                switch (alt20) {
+                switch (alt23) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1490:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalBaseLanguage.g:1623:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,31,FOLLOW_20); 
+            	    otherlv_3=(Token)match(input,35,FOLLOW_17); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	    			
-            	    // InternalBaseLanguage.g:1494:4: ( ( ruleQualifiedName ) )
-            	    // InternalBaseLanguage.g:1495:5: ( ruleQualifiedName )
+            	    // InternalBaseLanguage.g:1627:4: ( ( ruleQualifiedName ) )
+            	    // InternalBaseLanguage.g:1628:5: ( ruleQualifiedName )
             	    {
-            	    // InternalBaseLanguage.g:1495:5: ( ruleQualifiedName )
-            	    // InternalBaseLanguage.g:1496:6: ruleQualifiedName
+            	    // InternalBaseLanguage.g:1628:5: ( ruleQualifiedName )
+            	    // InternalBaseLanguage.g:1629:6: ruleQualifiedName
             	    {
 
             	    						if (current==null) {
@@ -4072,7 +4388,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             	    						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	    					
-            	    pushFollow(FOLLOW_21);
+            	    pushFollow(FOLLOW_25);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -4091,7 +4407,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop20;
+            	    break loop23;
                 }
             } while (true);
 
@@ -4118,7 +4434,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalBaseLanguage.g:1515:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalBaseLanguage.g:1648:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4126,8 +4442,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1515:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalBaseLanguage.g:1516:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalBaseLanguage.g:1648:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalBaseLanguage.g:1649:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
              newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4154,7 +4470,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalBaseLanguage.g:1522:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalBaseLanguage.g:1655:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4164,14 +4480,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1528:2: ( ( () otherlv_1= 'string' ) )
-            // InternalBaseLanguage.g:1529:2: ( () otherlv_1= 'string' )
+            // InternalBaseLanguage.g:1661:2: ( ( () otherlv_1= 'string' ) )
+            // InternalBaseLanguage.g:1662:2: ( () otherlv_1= 'string' )
             {
-            // InternalBaseLanguage.g:1529:2: ( () otherlv_1= 'string' )
-            // InternalBaseLanguage.g:1530:3: () otherlv_1= 'string'
+            // InternalBaseLanguage.g:1662:2: ( () otherlv_1= 'string' )
+            // InternalBaseLanguage.g:1663:3: () otherlv_1= 'string'
             {
-            // InternalBaseLanguage.g:1530:3: ()
-            // InternalBaseLanguage.g:1531:4: 
+            // InternalBaseLanguage.g:1663:3: ()
+            // InternalBaseLanguage.g:1664:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4181,7 +4497,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,32,FOLLOW_2); 
+            otherlv_1=(Token)match(input,36,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
             		
@@ -4208,7 +4524,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalBaseLanguage.g:1545:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalBaseLanguage.g:1678:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4216,8 +4532,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1545:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalBaseLanguage.g:1546:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalBaseLanguage.g:1678:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalBaseLanguage.g:1679:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4244,7 +4560,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalBaseLanguage.g:1552:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalBaseLanguage.g:1685:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4254,14 +4570,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1558:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalBaseLanguage.g:1559:2: ( () otherlv_1= 'expression' )
+            // InternalBaseLanguage.g:1691:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalBaseLanguage.g:1692:2: ( () otherlv_1= 'expression' )
             {
-            // InternalBaseLanguage.g:1559:2: ( () otherlv_1= 'expression' )
-            // InternalBaseLanguage.g:1560:3: () otherlv_1= 'expression'
+            // InternalBaseLanguage.g:1692:2: ( () otherlv_1= 'expression' )
+            // InternalBaseLanguage.g:1693:3: () otherlv_1= 'expression'
             {
-            // InternalBaseLanguage.g:1560:3: ()
-            // InternalBaseLanguage.g:1561:4: 
+            // InternalBaseLanguage.g:1693:3: ()
+            // InternalBaseLanguage.g:1694:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4271,7 +4587,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,33,FOLLOW_2); 
+            otherlv_1=(Token)match(input,37,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
             		
@@ -4298,7 +4614,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalBaseLanguage.g:1575:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalBaseLanguage.g:1708:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4306,8 +4622,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1575:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalBaseLanguage.g:1576:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalBaseLanguage.g:1708:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalBaseLanguage.g:1709:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
              newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4334,7 +4650,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalBaseLanguage.g:1582:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalBaseLanguage.g:1715:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4344,14 +4660,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1588:2: ( ( () otherlv_1= 'int' ) )
-            // InternalBaseLanguage.g:1589:2: ( () otherlv_1= 'int' )
+            // InternalBaseLanguage.g:1721:2: ( ( () otherlv_1= 'int' ) )
+            // InternalBaseLanguage.g:1722:2: ( () otherlv_1= 'int' )
             {
-            // InternalBaseLanguage.g:1589:2: ( () otherlv_1= 'int' )
-            // InternalBaseLanguage.g:1590:3: () otherlv_1= 'int'
+            // InternalBaseLanguage.g:1722:2: ( () otherlv_1= 'int' )
+            // InternalBaseLanguage.g:1723:3: () otherlv_1= 'int'
             {
-            // InternalBaseLanguage.g:1590:3: ()
-            // InternalBaseLanguage.g:1591:4: 
+            // InternalBaseLanguage.g:1723:3: ()
+            // InternalBaseLanguage.g:1724:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4361,7 +4677,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,34,FOLLOW_2); 
+            otherlv_1=(Token)match(input,38,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
             		
@@ -4388,7 +4704,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalBaseLanguage.g:1605:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalBaseLanguage.g:1738:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4396,8 +4712,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1605:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalBaseLanguage.g:1606:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalBaseLanguage.g:1738:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalBaseLanguage.g:1739:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
              newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4424,7 +4740,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalBaseLanguage.g:1612:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalBaseLanguage.g:1745:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4434,14 +4750,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1618:2: ( ( () otherlv_1= 'float' ) )
-            // InternalBaseLanguage.g:1619:2: ( () otherlv_1= 'float' )
+            // InternalBaseLanguage.g:1751:2: ( ( () otherlv_1= 'float' ) )
+            // InternalBaseLanguage.g:1752:2: ( () otherlv_1= 'float' )
             {
-            // InternalBaseLanguage.g:1619:2: ( () otherlv_1= 'float' )
-            // InternalBaseLanguage.g:1620:3: () otherlv_1= 'float'
+            // InternalBaseLanguage.g:1752:2: ( () otherlv_1= 'float' )
+            // InternalBaseLanguage.g:1753:3: () otherlv_1= 'float'
             {
-            // InternalBaseLanguage.g:1620:3: ()
-            // InternalBaseLanguage.g:1621:4: 
+            // InternalBaseLanguage.g:1753:3: ()
+            // InternalBaseLanguage.g:1754:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4451,7 +4767,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,35,FOLLOW_2); 
+            otherlv_1=(Token)match(input,39,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
             		
@@ -4478,7 +4794,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalBaseLanguage.g:1635:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalBaseLanguage.g:1768:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4486,8 +4802,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1635:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalBaseLanguage.g:1636:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalBaseLanguage.g:1768:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalBaseLanguage.g:1769:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4514,7 +4830,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalBaseLanguage.g:1642:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalBaseLanguage.g:1775:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4524,14 +4840,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1648:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalBaseLanguage.g:1649:2: ( () otherlv_1= 'boolean' )
+            // InternalBaseLanguage.g:1781:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalBaseLanguage.g:1782:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalBaseLanguage.g:1649:2: ( () otherlv_1= 'boolean' )
-            // InternalBaseLanguage.g:1650:3: () otherlv_1= 'boolean'
+            // InternalBaseLanguage.g:1782:2: ( () otherlv_1= 'boolean' )
+            // InternalBaseLanguage.g:1783:3: () otherlv_1= 'boolean'
             {
-            // InternalBaseLanguage.g:1650:3: ()
-            // InternalBaseLanguage.g:1651:4: 
+            // InternalBaseLanguage.g:1783:3: ()
+            // InternalBaseLanguage.g:1784:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4541,7 +4857,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,36,FOLLOW_2); 
+            otherlv_1=(Token)match(input,40,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
             		
@@ -4568,7 +4884,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalBaseLanguage.g:1665:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalBaseLanguage.g:1798:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4576,8 +4892,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1665:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalBaseLanguage.g:1666:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalBaseLanguage.g:1798:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalBaseLanguage.g:1799:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
              newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4604,7 +4920,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalBaseLanguage.g:1672:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalBaseLanguage.g:1805:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4614,14 +4930,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1678:2: ( ( () otherlv_1= 'void' ) )
-            // InternalBaseLanguage.g:1679:2: ( () otherlv_1= 'void' )
+            // InternalBaseLanguage.g:1811:2: ( ( () otherlv_1= 'void' ) )
+            // InternalBaseLanguage.g:1812:2: ( () otherlv_1= 'void' )
             {
-            // InternalBaseLanguage.g:1679:2: ( () otherlv_1= 'void' )
-            // InternalBaseLanguage.g:1680:3: () otherlv_1= 'void'
+            // InternalBaseLanguage.g:1812:2: ( () otherlv_1= 'void' )
+            // InternalBaseLanguage.g:1813:3: () otherlv_1= 'void'
             {
-            // InternalBaseLanguage.g:1680:3: ()
-            // InternalBaseLanguage.g:1681:4: 
+            // InternalBaseLanguage.g:1813:3: ()
+            // InternalBaseLanguage.g:1814:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4631,7 +4947,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_2); 
+            otherlv_1=(Token)match(input,41,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
             		
@@ -4658,7 +4974,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalBaseLanguage.g:1695:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalBaseLanguage.g:1828:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4666,8 +4982,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1695:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalBaseLanguage.g:1696:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalBaseLanguage.g:1828:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalBaseLanguage.g:1829:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
              newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4694,7 +5010,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalBaseLanguage.g:1702:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalBaseLanguage.g:1835:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4704,14 +5020,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1708:2: ( ( () otherlv_1= 'data' ) )
-            // InternalBaseLanguage.g:1709:2: ( () otherlv_1= 'data' )
+            // InternalBaseLanguage.g:1841:2: ( ( () otherlv_1= 'data' ) )
+            // InternalBaseLanguage.g:1842:2: ( () otherlv_1= 'data' )
             {
-            // InternalBaseLanguage.g:1709:2: ( () otherlv_1= 'data' )
-            // InternalBaseLanguage.g:1710:3: () otherlv_1= 'data'
+            // InternalBaseLanguage.g:1842:2: ( () otherlv_1= 'data' )
+            // InternalBaseLanguage.g:1843:3: () otherlv_1= 'data'
             {
-            // InternalBaseLanguage.g:1710:3: ()
-            // InternalBaseLanguage.g:1711:4: 
+            // InternalBaseLanguage.g:1843:3: ()
+            // InternalBaseLanguage.g:1844:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4721,7 +5037,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,38,FOLLOW_2); 
+            otherlv_1=(Token)match(input,42,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getDataTypeRuleAccess().getDataKeyword_1());
             		
@@ -4748,7 +5064,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalBaseLanguage.g:1725:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalBaseLanguage.g:1858:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4756,8 +5072,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1725:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalBaseLanguage.g:1726:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalBaseLanguage.g:1858:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalBaseLanguage.g:1859:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
              newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4784,7 +5100,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalBaseLanguage.g:1732:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalBaseLanguage.g:1865:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4796,21 +5112,21 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1738:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalBaseLanguage.g:1739:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalBaseLanguage.g:1871:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalBaseLanguage.g:1872:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalBaseLanguage.g:1739:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalBaseLanguage.g:1740:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalBaseLanguage.g:1872:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalBaseLanguage.g:1873:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,39,FOLLOW_17); 
+            otherlv_0=(Token)match(input,43,FOLLOW_22); 
 
             			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
             		
-            // InternalBaseLanguage.g:1744:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalBaseLanguage.g:1745:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1877:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalBaseLanguage.g:1878:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalBaseLanguage.g:1745:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalBaseLanguage.g:1746:5: lv_elements_1_0= ruleTypeRule
+            // InternalBaseLanguage.g:1878:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1879:5: lv_elements_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0());
@@ -4860,7 +5176,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalBaseLanguage.g:1767:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalBaseLanguage.g:1900:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -4868,8 +5184,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1767:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalBaseLanguage.g:1768:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalBaseLanguage.g:1900:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalBaseLanguage.g:1901:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
              newCompositeNode(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4896,7 +5212,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalBaseLanguage.g:1774:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalBaseLanguage.g:1907:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -4909,22 +5225,22 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1780:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalBaseLanguage.g:1781:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalBaseLanguage.g:1913:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalBaseLanguage.g:1914:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalBaseLanguage.g:1781:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalBaseLanguage.g:1782:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalBaseLanguage.g:1914:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalBaseLanguage.g:1915:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalBaseLanguage.g:1782:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalBaseLanguage.g:1783:4: (lv_type_0_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1915:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalBaseLanguage.g:1916:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalBaseLanguage.g:1783:4: (lv_type_0_0= ruleTypeRule )
-            // InternalBaseLanguage.g:1784:5: lv_type_0_0= ruleTypeRule
+            // InternalBaseLanguage.g:1916:4: (lv_type_0_0= ruleTypeRule )
+            // InternalBaseLanguage.g:1917:5: lv_type_0_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_17);
             lv_type_0_0=ruleTypeRule();
 
             state._fsp--;
@@ -4946,11 +5262,11 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalBaseLanguage.g:1801:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalBaseLanguage.g:1802:4: (lv_name_1_0= ruleStringOrId )
+            // InternalBaseLanguage.g:1934:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalBaseLanguage.g:1935:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalBaseLanguage.g:1802:4: (lv_name_1_0= ruleStringOrId )
-            // InternalBaseLanguage.g:1803:5: lv_name_1_0= ruleStringOrId
+            // InternalBaseLanguage.g:1935:4: (lv_name_1_0= ruleStringOrId )
+            // InternalBaseLanguage.g:1936:5: lv_name_1_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0());
@@ -5000,7 +5316,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalBaseLanguage.g:1824:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalBaseLanguage.g:1957:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -5008,8 +5324,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1824:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalBaseLanguage.g:1825:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalBaseLanguage.g:1957:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalBaseLanguage.g:1958:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5036,7 +5352,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalBaseLanguage.g:1831:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalBaseLanguage.g:1964:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -5044,14 +5360,14 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1837:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalBaseLanguage.g:1838:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:1970:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalBaseLanguage.g:1971:2: ( ( ruleQualifiedName ) )
             {
-            // InternalBaseLanguage.g:1838:2: ( ( ruleQualifiedName ) )
-            // InternalBaseLanguage.g:1839:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:1971:2: ( ( ruleQualifiedName ) )
+            // InternalBaseLanguage.g:1972:3: ( ruleQualifiedName )
             {
-            // InternalBaseLanguage.g:1839:3: ( ruleQualifiedName )
-            // InternalBaseLanguage.g:1840:4: ruleQualifiedName
+            // InternalBaseLanguage.g:1972:3: ( ruleQualifiedName )
+            // InternalBaseLanguage.g:1973:4: ruleQualifiedName
             {
 
             				if (current==null) {
@@ -5095,7 +5411,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalBaseLanguage.g:1857:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalBaseLanguage.g:1990:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -5103,8 +5419,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1857:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalBaseLanguage.g:1858:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalBaseLanguage.g:1990:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalBaseLanguage.g:1991:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
              newCompositeNode(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -5131,7 +5447,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalBaseLanguage.g:1864:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalBaseLanguage.g:1997:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5145,16 +5461,16 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1870:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalBaseLanguage.g:1871:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalBaseLanguage.g:2003:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalBaseLanguage.g:2004:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalBaseLanguage.g:1871:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalBaseLanguage.g:1872:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalBaseLanguage.g:2004:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalBaseLanguage.g:2005:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
 
             			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
             		
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_26);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -5165,22 +5481,22 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             			afterParserOrEnumRuleCall();
             		
-            // InternalBaseLanguage.g:1882:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop21:
+            // InternalBaseLanguage.g:2015:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop24:
             do {
-                int alt21=2;
-                int LA21_0 = input.LA(1);
+                int alt24=2;
+                int LA24_0 = input.LA(1);
 
-                if ( (LA21_0==40) ) {
-                    alt21=1;
+                if ( (LA24_0==44) ) {
+                    alt24=1;
                 }
 
 
-                switch (alt21) {
+                switch (alt24) {
             	case 1 :
-            	    // InternalBaseLanguage.g:1883:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalBaseLanguage.g:2016:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,40,FOLLOW_20); 
+            	    kw=(Token)match(input,44,FOLLOW_17); 
 
             	    				current.merge(kw);
             	    				newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
@@ -5188,7 +5504,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
             	    				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	    			
-            	    pushFollow(FOLLOW_22);
+            	    pushFollow(FOLLOW_26);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -5204,7 +5520,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop21;
+            	    break loop24;
                 }
             } while (true);
 
@@ -5231,7 +5547,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalBaseLanguage.g:1903:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalBaseLanguage.g:2036:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -5239,8 +5555,8 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalBaseLanguage.g:1903:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalBaseLanguage.g:1904:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalBaseLanguage.g:2036:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalBaseLanguage.g:2037:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
              newCompositeNode(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -5267,7 +5583,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalBaseLanguage.g:1910:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalBaseLanguage.g:2043:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -5278,28 +5594,28 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1916:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalBaseLanguage.g:1917:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalBaseLanguage.g:2049:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalBaseLanguage.g:2050:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalBaseLanguage.g:1917:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt22=2;
-            int LA22_0 = input.LA(1);
+            // InternalBaseLanguage.g:2050:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-            if ( (LA22_0==RULE_QUOTED_ID) ) {
-                alt22=1;
+            if ( (LA25_0==RULE_QUOTED_ID) ) {
+                alt25=1;
             }
-            else if ( (LA22_0==RULE_ID) ) {
-                alt22=2;
+            else if ( (LA25_0==RULE_ID) ) {
+                alt25=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 22, 0, input);
+                    new NoViableAltException("", 25, 0, input);
 
                 throw nvae;
             }
-            switch (alt22) {
+            switch (alt25) {
                 case 1 :
-                    // InternalBaseLanguage.g:1918:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalBaseLanguage.g:2051:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 
 
@@ -5312,7 +5628,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1926:3: this_ID_1= RULE_ID
+                    // InternalBaseLanguage.g:2059:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -5347,7 +5663,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalBaseLanguage.g:1937:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalBaseLanguage.g:2070:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -5362,57 +5678,57 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:1943:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalBaseLanguage.g:1944:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalBaseLanguage.g:2076:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalBaseLanguage.g:2077:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalBaseLanguage.g:1944:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt23=6;
+            // InternalBaseLanguage.g:2077:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt26=6;
             switch ( input.LA(1) ) {
-            case 41:
+            case 45:
                 {
-                alt23=1;
+                alt26=1;
                 }
                 break;
-            case 42:
+            case 46:
                 {
-                alt23=2;
+                alt26=2;
                 }
                 break;
-            case 43:
+            case 47:
                 {
-                alt23=3;
+                alt26=3;
                 }
                 break;
-            case 44:
+            case 48:
                 {
-                alt23=4;
+                alt26=4;
                 }
                 break;
-            case 45:
+            case 49:
                 {
-                alt23=5;
+                alt26=5;
                 }
                 break;
-            case 46:
+            case 50:
                 {
-                alt23=6;
+                alt26=6;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 26, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt23) {
+            switch (alt26) {
                 case 1 :
-                    // InternalBaseLanguage.g:1945:3: (enumLiteral_0= '>=' )
+                    // InternalBaseLanguage.g:2078:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalBaseLanguage.g:1945:3: (enumLiteral_0= '>=' )
-                    // InternalBaseLanguage.g:1946:4: enumLiteral_0= '>='
+                    // InternalBaseLanguage.g:2078:3: (enumLiteral_0= '>=' )
+                    // InternalBaseLanguage.g:2079:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,41,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,45,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0());
@@ -5424,12 +5740,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:1953:3: (enumLiteral_1= '>' )
+                    // InternalBaseLanguage.g:2086:3: (enumLiteral_1= '>' )
                     {
-                    // InternalBaseLanguage.g:1953:3: (enumLiteral_1= '>' )
-                    // InternalBaseLanguage.g:1954:4: enumLiteral_1= '>'
+                    // InternalBaseLanguage.g:2086:3: (enumLiteral_1= '>' )
+                    // InternalBaseLanguage.g:2087:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,42,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,46,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1());
@@ -5441,12 +5757,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:1961:3: (enumLiteral_2= '=' )
+                    // InternalBaseLanguage.g:2094:3: (enumLiteral_2= '=' )
                     {
-                    // InternalBaseLanguage.g:1961:3: (enumLiteral_2= '=' )
-                    // InternalBaseLanguage.g:1962:4: enumLiteral_2= '='
+                    // InternalBaseLanguage.g:2094:3: (enumLiteral_2= '=' )
+                    // InternalBaseLanguage.g:2095:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,43,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,47,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2());
@@ -5458,12 +5774,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:1969:3: (enumLiteral_3= '!=' )
+                    // InternalBaseLanguage.g:2102:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalBaseLanguage.g:1969:3: (enumLiteral_3= '!=' )
-                    // InternalBaseLanguage.g:1970:4: enumLiteral_3= '!='
+                    // InternalBaseLanguage.g:2102:3: (enumLiteral_3= '!=' )
+                    // InternalBaseLanguage.g:2103:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,44,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,48,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3());
@@ -5475,12 +5791,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:1977:3: (enumLiteral_4= '<' )
+                    // InternalBaseLanguage.g:2110:3: (enumLiteral_4= '<' )
                     {
-                    // InternalBaseLanguage.g:1977:3: (enumLiteral_4= '<' )
-                    // InternalBaseLanguage.g:1978:4: enumLiteral_4= '<'
+                    // InternalBaseLanguage.g:2110:3: (enumLiteral_4= '<' )
+                    // InternalBaseLanguage.g:2111:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,45,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,49,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4());
@@ -5492,12 +5808,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:1985:3: (enumLiteral_5= '<=' )
+                    // InternalBaseLanguage.g:2118:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalBaseLanguage.g:1985:3: (enumLiteral_5= '<=' )
-                    // InternalBaseLanguage.g:1986:4: enumLiteral_5= '<='
+                    // InternalBaseLanguage.g:2118:3: (enumLiteral_5= '<=' )
+                    // InternalBaseLanguage.g:2119:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,46,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,50,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5());
@@ -5531,7 +5847,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalBaseLanguage.g:1996:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalBaseLanguage.g:2129:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -5542,33 +5858,33 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:2002:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalBaseLanguage.g:2003:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalBaseLanguage.g:2135:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalBaseLanguage.g:2136:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalBaseLanguage.g:2003:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalBaseLanguage.g:2136:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt27=2;
+            int LA27_0 = input.LA(1);
 
-            if ( (LA24_0==47) ) {
-                alt24=1;
+            if ( (LA27_0==51) ) {
+                alt27=1;
             }
-            else if ( (LA24_0==48) ) {
-                alt24=2;
+            else if ( (LA27_0==52) ) {
+                alt27=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 24, 0, input);
+                    new NoViableAltException("", 27, 0, input);
 
                 throw nvae;
             }
-            switch (alt24) {
+            switch (alt27) {
                 case 1 :
-                    // InternalBaseLanguage.g:2004:3: (enumLiteral_0= '+' )
+                    // InternalBaseLanguage.g:2137:3: (enumLiteral_0= '+' )
                     {
-                    // InternalBaseLanguage.g:2004:3: (enumLiteral_0= '+' )
-                    // InternalBaseLanguage.g:2005:4: enumLiteral_0= '+'
+                    // InternalBaseLanguage.g:2137:3: (enumLiteral_0= '+' )
+                    // InternalBaseLanguage.g:2138:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,47,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,51,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0());
@@ -5580,12 +5896,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:2012:3: (enumLiteral_1= '-' )
+                    // InternalBaseLanguage.g:2145:3: (enumLiteral_1= '-' )
                     {
-                    // InternalBaseLanguage.g:2012:3: (enumLiteral_1= '-' )
-                    // InternalBaseLanguage.g:2013:4: enumLiteral_1= '-'
+                    // InternalBaseLanguage.g:2145:3: (enumLiteral_1= '-' )
+                    // InternalBaseLanguage.g:2146:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,48,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,52,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1());
@@ -5619,7 +5935,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalBaseLanguage.g:2023:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalBaseLanguage.g:2156:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -5631,42 +5947,42 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:2029:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalBaseLanguage.g:2030:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalBaseLanguage.g:2162:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalBaseLanguage.g:2163:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalBaseLanguage.g:2030:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt25=3;
+            // InternalBaseLanguage.g:2163:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt28=3;
             switch ( input.LA(1) ) {
-            case 49:
+            case 53:
                 {
-                alt25=1;
+                alt28=1;
                 }
                 break;
-            case 50:
+            case 54:
                 {
-                alt25=2;
+                alt28=2;
                 }
                 break;
-            case 51:
+            case 55:
                 {
-                alt25=3;
+                alt28=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 25, 0, input);
+                    new NoViableAltException("", 28, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt25) {
+            switch (alt28) {
                 case 1 :
-                    // InternalBaseLanguage.g:2031:3: (enumLiteral_0= '*' )
+                    // InternalBaseLanguage.g:2164:3: (enumLiteral_0= '*' )
                     {
-                    // InternalBaseLanguage.g:2031:3: (enumLiteral_0= '*' )
-                    // InternalBaseLanguage.g:2032:4: enumLiteral_0= '*'
+                    // InternalBaseLanguage.g:2164:3: (enumLiteral_0= '*' )
+                    // InternalBaseLanguage.g:2165:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,49,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,53,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0());
@@ -5678,12 +5994,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:2039:3: (enumLiteral_1= '/' )
+                    // InternalBaseLanguage.g:2172:3: (enumLiteral_1= '/' )
                     {
-                    // InternalBaseLanguage.g:2039:3: (enumLiteral_1= '/' )
-                    // InternalBaseLanguage.g:2040:4: enumLiteral_1= '/'
+                    // InternalBaseLanguage.g:2172:3: (enumLiteral_1= '/' )
+                    // InternalBaseLanguage.g:2173:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,50,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,54,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1());
@@ -5695,12 +6011,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:2047:3: (enumLiteral_2= '%' )
+                    // InternalBaseLanguage.g:2180:3: (enumLiteral_2= '%' )
                     {
-                    // InternalBaseLanguage.g:2047:3: (enumLiteral_2= '%' )
-                    // InternalBaseLanguage.g:2048:4: enumLiteral_2= '%'
+                    // InternalBaseLanguage.g:2180:3: (enumLiteral_2= '%' )
+                    // InternalBaseLanguage.g:2181:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,51,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,55,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2());
@@ -5734,7 +6050,7 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalBaseLanguage.g:2058:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalBaseLanguage.g:2191:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -5763,127 +6079,127 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalBaseLanguage.g:2064:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalBaseLanguage.g:2065:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalBaseLanguage.g:2197:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalBaseLanguage.g:2198:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalBaseLanguage.g:2065:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt26=20;
+            // InternalBaseLanguage.g:2198:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt29=20;
             switch ( input.LA(1) ) {
-            case 52:
-                {
-                alt26=1;
-                }
-                break;
-            case 53:
-                {
-                alt26=2;
-                }
-                break;
-            case 54:
-                {
-                alt26=3;
-                }
-                break;
-            case 55:
-                {
-                alt26=4;
-                }
-                break;
             case 56:
                 {
-                alt26=5;
+                alt29=1;
                 }
                 break;
             case 57:
                 {
-                alt26=6;
+                alt29=2;
                 }
                 break;
             case 58:
                 {
-                alt26=7;
+                alt29=3;
                 }
                 break;
             case 59:
                 {
-                alt26=8;
+                alt29=4;
                 }
                 break;
             case 60:
                 {
-                alt26=9;
+                alt29=5;
                 }
                 break;
             case 61:
                 {
-                alt26=10;
+                alt29=6;
                 }
                 break;
             case 62:
                 {
-                alt26=11;
+                alt29=7;
                 }
                 break;
             case 63:
                 {
-                alt26=12;
+                alt29=8;
                 }
                 break;
             case 64:
                 {
-                alt26=13;
+                alt29=9;
                 }
                 break;
             case 65:
                 {
-                alt26=14;
+                alt29=10;
                 }
                 break;
             case 66:
                 {
-                alt26=15;
+                alt29=11;
                 }
                 break;
             case 67:
                 {
-                alt26=16;
+                alt29=12;
                 }
                 break;
             case 68:
                 {
-                alt26=17;
+                alt29=13;
                 }
                 break;
             case 69:
                 {
-                alt26=18;
+                alt29=14;
                 }
                 break;
             case 70:
                 {
-                alt26=19;
+                alt29=15;
                 }
                 break;
             case 71:
                 {
-                alt26=20;
+                alt29=16;
+                }
+                break;
+            case 72:
+                {
+                alt29=17;
+                }
+                break;
+            case 73:
+                {
+                alt29=18;
+                }
+                break;
+            case 74:
+                {
+                alt29=19;
+                }
+                break;
+            case 75:
+                {
+                alt29=20;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 26, 0, input);
+                    new NoViableAltException("", 29, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt26) {
+            switch (alt29) {
                 case 1 :
-                    // InternalBaseLanguage.g:2066:3: (enumLiteral_0= 'Y' )
+                    // InternalBaseLanguage.g:2199:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalBaseLanguage.g:2066:3: (enumLiteral_0= 'Y' )
-                    // InternalBaseLanguage.g:2067:4: enumLiteral_0= 'Y'
+                    // InternalBaseLanguage.g:2199:3: (enumLiteral_0= 'Y' )
+                    // InternalBaseLanguage.g:2200:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,52,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,56,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0());
@@ -5895,12 +6211,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalBaseLanguage.g:2074:3: (enumLiteral_1= 'Z' )
+                    // InternalBaseLanguage.g:2207:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalBaseLanguage.g:2074:3: (enumLiteral_1= 'Z' )
-                    // InternalBaseLanguage.g:2075:4: enumLiteral_1= 'Z'
+                    // InternalBaseLanguage.g:2207:3: (enumLiteral_1= 'Z' )
+                    // InternalBaseLanguage.g:2208:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,53,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,57,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1());
@@ -5912,12 +6228,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalBaseLanguage.g:2082:3: (enumLiteral_2= 'E' )
+                    // InternalBaseLanguage.g:2215:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalBaseLanguage.g:2082:3: (enumLiteral_2= 'E' )
-                    // InternalBaseLanguage.g:2083:4: enumLiteral_2= 'E'
+                    // InternalBaseLanguage.g:2215:3: (enumLiteral_2= 'E' )
+                    // InternalBaseLanguage.g:2216:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,54,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,58,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2());
@@ -5929,12 +6245,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalBaseLanguage.g:2090:3: (enumLiteral_3= 'P' )
+                    // InternalBaseLanguage.g:2223:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalBaseLanguage.g:2090:3: (enumLiteral_3= 'P' )
-                    // InternalBaseLanguage.g:2091:4: enumLiteral_3= 'P'
+                    // InternalBaseLanguage.g:2223:3: (enumLiteral_3= 'P' )
+                    // InternalBaseLanguage.g:2224:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,55,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,59,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3());
@@ -5946,12 +6262,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalBaseLanguage.g:2098:3: (enumLiteral_4= 'T' )
+                    // InternalBaseLanguage.g:2231:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalBaseLanguage.g:2098:3: (enumLiteral_4= 'T' )
-                    // InternalBaseLanguage.g:2099:4: enumLiteral_4= 'T'
+                    // InternalBaseLanguage.g:2231:3: (enumLiteral_4= 'T' )
+                    // InternalBaseLanguage.g:2232:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,56,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,60,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4());
@@ -5963,12 +6279,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalBaseLanguage.g:2106:3: (enumLiteral_5= 'G' )
+                    // InternalBaseLanguage.g:2239:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalBaseLanguage.g:2106:3: (enumLiteral_5= 'G' )
-                    // InternalBaseLanguage.g:2107:4: enumLiteral_5= 'G'
+                    // InternalBaseLanguage.g:2239:3: (enumLiteral_5= 'G' )
+                    // InternalBaseLanguage.g:2240:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,57,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,61,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5());
@@ -5980,12 +6296,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 7 :
-                    // InternalBaseLanguage.g:2114:3: (enumLiteral_6= 'M' )
+                    // InternalBaseLanguage.g:2247:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalBaseLanguage.g:2114:3: (enumLiteral_6= 'M' )
-                    // InternalBaseLanguage.g:2115:4: enumLiteral_6= 'M'
+                    // InternalBaseLanguage.g:2247:3: (enumLiteral_6= 'M' )
+                    // InternalBaseLanguage.g:2248:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,58,FOLLOW_2); 
+                    enumLiteral_6=(Token)match(input,62,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_6, grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6());
@@ -5997,12 +6313,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 8 :
-                    // InternalBaseLanguage.g:2122:3: (enumLiteral_7= 'k' )
+                    // InternalBaseLanguage.g:2255:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalBaseLanguage.g:2122:3: (enumLiteral_7= 'k' )
-                    // InternalBaseLanguage.g:2123:4: enumLiteral_7= 'k'
+                    // InternalBaseLanguage.g:2255:3: (enumLiteral_7= 'k' )
+                    // InternalBaseLanguage.g:2256:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,59,FOLLOW_2); 
+                    enumLiteral_7=(Token)match(input,63,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_7, grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7());
@@ -6014,12 +6330,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 9 :
-                    // InternalBaseLanguage.g:2130:3: (enumLiteral_8= 'h' )
+                    // InternalBaseLanguage.g:2263:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalBaseLanguage.g:2130:3: (enumLiteral_8= 'h' )
-                    // InternalBaseLanguage.g:2131:4: enumLiteral_8= 'h'
+                    // InternalBaseLanguage.g:2263:3: (enumLiteral_8= 'h' )
+                    // InternalBaseLanguage.g:2264:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,60,FOLLOW_2); 
+                    enumLiteral_8=(Token)match(input,64,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_8, grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8());
@@ -6031,12 +6347,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 10 :
-                    // InternalBaseLanguage.g:2138:3: (enumLiteral_9= 'da' )
+                    // InternalBaseLanguage.g:2271:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalBaseLanguage.g:2138:3: (enumLiteral_9= 'da' )
-                    // InternalBaseLanguage.g:2139:4: enumLiteral_9= 'da'
+                    // InternalBaseLanguage.g:2271:3: (enumLiteral_9= 'da' )
+                    // InternalBaseLanguage.g:2272:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,61,FOLLOW_2); 
+                    enumLiteral_9=(Token)match(input,65,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_9, grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9());
@@ -6048,12 +6364,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 11 :
-                    // InternalBaseLanguage.g:2146:3: (enumLiteral_10= 'd' )
+                    // InternalBaseLanguage.g:2279:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalBaseLanguage.g:2146:3: (enumLiteral_10= 'd' )
-                    // InternalBaseLanguage.g:2147:4: enumLiteral_10= 'd'
+                    // InternalBaseLanguage.g:2279:3: (enumLiteral_10= 'd' )
+                    // InternalBaseLanguage.g:2280:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,62,FOLLOW_2); 
+                    enumLiteral_10=(Token)match(input,66,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_10, grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10());
@@ -6065,12 +6381,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 12 :
-                    // InternalBaseLanguage.g:2154:3: (enumLiteral_11= 'c' )
+                    // InternalBaseLanguage.g:2287:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalBaseLanguage.g:2154:3: (enumLiteral_11= 'c' )
-                    // InternalBaseLanguage.g:2155:4: enumLiteral_11= 'c'
+                    // InternalBaseLanguage.g:2287:3: (enumLiteral_11= 'c' )
+                    // InternalBaseLanguage.g:2288:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,63,FOLLOW_2); 
+                    enumLiteral_11=(Token)match(input,67,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_11, grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11());
@@ -6082,12 +6398,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 13 :
-                    // InternalBaseLanguage.g:2162:3: (enumLiteral_12= 'm' )
+                    // InternalBaseLanguage.g:2295:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalBaseLanguage.g:2162:3: (enumLiteral_12= 'm' )
-                    // InternalBaseLanguage.g:2163:4: enumLiteral_12= 'm'
+                    // InternalBaseLanguage.g:2295:3: (enumLiteral_12= 'm' )
+                    // InternalBaseLanguage.g:2296:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,64,FOLLOW_2); 
+                    enumLiteral_12=(Token)match(input,68,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_12, grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12());
@@ -6099,12 +6415,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 14 :
-                    // InternalBaseLanguage.g:2170:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalBaseLanguage.g:2303:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalBaseLanguage.g:2170:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalBaseLanguage.g:2171:4: enumLiteral_13= '\\u00B5'
+                    // InternalBaseLanguage.g:2303:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalBaseLanguage.g:2304:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,65,FOLLOW_2); 
+                    enumLiteral_13=(Token)match(input,69,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_13, grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13());
@@ -6116,12 +6432,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 15 :
-                    // InternalBaseLanguage.g:2178:3: (enumLiteral_14= 'n' )
+                    // InternalBaseLanguage.g:2311:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalBaseLanguage.g:2178:3: (enumLiteral_14= 'n' )
-                    // InternalBaseLanguage.g:2179:4: enumLiteral_14= 'n'
+                    // InternalBaseLanguage.g:2311:3: (enumLiteral_14= 'n' )
+                    // InternalBaseLanguage.g:2312:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,66,FOLLOW_2); 
+                    enumLiteral_14=(Token)match(input,70,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_14, grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14());
@@ -6133,12 +6449,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 16 :
-                    // InternalBaseLanguage.g:2186:3: (enumLiteral_15= 'p' )
+                    // InternalBaseLanguage.g:2319:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalBaseLanguage.g:2186:3: (enumLiteral_15= 'p' )
-                    // InternalBaseLanguage.g:2187:4: enumLiteral_15= 'p'
+                    // InternalBaseLanguage.g:2319:3: (enumLiteral_15= 'p' )
+                    // InternalBaseLanguage.g:2320:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,67,FOLLOW_2); 
+                    enumLiteral_15=(Token)match(input,71,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_15, grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15());
@@ -6150,12 +6466,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 17 :
-                    // InternalBaseLanguage.g:2194:3: (enumLiteral_16= 'f' )
+                    // InternalBaseLanguage.g:2327:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalBaseLanguage.g:2194:3: (enumLiteral_16= 'f' )
-                    // InternalBaseLanguage.g:2195:4: enumLiteral_16= 'f'
+                    // InternalBaseLanguage.g:2327:3: (enumLiteral_16= 'f' )
+                    // InternalBaseLanguage.g:2328:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,68,FOLLOW_2); 
+                    enumLiteral_16=(Token)match(input,72,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_16, grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16());
@@ -6167,12 +6483,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 18 :
-                    // InternalBaseLanguage.g:2202:3: (enumLiteral_17= 'a' )
+                    // InternalBaseLanguage.g:2335:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalBaseLanguage.g:2202:3: (enumLiteral_17= 'a' )
-                    // InternalBaseLanguage.g:2203:4: enumLiteral_17= 'a'
+                    // InternalBaseLanguage.g:2335:3: (enumLiteral_17= 'a' )
+                    // InternalBaseLanguage.g:2336:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,69,FOLLOW_2); 
+                    enumLiteral_17=(Token)match(input,73,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_17, grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17());
@@ -6184,12 +6500,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 19 :
-                    // InternalBaseLanguage.g:2210:3: (enumLiteral_18= 'z' )
+                    // InternalBaseLanguage.g:2343:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalBaseLanguage.g:2210:3: (enumLiteral_18= 'z' )
-                    // InternalBaseLanguage.g:2211:4: enumLiteral_18= 'z'
+                    // InternalBaseLanguage.g:2343:3: (enumLiteral_18= 'z' )
+                    // InternalBaseLanguage.g:2344:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,70,FOLLOW_2); 
+                    enumLiteral_18=(Token)match(input,74,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_18, grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18());
@@ -6201,12 +6517,12 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 20 :
-                    // InternalBaseLanguage.g:2218:3: (enumLiteral_19= 'y' )
+                    // InternalBaseLanguage.g:2351:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalBaseLanguage.g:2218:3: (enumLiteral_19= 'y' )
-                    // InternalBaseLanguage.g:2219:4: enumLiteral_19= 'y'
+                    // InternalBaseLanguage.g:2351:3: (enumLiteral_19= 'y' )
+                    // InternalBaseLanguage.g:2352:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,71,FOLLOW_2); 
+                    enumLiteral_19=(Token)match(input,75,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_19, grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19());
@@ -6241,29 +6557,78 @@ public class InternalBaseLanguageParser extends AbstractInternalAntlrParser {
     // Delegated rules
 
 
+    protected DFA10 dfa10 = new DFA10(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\17\2\uffff\1\7\2\uffff\2\17";
+    static final String dfa_4s = "\1\30\2\67\2\uffff\1\10\2\uffff\2\67";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\3\3\1\1\1\2\13\uffff\1\4\2\uffff\2\3",
+            "\3\7\1\uffff\1\7\1\6\2\7\11\uffff\1\7\13\uffff\1\5\13\7",
+            "\3\7\1\uffff\1\7\1\6\2\7\11\uffff\1\7\13\uffff\1\5\13\7",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\3\7\1\uffff\1\7\1\6\2\7\11\uffff\1\7\13\uffff\1\5\13\7",
+            "\3\7\1\uffff\1\7\1\6\2\7\11\uffff\1\7\13\uffff\1\5\13\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA10 extends DFA {
+
+        public DFA10(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 10;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "736:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     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[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x00018000039401F0L});
+    public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x00180000019401F0L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000010002L});
     public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000000000020002L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00007E0000000002L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0001800000000002L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x000E000000000002L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0007E00000000002L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0018000000000002L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x00E0000000000002L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000080002L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000200000L});
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000100000L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0001800003B401F0L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0018000001B401F0L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000600000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0xFFF0000000000002L,0x00000000000000FFL});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0xFF00000000000002L,0x0000000000000FFFL});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000004000000L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000000FF60000000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000000000180L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000018000000L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000010000000L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000000000180L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000002L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000010000000002L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000020000180L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000040000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000FF600000000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000180000000L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000100000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000800000002L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000100000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/serializer/BaseLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/serializer/BaseLanguageSemanticSequencer.java
index 3a547300..e60ab9c7 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/serializer/BaseLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/serializer/BaseLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -34,7 +36,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.base.dsl.services.BaseLanguageGrammarAccess;
@@ -87,6 +88,12 @@ public class BaseLanguageSemanticSequencer extends AbstractDelegatingSemanticSeq
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -150,9 +157,6 @@ public class BaseLanguageSemanticSequencer extends AbstractDelegatingSemanticSeq
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
@@ -281,6 +285,54 @@ public class BaseLanguageSemanticSequencer extends AbstractDelegatingSemanticSeq
 	}
 	
 	
+	/**
+	 * <pre>
+	 * Contexts:
+	 *     ConstantDefinitionRule returns ConstantDefinition
+	 *
+	 * Constraint:
+	 *     (type=TypeDefinitionRule name=StringOrId value=ExpressionRule)
+	 * </pre>
+	 */
+	protected void sequence_ConstantDefinitionRule(ISerializationContext context, ConstantDefinition semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__TYPE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__TYPE));
+			if (transientValues.isValueTransient(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__NAME) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__NAME));
+			if (transientValues.isValueTransient(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__VALUE) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BasePackage.Literals.CONSTANT_DEFINITION__VALUE));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0(), semanticObject.getType());
+		feeder.accept(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0(), semanticObject.getName());
+		feeder.accept(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0(), semanticObject.getValue());
+		feeder.finish();
+	}
+	
+	
+	/**
+	 * <pre>
+	 * Contexts:
+	 *     LiteralOrReferenceRule returns ConstantReference
+	 *     ValueReferenceRule returns ConstantReference
+	 *     ConstantReferenceRule returns ConstantReference
+	 *
+	 * Constraint:
+	 *     definition=[ConstantDefinition|QualifiedName]
+	 * </pre>
+	 */
+	protected void sequence_ConstantReferenceRule(ISerializationContext context, ConstantReference semanticObject) {
+		if (errorAcceptor != null) {
+			if (transientValues.isValueTransient(semanticObject, BasePackage.Literals.CONSTANT_REFERENCE__DEFINITION) == ValueTransient.YES)
+				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, BasePackage.Literals.CONSTANT_REFERENCE__DEFINITION));
+		}
+		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
+		feeder.accept(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1(), semanticObject.eGet(BasePackage.Literals.CONSTANT_REFERENCE__DEFINITION, false));
+		feeder.finish();
+	}
+	
+	
 	/**
 	 * <pre>
 	 * Contexts:
@@ -628,21 +680,6 @@ public class BaseLanguageSemanticSequencer extends AbstractDelegatingSemanticSeq
 	}
 	
 	
-	/**
-	 * <pre>
-	 * Contexts:
-	 *     LiteralOrReferenceRule returns ValueReference
-	 *     ValueReferenceRule returns ValueReference
-	 *
-	 * Constraint:
-	 *     {ValueReference}
-	 * </pre>
-	 */
-	protected void sequence_ValueReferenceRule(ISerializationContext context, ValueReference semanticObject) {
-		genericSequencer.createSequence(context, semanticObject);
-	}
-	
-	
 	/**
 	 * <pre>
 	 * Contexts:
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/services/BaseLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/services/BaseLanguageGrammarAccess.java
index 55aab7a3..59f3cc08 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/services/BaseLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.base.dsl/src-gen/de/evoal/languages/model/base/dsl/services/BaseLanguageGrammarAccess.java
@@ -488,23 +488,35 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 	}
 	public class ValueReferenceRuleElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.base.dsl.BaseLanguage.ValueReferenceRule");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final Action cValueReferenceAction_0 = (Action)cGroup.eContents().get(0);
-		private final Keyword cValueKeyword_1 = (Keyword)cGroup.eContents().get(1);
+		private final RuleCall cConstantReferenceRuleParserRuleCall = (RuleCall)rule.eContents().get(1);
 		
 		//ValueReferenceRule returns ValueReference:
-		//    {ValueReference} 'value'
+		//    ConstantReferenceRule
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//{ValueReference} 'value'
-		public Group getGroup() { return cGroup; }
+		//ConstantReferenceRule
+		public RuleCall getConstantReferenceRuleParserRuleCall() { return cConstantReferenceRuleParserRuleCall; }
+	}
+	public class ConstantReferenceRuleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.base.dsl.BaseLanguage.ConstantReferenceRule");
+		private final Assignment cDefinitionAssignment = (Assignment)rule.eContents().get(1);
+		private final CrossReference cDefinitionConstantDefinitionCrossReference_0 = (CrossReference)cDefinitionAssignment.eContents().get(0);
+		private final RuleCall cDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1 = (RuleCall)cDefinitionConstantDefinitionCrossReference_0.eContents().get(1);
+		
+		//ConstantReferenceRule returns ConstantReference:
+		//    definition = [ConstantDefinition|QualifiedName]
+		//;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//definition = [ConstantDefinition|QualifiedName]
+		public Assignment getDefinitionAssignment() { return cDefinitionAssignment; }
 		
-		//{ValueReference}
-		public Action getValueReferenceAction_0() { return cValueReferenceAction_0; }
+		//[ConstantDefinition|QualifiedName]
+		public CrossReference getDefinitionConstantDefinitionCrossReference_0() { return cDefinitionConstantDefinitionCrossReference_0; }
 		
-		//'value'
-		public Keyword getValueKeyword_1() { return cValueKeyword_1; }
+		//QualifiedName
+		public RuleCall getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1() { return cDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1; }
 	}
 	public class LiteralRuleElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.base.dsl.BaseLanguage.LiteralRule");
@@ -1158,6 +1170,50 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 		//';'
 		public Keyword getSemicolonKeyword_6() { return cSemicolonKeyword_6; }
 	}
+	public class ConstantDefinitionRuleElements extends AbstractParserRuleElementFinder {
+		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.base.dsl.BaseLanguage.ConstantDefinitionRule");
+		private final Group cGroup = (Group)rule.eContents().get(1);
+		private final Keyword cConstKeyword_0 = (Keyword)cGroup.eContents().get(0);
+		private final Assignment cTypeAssignment_1 = (Assignment)cGroup.eContents().get(1);
+		private final RuleCall cTypeTypeDefinitionRuleParserRuleCall_1_0 = (RuleCall)cTypeAssignment_1.eContents().get(0);
+		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
+		private final RuleCall cNameStringOrIdParserRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
+		private final Keyword cColonEqualsSignKeyword_3 = (Keyword)cGroup.eContents().get(3);
+		private final Assignment cValueAssignment_4 = (Assignment)cGroup.eContents().get(4);
+		private final RuleCall cValueExpressionRuleParserRuleCall_4_0 = (RuleCall)cValueAssignment_4.eContents().get(0);
+		
+		//ConstantDefinitionRule returns ConstantDefinition:
+		//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+		//;
+		@Override public ParserRule getRule() { return rule; }
+		
+		//'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+		public Group getGroup() { return cGroup; }
+		
+		//'const'
+		public Keyword getConstKeyword_0() { return cConstKeyword_0; }
+		
+		//type = TypeDefinitionRule
+		public Assignment getTypeAssignment_1() { return cTypeAssignment_1; }
+		
+		//TypeDefinitionRule
+		public RuleCall getTypeTypeDefinitionRuleParserRuleCall_1_0() { return cTypeTypeDefinitionRuleParserRuleCall_1_0; }
+		
+		//name = StringOrId
+		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
+		
+		//StringOrId
+		public RuleCall getNameStringOrIdParserRuleCall_2_0() { return cNameStringOrIdParserRuleCall_2_0; }
+		
+		//':='
+		public Keyword getColonEqualsSignKeyword_3() { return cColonEqualsSignKeyword_3; }
+		
+		//value = ExpressionRule
+		public Assignment getValueAssignment_4() { return cValueAssignment_4; }
+		
+		//ExpressionRule
+		public RuleCall getValueExpressionRuleParserRuleCall_4_0() { return cValueExpressionRuleParserRuleCall_4_0; }
+	}
 	public class ParameterRuleElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.base.dsl.BaseLanguage.ParameterRule");
 		private final Group cGroup = (Group)rule.eContents().get(1);
@@ -1617,6 +1673,7 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 	private final ParanthesesRuleElements pParanthesesRule;
 	private final CallRuleElements pCallRule;
 	private final ValueReferenceRuleElements pValueReferenceRule;
+	private final ConstantReferenceRuleElements pConstantReferenceRule;
 	private final LiteralRuleElements pLiteralRule;
 	private final NumberLiteralRuleElements pNumberLiteralRule;
 	private final DoubleLiteralRuleElements pDoubleLiteralRule;
@@ -1638,6 +1695,7 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 	private final DataTypeRuleElements pDataTypeRule;
 	private final ArrayTypeRuleElements pArrayTypeRule;
 	private final FunctionDefinitionRuleElements pFunctionDefinitionRule;
+	private final ConstantDefinitionRuleElements pConstantDefinitionRule;
 	private final ParameterRuleElements pParameterRule;
 	private final FunctionNameRuleElements pFunctionNameRule;
 	private final QualifiedNameElements pQualifiedName;
@@ -1676,6 +1734,7 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 		this.pParanthesesRule = new ParanthesesRuleElements();
 		this.pCallRule = new CallRuleElements();
 		this.pValueReferenceRule = new ValueReferenceRuleElements();
+		this.pConstantReferenceRule = new ConstantReferenceRuleElements();
 		this.pLiteralRule = new LiteralRuleElements();
 		this.pNumberLiteralRule = new NumberLiteralRuleElements();
 		this.pDoubleLiteralRule = new DoubleLiteralRuleElements();
@@ -1697,6 +1756,7 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 		this.pDataTypeRule = new DataTypeRuleElements();
 		this.pArrayTypeRule = new ArrayTypeRuleElements();
 		this.pFunctionDefinitionRule = new FunctionDefinitionRuleElements();
+		this.pConstantDefinitionRule = new ConstantDefinitionRuleElements();
 		this.pParameterRule = new ParameterRuleElements();
 		this.pFunctionNameRule = new FunctionNameRuleElements();
 		this.pQualifiedName = new QualifiedNameElements();
@@ -1928,7 +1988,7 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return pValueReferenceRule;
@@ -1938,6 +1998,17 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return pConstantReferenceRule;
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -2200,6 +2271,17 @@ public class BaseLanguageGrammarAccess extends AbstractElementFinder.AbstractGra
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return pConstantDefinitionRule;
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.base.dsl/src/de/evoal/languages/model/base/dsl/BaseLanguage.xtext b/src/languages/de.evoal.languages.model.base.dsl/src/de/evoal/languages/model/base/dsl/BaseLanguage.xtext
index eb549e40..2c414f1a 100644
--- a/src/languages/de.evoal.languages.model.base.dsl/src/de/evoal/languages/model/base/dsl/BaseLanguage.xtext
+++ b/src/languages/de.evoal.languages.model.base.dsl/src/de/evoal/languages/model/base/dsl/BaseLanguage.xtext
@@ -78,7 +78,11 @@ CallRule returns Call:
 
 
 ValueReferenceRule returns ValueReference:
-	{ValueReference} 'value'
+	ConstantReferenceRule
+;
+
+ConstantReferenceRule returns ConstantReference:
+	definition = [ConstantDefinition|QualifiedName]
 ;
 
 LiteralRule returns Literal:
@@ -199,6 +203,10 @@ FunctionDefinitionRule returns FunctionDefinition:
 	'def' type = TypeRule name = StringOrId '(' (parameters+=ParameterRule (',' parameters+=ParameterRule)*)? ')' ';'
 ;
 
+ConstantDefinitionRule returns ConstantDefinition:
+	'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+;
+
 ParameterRule returns Parameter:
 	type = TypeRule name = StringOrId
 ;
diff --git a/src/languages/de.evoal.languages.model.base/model/model.ecore b/src/languages/de.evoal.languages.model.base/model/model.ecore
index ddbe2bee..65b26370 100644
--- a/src/languages/de.evoal.languages.model.base/model/model.ecore
+++ b/src/languages/de.evoal.languages.model.base/model/model.ecore
@@ -363,4 +363,16 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConstantDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//TypeDefinition"
+        containment="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+        iD="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Expression"
+        containment="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ConstantReference" eSuperTypes="#//ValueReference">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" lowerBound="1"
+        eType="#//ConstantDefinition"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/src/languages/de.evoal.languages.model.base/model/model.genmodel b/src/languages/de.evoal.languages.model.base/model/model.genmodel
index c794e025..10ef2aaa 100644
--- a/src/languages/de.evoal.languages.model.base/model/model.genmodel
+++ b/src/languages/de.evoal.languages.model.base/model/model.genmodel
@@ -159,5 +159,13 @@
     <genClasses ecoreClass="model.ecore#//DefinedFunctionName">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//DefinedFunctionName/definition"/>
     </genClasses>
+    <genClasses ecoreClass="model.ecore#//ConstantDefinition">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ConstantDefinition/type"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//ConstantDefinition/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//ConstantDefinition/value"/>
+    </genClasses>
+    <genClasses ecoreClass="model.ecore#//ConstantReference">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference model.ecore#//ConstantReference/definition"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BaseFactory.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BaseFactory.java
index f942f4eb..4eb65155 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BaseFactory.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BaseFactory.java
@@ -318,6 +318,24 @@ public interface BaseFactory extends EFactory {
 	 */
 	DefinedFunctionName createDefinedFunctionName();
 
+	/**
+	 * Returns a new object of class '<em>Constant Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Constant Definition</em>'.
+	 * @generated
+	 */
+	ConstantDefinition createConstantDefinition();
+
+	/**
+	 * Returns a new object of class '<em>Constant Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Constant Reference</em>'.
+	 * @generated
+	 */
+	ConstantReference createConstantReference();
+
 	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BasePackage.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BasePackage.java
index f51f2bc7..fb1244bd 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BasePackage.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/BasePackage.java
@@ -1573,6 +1573,98 @@ public interface BasePackage extends EPackage {
 	 */
 	int DEFINED_FUNCTION_NAME_OPERATION_COUNT = FUNCTION_NAME_OPERATION_COUNT + 0;
 
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.base.impl.ConstantDefinitionImpl <em>Constant Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.base.impl.ConstantDefinitionImpl
+	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getConstantDefinition()
+	 * @generated
+	 */
+	int CONSTANT_DEFINITION = 38;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_DEFINITION__TYPE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_DEFINITION__NAME = 1;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_DEFINITION__VALUE = 2;
+
+	/**
+	 * The number of structural features of the '<em>Constant Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_DEFINITION_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Constant Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_DEFINITION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link de.evoal.languages.model.base.impl.ConstantReferenceImpl <em>Constant Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see de.evoal.languages.model.base.impl.ConstantReferenceImpl
+	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getConstantReference()
+	 * @generated
+	 */
+	int CONSTANT_REFERENCE = 39;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_REFERENCE__DEFINITION = VALUE_REFERENCE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Constant Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_REFERENCE_FEATURE_COUNT = VALUE_REFERENCE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Constant Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONSTANT_REFERENCE_OPERATION_COUNT = VALUE_REFERENCE_OPERATION_COUNT + 0;
+
 	/**
 	 * The meta object id for the '{@link de.evoal.languages.model.base.ComparisonOperator <em>Comparison Operator</em>}' enum.
 	 * <!-- begin-user-doc -->
@@ -1581,7 +1673,7 @@ public interface BasePackage extends EPackage {
 	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getComparisonOperator()
 	 * @generated
 	 */
-	int COMPARISON_OPERATOR = 38;
+	int COMPARISON_OPERATOR = 40;
 
 	/**
 	 * The meta object id for the '{@link de.evoal.languages.model.base.AddOrSubtractOperator <em>Add Or Subtract Operator</em>}' enum.
@@ -1591,7 +1683,7 @@ public interface BasePackage extends EPackage {
 	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getAddOrSubtractOperator()
 	 * @generated
 	 */
-	int ADD_OR_SUBTRACT_OPERATOR = 39;
+	int ADD_OR_SUBTRACT_OPERATOR = 41;
 
 	/**
 	 * The meta object id for the '{@link de.evoal.languages.model.base.MultiplyDivideModuloOperator <em>Multiply Divide Modulo Operator</em>}' enum.
@@ -1601,7 +1693,7 @@ public interface BasePackage extends EPackage {
 	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getMultiplyDivideModuloOperator()
 	 * @generated
 	 */
-	int MULTIPLY_DIVIDE_MODULO_OPERATOR = 40;
+	int MULTIPLY_DIVIDE_MODULO_OPERATOR = 42;
 
 	/**
 	 * The meta object id for the '{@link de.evoal.languages.model.base.Factor <em>Factor</em>}' enum.
@@ -1611,7 +1703,7 @@ public interface BasePackage extends EPackage {
 	 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getFactor()
 	 * @generated
 	 */
-	int FACTOR = 41;
+	int FACTOR = 43;
 
 
 	/**
@@ -2506,6 +2598,70 @@ public interface BasePackage extends EPackage {
 	 */
 	EReference getDefinedFunctionName_Definition();
 
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.base.ConstantDefinition <em>Constant Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constant Definition</em>'.
+	 * @see de.evoal.languages.model.base.ConstantDefinition
+	 * @generated
+	 */
+	EClass getConstantDefinition();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.base.ConstantDefinition#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Type</em>'.
+	 * @see de.evoal.languages.model.base.ConstantDefinition#getType()
+	 * @see #getConstantDefinition()
+	 * @generated
+	 */
+	EReference getConstantDefinition_Type();
+
+	/**
+	 * Returns the meta object for the attribute '{@link de.evoal.languages.model.base.ConstantDefinition#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see de.evoal.languages.model.base.ConstantDefinition#getName()
+	 * @see #getConstantDefinition()
+	 * @generated
+	 */
+	EAttribute getConstantDefinition_Name();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link de.evoal.languages.model.base.ConstantDefinition#getValue <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Value</em>'.
+	 * @see de.evoal.languages.model.base.ConstantDefinition#getValue()
+	 * @see #getConstantDefinition()
+	 * @generated
+	 */
+	EReference getConstantDefinition_Value();
+
+	/**
+	 * Returns the meta object for class '{@link de.evoal.languages.model.base.ConstantReference <em>Constant Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Constant Reference</em>'.
+	 * @see de.evoal.languages.model.base.ConstantReference
+	 * @generated
+	 */
+	EClass getConstantReference();
+
+	/**
+	 * Returns the meta object for the reference '{@link de.evoal.languages.model.base.ConstantReference#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see de.evoal.languages.model.base.ConstantReference#getDefinition()
+	 * @see #getConstantReference()
+	 * @generated
+	 */
+	EReference getConstantReference_Definition();
+
 	/**
 	 * Returns the meta object for enum '{@link de.evoal.languages.model.base.ComparisonOperator <em>Comparison Operator</em>}'.
 	 * <!-- begin-user-doc -->
@@ -3325,6 +3481,58 @@ public interface BasePackage extends EPackage {
 		 */
 		EReference DEFINED_FUNCTION_NAME__DEFINITION = eINSTANCE.getDefinedFunctionName_Definition();
 
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.base.impl.ConstantDefinitionImpl <em>Constant Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.base.impl.ConstantDefinitionImpl
+		 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getConstantDefinition()
+		 * @generated
+		 */
+		EClass CONSTANT_DEFINITION = eINSTANCE.getConstantDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONSTANT_DEFINITION__TYPE = eINSTANCE.getConstantDefinition_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute CONSTANT_DEFINITION__NAME = eINSTANCE.getConstantDefinition_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Value</b></em>' containment reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONSTANT_DEFINITION__VALUE = eINSTANCE.getConstantDefinition_Value();
+
+		/**
+		 * The meta object literal for the '{@link de.evoal.languages.model.base.impl.ConstantReferenceImpl <em>Constant Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see de.evoal.languages.model.base.impl.ConstantReferenceImpl
+		 * @see de.evoal.languages.model.base.impl.BasePackageImpl#getConstantReference()
+		 * @generated
+		 */
+		EClass CONSTANT_REFERENCE = eINSTANCE.getConstantReference();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference CONSTANT_REFERENCE__DEFINITION = eINSTANCE.getConstantReference_Definition();
+
 		/**
 		 * The meta object literal for the '{@link de.evoal.languages.model.base.ComparisonOperator <em>Comparison Operator</em>}' enum.
 		 * <!-- begin-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantDefinition.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantDefinition.java
new file mode 100644
index 00000000..b383c126
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantDefinition.java
@@ -0,0 +1,92 @@
+/**
+ */
+package de.evoal.languages.model.base;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constant Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.base.ConstantDefinition#getType <em>Type</em>}</li>
+ *   <li>{@link de.evoal.languages.model.base.ConstantDefinition#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.base.ConstantDefinition#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.base.BasePackage#getConstantDefinition()
+ * @model
+ * @generated
+ */
+public interface ConstantDefinition extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' containment reference.
+	 * @see #setType(TypeDefinition)
+	 * @see de.evoal.languages.model.base.BasePackage#getConstantDefinition_Type()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	TypeDefinition getType();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.base.ConstantDefinition#getType <em>Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' containment reference.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(TypeDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see de.evoal.languages.model.base.BasePackage#getConstantDefinition_Name()
+	 * @model id="true" required="true"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.base.ConstantDefinition#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Value</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Value</em>' containment reference.
+	 * @see #setValue(Expression)
+	 * @see de.evoal.languages.model.base.BasePackage#getConstantDefinition_Value()
+	 * @model containment="true" required="true"
+	 * @generated
+	 */
+	Expression getValue();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.base.ConstantDefinition#getValue <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Value</em>' containment reference.
+	 * @see #getValue()
+	 * @generated
+	 */
+	void setValue(Expression value);
+
+} // ConstantDefinition
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantReference.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantReference.java
new file mode 100644
index 00000000..7e96ae2e
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/ConstantReference.java
@@ -0,0 +1,45 @@
+/**
+ */
+package de.evoal.languages.model.base;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Constant Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.base.ConstantReference#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see de.evoal.languages.model.base.BasePackage#getConstantReference()
+ * @model
+ * @generated
+ */
+public interface ConstantReference extends ValueReference {
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(ConstantDefinition)
+	 * @see de.evoal.languages.model.base.BasePackage#getConstantReference_Definition()
+	 * @model required="true"
+	 * @generated
+	 */
+	ConstantDefinition getDefinition();
+
+	/**
+	 * Sets the value of the '{@link de.evoal.languages.model.base.ConstantReference#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(ConstantDefinition value);
+
+} // ConstantReference
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BaseFactoryImpl.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BaseFactoryImpl.java
index 1fa3e58c..02e3bf60 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BaseFactoryImpl.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BaseFactoryImpl.java
@@ -90,6 +90,8 @@ public class BaseFactoryImpl extends EFactoryImpl implements BaseFactory {
 			case BasePackage.FUNCTION_DEFINITION: return createFunctionDefinition();
 			case BasePackage.PARAMETER: return createParameter();
 			case BasePackage.DEFINED_FUNCTION_NAME: return createDefinedFunctionName();
+			case BasePackage.CONSTANT_DEFINITION: return createConstantDefinition();
+			case BasePackage.CONSTANT_REFERENCE: return createConstantReference();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -500,6 +502,28 @@ public class BaseFactoryImpl extends EFactoryImpl implements BaseFactory {
 		return definedFunctionName;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ConstantDefinition createConstantDefinition() {
+		ConstantDefinitionImpl constantDefinition = new ConstantDefinitionImpl();
+		return constantDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ConstantReference createConstantReference() {
+		ConstantReferenceImpl constantReference = new ConstantReferenceImpl();
+		return constantReference;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BasePackageImpl.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BasePackageImpl.java
index c556b90e..a33eb283 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BasePackageImpl.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/BasePackageImpl.java
@@ -15,6 +15,8 @@ import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.CallOrLiteralOrReferenceOrParantheses;
 import de.evoal.languages.model.base.ComparisonExpression;
 import de.evoal.languages.model.base.ComparisonOperator;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -329,6 +331,20 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 	 */
 	private EClass definedFunctionNameEClass = null;
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constantDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass constantReferenceEClass = null;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1267,6 +1283,66 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		return (EReference)definedFunctionNameEClass.getEStructuralFeatures().get(0);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getConstantDefinition() {
+		return constantDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConstantDefinition_Type() {
+		return (EReference)constantDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getConstantDefinition_Name() {
+		return (EAttribute)constantDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConstantDefinition_Value() {
+		return (EReference)constantDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getConstantReference() {
+		return constantReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConstantReference_Definition() {
+		return (EReference)constantReferenceEClass.getEStructuralFeatures().get(0);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1459,6 +1535,14 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		definedFunctionNameEClass = createEClass(DEFINED_FUNCTION_NAME);
 		createEReference(definedFunctionNameEClass, DEFINED_FUNCTION_NAME__DEFINITION);
 
+		constantDefinitionEClass = createEClass(CONSTANT_DEFINITION);
+		createEReference(constantDefinitionEClass, CONSTANT_DEFINITION__TYPE);
+		createEAttribute(constantDefinitionEClass, CONSTANT_DEFINITION__NAME);
+		createEReference(constantDefinitionEClass, CONSTANT_DEFINITION__VALUE);
+
+		constantReferenceEClass = createEClass(CONSTANT_REFERENCE);
+		createEReference(constantReferenceEClass, CONSTANT_REFERENCE__DEFINITION);
+
 		// Create enums
 		comparisonOperatorEEnum = createEEnum(COMPARISON_OPERATOR);
 		addOrSubtractOperatorEEnum = createEEnum(ADD_OR_SUBTRACT_OPERATOR);
@@ -1515,6 +1599,7 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		dataTypeEClass.getESuperTypes().add(this.getType());
 		arrayTypeEClass.getESuperTypes().add(this.getType());
 		definedFunctionNameEClass.getESuperTypes().add(this.getFunctionName());
+		constantReferenceEClass.getESuperTypes().add(this.getValueReference());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(expressionEClass, Expression.class, "Expression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1645,6 +1730,14 @@ public class BasePackageImpl extends EPackageImpl implements BasePackage {
 		initEClass(definedFunctionNameEClass, DefinedFunctionName.class, "DefinedFunctionName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getDefinedFunctionName_Definition(), this.getFunctionDefinition(), null, "definition", null, 1, 1, DefinedFunctionName.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(constantDefinitionEClass, ConstantDefinition.class, "ConstantDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getConstantDefinition_Type(), this.getTypeDefinition(), null, "type", null, 1, 1, ConstantDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getConstantDefinition_Name(), ecorePackage.getEString(), "name", null, 1, 1, ConstantDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConstantDefinition_Value(), this.getExpression(), null, "value", null, 1, 1, ConstantDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(constantReferenceEClass, ConstantReference.class, "ConstantReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getConstantReference_Definition(), this.getConstantDefinition(), null, "definition", null, 1, 1, ConstantReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Initialize enums and add enum literals
 		initEEnum(comparisonOperatorEEnum, ComparisonOperator.class, "ComparisonOperator");
 		addEEnumLiteral(comparisonOperatorEEnum, ComparisonOperator.GREATER_THAN);
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantDefinitionImpl.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantDefinitionImpl.java
new file mode 100644
index 00000000..9436dd62
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantDefinitionImpl.java
@@ -0,0 +1,317 @@
+/**
+ */
+package de.evoal.languages.model.base.impl;
+
+import de.evoal.languages.model.base.BasePackage;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.Expression;
+import de.evoal.languages.model.base.TypeDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constant Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.base.impl.ConstantDefinitionImpl#getType <em>Type</em>}</li>
+ *   <li>{@link de.evoal.languages.model.base.impl.ConstantDefinitionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link de.evoal.languages.model.base.impl.ConstantDefinitionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstantDefinitionImpl extends MinimalEObjectImpl.Container implements ConstantDefinition {
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected TypeDefinition type;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getValue() <em>Value</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Expression value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstantDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BasePackage.Literals.CONSTANT_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public TypeDefinition getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetType(TypeDefinition newType, NotificationChain msgs) {
+		TypeDefinition oldType = type;
+		type = newType;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_DEFINITION__TYPE, oldType, newType);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setType(TypeDefinition newType) {
+		if (newType != type) {
+			NotificationChain msgs = null;
+			if (type != null)
+				msgs = ((InternalEObject)type).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BasePackage.CONSTANT_DEFINITION__TYPE, null, msgs);
+			if (newType != null)
+				msgs = ((InternalEObject)newType).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BasePackage.CONSTANT_DEFINITION__TYPE, null, msgs);
+			msgs = basicSetType(newType, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_DEFINITION__TYPE, newType, newType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_DEFINITION__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Expression getValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetValue(Expression newValue, NotificationChain msgs) {
+		Expression oldValue = value;
+		value = newValue;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_DEFINITION__VALUE, oldValue, newValue);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setValue(Expression newValue) {
+		if (newValue != value) {
+			NotificationChain msgs = null;
+			if (value != null)
+				msgs = ((InternalEObject)value).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - BasePackage.CONSTANT_DEFINITION__VALUE, null, msgs);
+			if (newValue != null)
+				msgs = ((InternalEObject)newValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - BasePackage.CONSTANT_DEFINITION__VALUE, null, msgs);
+			msgs = basicSetValue(newValue, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_DEFINITION__VALUE, newValue, newValue));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_DEFINITION__TYPE:
+				return basicSetType(null, msgs);
+			case BasePackage.CONSTANT_DEFINITION__VALUE:
+				return basicSetValue(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_DEFINITION__TYPE:
+				return getType();
+			case BasePackage.CONSTANT_DEFINITION__NAME:
+				return getName();
+			case BasePackage.CONSTANT_DEFINITION__VALUE:
+				return getValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_DEFINITION__TYPE:
+				setType((TypeDefinition)newValue);
+				return;
+			case BasePackage.CONSTANT_DEFINITION__NAME:
+				setName((String)newValue);
+				return;
+			case BasePackage.CONSTANT_DEFINITION__VALUE:
+				setValue((Expression)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_DEFINITION__TYPE:
+				setType((TypeDefinition)null);
+				return;
+			case BasePackage.CONSTANT_DEFINITION__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case BasePackage.CONSTANT_DEFINITION__VALUE:
+				setValue((Expression)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_DEFINITION__TYPE:
+				return type != null;
+			case BasePackage.CONSTANT_DEFINITION__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case BasePackage.CONSTANT_DEFINITION__VALUE:
+				return value != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ConstantDefinitionImpl
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantReferenceImpl.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantReferenceImpl.java
new file mode 100644
index 00000000..ea9974a6
--- /dev/null
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/impl/ConstantReferenceImpl.java
@@ -0,0 +1,158 @@
+/**
+ */
+package de.evoal.languages.model.base.impl;
+
+import de.evoal.languages.model.base.BasePackage;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constant Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link de.evoal.languages.model.base.impl.ConstantReferenceImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ConstantReferenceImpl extends ValueReferenceImpl implements ConstantReference {
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected ConstantDefinition definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ConstantReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return BasePackage.Literals.CONSTANT_REFERENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ConstantDefinition getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (ConstantDefinition)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BasePackage.CONSTANT_REFERENCE__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConstantDefinition basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDefinition(ConstantDefinition newDefinition) {
+		ConstantDefinition oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, BasePackage.CONSTANT_REFERENCE__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_REFERENCE__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_REFERENCE__DEFINITION:
+				setDefinition((ConstantDefinition)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_REFERENCE__DEFINITION:
+				setDefinition((ConstantDefinition)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case BasePackage.CONSTANT_REFERENCE__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ConstantReferenceImpl
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseAdapterFactory.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseAdapterFactory.java
index 32e18ac3..92b546d9 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseAdapterFactory.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseAdapterFactory.java
@@ -220,6 +220,14 @@ public class BaseAdapterFactory extends AdapterFactoryImpl {
 				return createDefinedFunctionNameAdapter();
 			}
 			@Override
+			public Adapter caseConstantDefinition(ConstantDefinition object) {
+				return createConstantDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseConstantReference(ConstantReference object) {
+				return createConstantReferenceAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -771,6 +779,34 @@ public class BaseAdapterFactory extends AdapterFactoryImpl {
 		return null;
 	}
 
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.base.ConstantDefinition <em>Constant Definition</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 de.evoal.languages.model.base.ConstantDefinition
+	 * @generated
+	 */
+	public Adapter createConstantDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link de.evoal.languages.model.base.ConstantReference <em>Constant Reference</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 de.evoal.languages.model.base.ConstantReference
+	 * @generated
+	 */
+	public Adapter createConstantReferenceAdapter() {
+		return null;
+	}
+
 	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseSwitch.java b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseSwitch.java
index 83ee2c75..fc10783c 100644
--- a/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseSwitch.java
+++ b/src/languages/de.evoal.languages.model.base/src-gen/de/evoal/languages/model/base/util/BaseSwitch.java
@@ -326,6 +326,20 @@ public class BaseSwitch<T> extends Switch<T> {
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case BasePackage.CONSTANT_DEFINITION: {
+				ConstantDefinition constantDefinition = (ConstantDefinition)theEObject;
+				T result = caseConstantDefinition(constantDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case BasePackage.CONSTANT_REFERENCE: {
+				ConstantReference constantReference = (ConstantReference)theEObject;
+				T result = caseConstantReference(constantReference);
+				if (result == null) result = caseValueReference(constantReference);
+				if (result == null) result = caseCallOrLiteralOrReferenceOrParantheses(constantReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -900,6 +914,36 @@ public class BaseSwitch<T> extends Switch<T> {
 		return null;
 	}
 
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constant Definition</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>Constant Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseConstantDefinition(ConstantDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Constant Reference</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>Constant Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseConstantReference(ConstantReference object) {
+		return null;
+	}
+
 	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/DataDescriptionLanguageParser.java b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/DataDescriptionLanguageParser.java
index a6e332cf..353351ec 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/DataDescriptionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/DataDescriptionLanguageParser.java
@@ -101,6 +101,7 @@ public class DataDescriptionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -148,6 +149,7 @@ public class DataDescriptionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -168,6 +170,9 @@ public class DataDescriptionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.g b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.g
index 3fdb4b43..a554a291 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.g
+++ b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.g
@@ -651,6 +651,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleLiteralRule
 entryRuleLiteralRule
 :
@@ -801,6 +826,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -1324,15 +1374,21 @@ rule__ValueReferenceRule__Alternatives
 	}
 :
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0()); }
+	)
+	|
+	(
+		{ before(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1()); }
 		ruleDataReferenceRule
-		{ after(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0()); }
+		{ after(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1()); }
 	)
 	|
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2()); }
 		ruleSelfReferenceRule
-		{ after(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1()); }
+		{ after(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2()); }
 	)
 ;
 finally {
@@ -4654,6 +4710,249 @@ finally {
 }
 
 
+rule__TypeDefinitionRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__5__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__TypeDefinitionRule__Group_3__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
 rule__AttributeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -6325,6 +6624,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -6419,6 +6737,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.tokens b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.tokens
index dd4e8e34..48d3dedc 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguage.tokens
@@ -1,4 +1,4 @@
-'!'=83
+'!'=86
 '!='=27
 '%'=34
 '('=70
@@ -7,10 +7,10 @@
 '+'=30
 ','=72
 '-'=31
-'.'=82
+'.'=85
 '/'=33
 ':'=56
-':='=73
+':='=76
 ';'=60
 '<'=28
 '<='=29
@@ -30,7 +30,8 @@
 '\u00B5'=48
 '^'=69
 'a'=52
-'array'=81
+'abstract'=88
+'array'=84
 'boolean'=22
 'c'=46
 'cardinal'=18
@@ -39,16 +40,17 @@
 'da'=44
 'data'=57
 'description'=62
-'expression'=77
+'expression'=80
+'extends'=75
 'f'=51
 'false'=15
-'float'=79
+'float'=82
 'h'=43
-'instance'=75
-'int'=78
+'instance'=78
+'int'=81
 'integer'=21
 'k'=42
-'literal'=74
+'literal'=77
 'm'=47
 'n'=49
 'nominal'=16
@@ -58,16 +60,18 @@
 'quotient'=19
 'real'=20
 'string'=23
-'true'=84
+'true'=87
 'type'=61
 'types'=55
 'use'=59
 'value'=65
-'void'=80
+'void'=83
 'with'=63
 'y'=54
 'z'=53
-'|'=76
+'{'=73
+'|'=79
+'}'=74
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
 RULE_DOUBLE=7
@@ -149,3 +153,7 @@ T__81=81
 T__82=82
 T__83=83
 T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageLexer.java b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageLexer.java
index 811f8864..1af1ccfb 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageLexer.java
@@ -86,14 +86,18 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     public static final int T__48=48;
     public static final int T__49=49;
     public static final int T__44=44;
+    public static final int T__88=88;
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
     public static final int T__84=84;
     public static final int T__41=41;
+    public static final int T__85=85;
     public static final int T__42=42;
+    public static final int T__86=86;
     public static final int T__43=43;
+    public static final int T__87=87;
 
     // delegates
     // delegators
@@ -1298,11 +1302,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:69:7: ( ':=' )
-            // InternalDataDescriptionLanguage.g:69:9: ':='
+            // InternalDataDescriptionLanguage.g:69:7: ( '{' )
+            // InternalDataDescriptionLanguage.g:69:9: '{'
             {
-            match(":="); 
-
+            match('{'); 
 
             }
 
@@ -1319,11 +1322,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:70:7: ( 'literal' )
-            // InternalDataDescriptionLanguage.g:70:9: 'literal'
+            // InternalDataDescriptionLanguage.g:70:7: ( '}' )
+            // InternalDataDescriptionLanguage.g:70:9: '}'
             {
-            match("literal"); 
-
+            match('}'); 
 
             }
 
@@ -1340,10 +1342,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:71:7: ( 'instance' )
-            // InternalDataDescriptionLanguage.g:71:9: 'instance'
+            // InternalDataDescriptionLanguage.g:71:7: ( 'extends' )
+            // InternalDataDescriptionLanguage.g:71:9: 'extends'
             {
-            match("instance"); 
+            match("extends"); 
 
 
             }
@@ -1361,10 +1363,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:72:7: ( '|' )
-            // InternalDataDescriptionLanguage.g:72:9: '|'
+            // InternalDataDescriptionLanguage.g:72:7: ( ':=' )
+            // InternalDataDescriptionLanguage.g:72:9: ':='
             {
-            match('|'); 
+            match(":="); 
+
 
             }
 
@@ -1381,10 +1384,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:73:7: ( 'expression' )
-            // InternalDataDescriptionLanguage.g:73:9: 'expression'
+            // InternalDataDescriptionLanguage.g:73:7: ( 'literal' )
+            // InternalDataDescriptionLanguage.g:73:9: 'literal'
             {
-            match("expression"); 
+            match("literal"); 
 
 
             }
@@ -1402,10 +1405,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:74:7: ( 'int' )
-            // InternalDataDescriptionLanguage.g:74:9: 'int'
+            // InternalDataDescriptionLanguage.g:74:7: ( 'instance' )
+            // InternalDataDescriptionLanguage.g:74:9: 'instance'
             {
-            match("int"); 
+            match("instance"); 
 
 
             }
@@ -1423,11 +1426,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:75:7: ( 'float' )
-            // InternalDataDescriptionLanguage.g:75:9: 'float'
+            // InternalDataDescriptionLanguage.g:75:7: ( '|' )
+            // InternalDataDescriptionLanguage.g:75:9: '|'
             {
-            match("float"); 
-
+            match('|'); 
 
             }
 
@@ -1444,10 +1446,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:76:7: ( 'void' )
-            // InternalDataDescriptionLanguage.g:76:9: 'void'
+            // InternalDataDescriptionLanguage.g:76:7: ( 'expression' )
+            // InternalDataDescriptionLanguage.g:76:9: 'expression'
             {
-            match("void"); 
+            match("expression"); 
 
 
             }
@@ -1465,10 +1467,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:77:7: ( 'array' )
-            // InternalDataDescriptionLanguage.g:77:9: 'array'
+            // InternalDataDescriptionLanguage.g:77:7: ( 'int' )
+            // InternalDataDescriptionLanguage.g:77:9: 'int'
             {
-            match("array"); 
+            match("int"); 
 
 
             }
@@ -1486,10 +1488,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:78:7: ( '.' )
-            // InternalDataDescriptionLanguage.g:78:9: '.'
+            // InternalDataDescriptionLanguage.g:78:7: ( 'float' )
+            // InternalDataDescriptionLanguage.g:78:9: 'float'
             {
-            match('.'); 
+            match("float"); 
+
 
             }
 
@@ -1506,10 +1509,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:79:7: ( '!' )
-            // InternalDataDescriptionLanguage.g:79:9: '!'
+            // InternalDataDescriptionLanguage.g:79:7: ( 'void' )
+            // InternalDataDescriptionLanguage.g:79:9: 'void'
             {
-            match('!'); 
+            match("void"); 
+
 
             }
 
@@ -1526,10 +1530,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:80:7: ( 'true' )
-            // InternalDataDescriptionLanguage.g:80:9: 'true'
+            // InternalDataDescriptionLanguage.g:80:7: ( 'array' )
+            // InternalDataDescriptionLanguage.g:80:9: 'array'
             {
-            match("true"); 
+            match("array"); 
 
 
             }
@@ -1542,11 +1546,93 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__84"
 
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:81:7: ( '.' )
+            // InternalDataDescriptionLanguage.g:81:9: '.'
+            {
+            match('.'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:82:7: ( '!' )
+            // InternalDataDescriptionLanguage.g:82:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:83:7: ( 'true' )
+            // InternalDataDescriptionLanguage.g:83:9: 'true'
+            {
+            match("true"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:84:7: ( 'abstract' )
+            // InternalDataDescriptionLanguage.g:84:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:6569:21: ( '0' .. '9' )
-            // InternalDataDescriptionLanguage.g:6569:23: '0' .. '9'
+            // InternalDataDescriptionLanguage.g:6955:21: ( '0' .. '9' )
+            // InternalDataDescriptionLanguage.g:6955:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1561,11 +1647,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:6571:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalDataDescriptionLanguage.g:6571:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:6957:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalDataDescriptionLanguage.g:6957:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalDataDescriptionLanguage.g:6571:30: ( '+' | '-' )?
+            // InternalDataDescriptionLanguage.g:6957:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1591,7 +1677,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDataDescriptionLanguage.g:6571:41: ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:6957:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1605,7 +1691,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6571:41: RULE_DIGIT
+            	    // InternalDataDescriptionLanguage.g:6957:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1635,10 +1721,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6573:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalDataDescriptionLanguage.g:6573:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:6959:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalDataDescriptionLanguage.g:6959:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalDataDescriptionLanguage.g:6573:12: ( '-' )?
+            // InternalDataDescriptionLanguage.g:6959:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1647,7 +1733,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:6573:12: '-'
+                    // InternalDataDescriptionLanguage.g:6959:12: '-'
                     {
                     match('-'); 
 
@@ -1656,7 +1742,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDataDescriptionLanguage.g:6573:17: ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:6959:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1670,7 +1756,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6573:17: RULE_DIGIT
+            	    // InternalDataDescriptionLanguage.g:6959:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1702,15 +1788,15 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6575:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalDataDescriptionLanguage.g:6575:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDataDescriptionLanguage.g:6961:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalDataDescriptionLanguage.g:6961:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalDataDescriptionLanguage.g:6575:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDataDescriptionLanguage.g:6961:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:6575:16: RULE_INT RULE_EXPONENT
+                    // InternalDataDescriptionLanguage.g:6961:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1718,11 +1804,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:6575:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalDataDescriptionLanguage.g:6961:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalDataDescriptionLanguage.g:6575:52: ( RULE_DIGIT )*
+                    // InternalDataDescriptionLanguage.g:6961:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1735,7 +1821,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalDataDescriptionLanguage.g:6575:52: RULE_DIGIT
+                    	    // InternalDataDescriptionLanguage.g:6961:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1747,7 +1833,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalDataDescriptionLanguage.g:6575:64: ( RULE_EXPONENT )?
+                    // InternalDataDescriptionLanguage.g:6961:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1756,7 +1842,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalDataDescriptionLanguage.g:6575:64: RULE_EXPONENT
+                            // InternalDataDescriptionLanguage.g:6961:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1787,11 +1873,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6577:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalDataDescriptionLanguage.g:6577:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalDataDescriptionLanguage.g:6963:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalDataDescriptionLanguage.g:6963:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalDataDescriptionLanguage.g:6577:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalDataDescriptionLanguage.g:6963:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1807,7 +1893,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6577:20: '\\\\' .
+            	    // InternalDataDescriptionLanguage.g:6963:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1815,7 +1901,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDataDescriptionLanguage.g:6577:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalDataDescriptionLanguage.g:6963:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1852,11 +1938,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6579:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalDataDescriptionLanguage.g:6579:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalDataDescriptionLanguage.g:6965:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalDataDescriptionLanguage.g:6965:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalDataDescriptionLanguage.g:6579:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalDataDescriptionLanguage.g:6965:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1872,7 +1958,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6579:24: '\\\\' .
+            	    // InternalDataDescriptionLanguage.g:6965:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1880,7 +1966,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDataDescriptionLanguage.g:6579:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalDataDescriptionLanguage.g:6965:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1917,10 +2003,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6581:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalDataDescriptionLanguage.g:6581:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDataDescriptionLanguage.g:6967:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalDataDescriptionLanguage.g:6967:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalDataDescriptionLanguage.g:6581:11: ( '^' )?
+            // InternalDataDescriptionLanguage.g:6967:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1929,7 +2015,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:6581:11: '^'
+                    // InternalDataDescriptionLanguage.g:6967:11: '^'
                     {
                     match('^'); 
 
@@ -1947,7 +2033,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalDataDescriptionLanguage.g:6581:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDataDescriptionLanguage.g:6967:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1996,12 +2082,12 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6583:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalDataDescriptionLanguage.g:6583:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalDataDescriptionLanguage.g:6969:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalDataDescriptionLanguage.g:6969:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalDataDescriptionLanguage.g:6583:24: ( options {greedy=false; } : . )*
+            // InternalDataDescriptionLanguage.g:6969:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2026,7 +2112,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6583:52: .
+            	    // InternalDataDescriptionLanguage.g:6969:52: .
             	    {
             	    matchAny(); 
 
@@ -2056,12 +2142,12 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6585:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalDataDescriptionLanguage.g:6585:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalDataDescriptionLanguage.g:6971:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalDataDescriptionLanguage.g:6971:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalDataDescriptionLanguage.g:6585:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalDataDescriptionLanguage.g:6971:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2074,7 +2160,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:6585:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalDataDescriptionLanguage.g:6971: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();
@@ -2094,7 +2180,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalDataDescriptionLanguage.g:6585:40: ( ( '\\r' )? '\\n' )?
+            // InternalDataDescriptionLanguage.g:6971:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2103,9 +2189,9 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:6585:41: ( '\\r' )? '\\n'
+                    // InternalDataDescriptionLanguage.g:6971:41: ( '\\r' )? '\\n'
                     {
-                    // InternalDataDescriptionLanguage.g:6585:41: ( '\\r' )?
+                    // InternalDataDescriptionLanguage.g:6971:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2114,7 +2200,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalDataDescriptionLanguage.g:6585:41: '\\r'
+                            // InternalDataDescriptionLanguage.g:6971:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2146,10 +2232,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6587:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalDataDescriptionLanguage.g:6587:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDataDescriptionLanguage.g:6973:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalDataDescriptionLanguage.g:6973:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalDataDescriptionLanguage.g:6587:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDataDescriptionLanguage.g:6973:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2203,8 +2289,8 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:6589:16: ( . )
-            // InternalDataDescriptionLanguage.g:6589:18: .
+            // InternalDataDescriptionLanguage.g:6975:16: ( . )
+            // InternalDataDescriptionLanguage.g:6975:18: .
             {
             matchAny(); 
 
@@ -2219,8 +2305,8 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalDataDescriptionLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=79;
+        // InternalDataDescriptionLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=83;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2714,63 +2800,91 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 }
                 break;
             case 71 :
-                // InternalDataDescriptionLanguage.g:1:430: RULE_INT
+                // InternalDataDescriptionLanguage.g:1:430: T__85
                 {
-                mRULE_INT(); 
+                mT__85(); 
 
                 }
                 break;
             case 72 :
-                // InternalDataDescriptionLanguage.g:1:439: RULE_DOUBLE
+                // InternalDataDescriptionLanguage.g:1:436: T__86
                 {
-                mRULE_DOUBLE(); 
+                mT__86(); 
 
                 }
                 break;
             case 73 :
-                // InternalDataDescriptionLanguage.g:1:451: RULE_STRING
+                // InternalDataDescriptionLanguage.g:1:442: T__87
                 {
-                mRULE_STRING(); 
+                mT__87(); 
 
                 }
                 break;
             case 74 :
-                // InternalDataDescriptionLanguage.g:1:463: RULE_QUOTED_ID
+                // InternalDataDescriptionLanguage.g:1:448: T__88
                 {
-                mRULE_QUOTED_ID(); 
+                mT__88(); 
 
                 }
                 break;
             case 75 :
-                // InternalDataDescriptionLanguage.g:1:478: RULE_ID
+                // InternalDataDescriptionLanguage.g:1:454: RULE_INT
                 {
-                mRULE_ID(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 76 :
-                // InternalDataDescriptionLanguage.g:1:486: RULE_ML_COMMENT
+                // InternalDataDescriptionLanguage.g:1:463: RULE_DOUBLE
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 77 :
-                // InternalDataDescriptionLanguage.g:1:502: RULE_SL_COMMENT
+                // InternalDataDescriptionLanguage.g:1:475: RULE_STRING
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 78 :
-                // InternalDataDescriptionLanguage.g:1:518: RULE_WS
+                // InternalDataDescriptionLanguage.g:1:487: RULE_QUOTED_ID
                 {
-                mRULE_WS(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 79 :
-                // InternalDataDescriptionLanguage.g:1:526: RULE_ANY_OTHER
+                // InternalDataDescriptionLanguage.g:1:502: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 80 :
+                // InternalDataDescriptionLanguage.g:1:510: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 81 :
+                // InternalDataDescriptionLanguage.g:1:526: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 82 :
+                // InternalDataDescriptionLanguage.g:1:542: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 83 :
+                // InternalDataDescriptionLanguage.g:1:550: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2834,97 +2948,98 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "6575:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "6961:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\75\1\77\1\74\1\104\5\74\1\113\1\uffff\1\116\1\120\1\uffff\1\122\1\uffff\1\127\1\uffff\1\131\1\132\1\133\1\134\1\135\1\136\1\137\1\140\1\141\1\144\1\145\1\uffff\1\147\1\151\1\152\1\153\1\74\1\157\1\74\1\uffff\5\74\1\170\3\uffff\1\74\1\uffff\1\74\1\uffff\1\u0080\2\71\3\uffff\2\74\2\uffff\1\74\1\uffff\1\74\1\u0089\2\74\1\uffff\5\74\11\uffff\1\u0080\16\uffff\1\u0093\1\74\4\uffff\1\74\3\uffff\2\74\2\uffff\1\74\1\uffff\3\74\1\u009c\2\74\4\uffff\1\74\1\uffff\1\74\6\uffff\4\74\1\uffff\4\74\1\u00aa\4\74\1\uffff\4\74\1\u00b3\3\74\1\uffff\1\u00b7\1\u00b8\11\74\1\u00c2\1\74\1\uffff\3\74\1\u00c7\2\74\1\u00cb\1\u00cc\1\uffff\1\u00cd\1\74\1\u00cf\2\uffff\2\74\1\u00d2\1\u00d3\5\74\1\uffff\4\74\1\uffff\1\74\1\u00de\1\u00df\3\uffff\1\u00e0\1\uffff\2\74\2\uffff\10\74\1\u00eb\1\74\3\uffff\2\74\1\u00ef\1\u00f0\3\74\1\u00f4\1\74\1\u00f6\1\uffff\1\74\1\u00f8\1\74\2\uffff\1\u00fa\1\74\1\u00fc\1\uffff\1\u00fd\1\uffff\1\74\1\uffff\1\74\1\uffff\1\74\2\uffff\4\74\1\u0105\1\u0106\1\u0107\3\uffff";
+        "\1\uffff\1\76\1\101\1\77\1\106\5\77\1\115\1\uffff\1\120\1\122\1\uffff\1\124\1\uffff\1\131\1\uffff\1\133\1\134\1\135\1\136\1\137\1\140\1\141\1\142\1\143\1\146\1\147\1\uffff\1\151\1\154\1\155\1\156\1\77\1\162\1\77\1\uffff\5\77\1\173\5\uffff\2\77\2\uffff\1\u0085\2\73\3\uffff\2\77\2\uffff\1\77\1\uffff\1\77\1\u008e\2\77\1\uffff\5\77\11\uffff\1\u0085\16\uffff\1\u0098\1\77\4\uffff\2\77\3\uffff\2\77\2\uffff\1\77\1\uffff\3\77\1\u00a2\2\77\6\uffff\2\77\7\uffff\4\77\1\uffff\4\77\1\u00b1\4\77\1\uffff\5\77\1\u00bb\3\77\1\uffff\1\u00bf\1\u00c0\12\77\1\u00cb\1\77\1\uffff\3\77\1\u00d0\3\77\1\u00d5\1\u00d6\1\uffff\1\u00d7\1\77\1\u00d9\2\uffff\3\77\1\u00dd\1\u00de\5\77\1\uffff\4\77\1\uffff\1\77\1\u00e9\1\77\1\u00eb\3\uffff\1\u00ec\1\uffff\3\77\2\uffff\10\77\1\u00f8\1\77\1\uffff\1\77\2\uffff\3\77\1\u00fe\1\u00ff\3\77\1\u0103\1\77\1\u0105\1\uffff\2\77\1\u0108\1\77\1\u010a\2\uffff\1\u010b\1\77\1\u010d\1\uffff\1\u010e\1\uffff\1\77\1\u0110\1\uffff\1\77\2\uffff\1\77\2\uffff\1\77\1\uffff\3\77\1\u0117\1\u0118\1\u0119\3\uffff";
     static final String DFA17_eofS =
-        "\u0108\uffff";
+        "\u011a\uffff";
     static final String DFA17_minS =
-        "\1\0\2\60\1\146\1\60\1\165\1\145\1\156\1\157\1\164\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\162\1\75\1\163\1\uffff\1\151\1\141\1\122\1\117\1\116\1\101\3\uffff\1\151\1\uffff\1\170\1\uffff\1\56\2\0\3\uffff\1\154\1\157\2\uffff\1\155\1\uffff\1\144\1\60\1\162\1\156\1\uffff\1\157\1\141\1\163\1\157\1\162\11\uffff\1\56\16\uffff\1\60\1\163\4\uffff\1\162\3\uffff\1\160\1\165\2\uffff\1\145\1\uffff\1\164\1\154\1\151\1\60\1\122\1\104\4\uffff\1\164\1\uffff\1\160\6\uffff\1\163\1\141\2\151\1\uffff\1\144\1\163\1\164\1\154\1\60\1\164\1\154\1\151\1\141\1\uffff\1\143\1\141\2\145\1\60\1\150\1\165\1\144\1\uffff\2\60\1\145\1\162\1\145\1\164\2\156\1\151\1\164\1\151\1\60\1\147\1\uffff\1\141\1\145\1\156\1\60\1\162\1\171\2\60\1\uffff\1\60\1\145\1\60\2\uffff\1\162\1\145\2\60\2\141\1\156\1\162\1\145\1\uffff\1\145\1\156\1\141\1\147\1\uffff\1\151\2\60\3\uffff\1\60\1\uffff\1\141\1\163\2\uffff\2\154\2\141\1\156\1\162\1\143\1\156\1\60\1\160\3\uffff\1\154\1\163\2\60\1\154\1\151\1\164\1\60\1\145\1\60\1\uffff\1\164\1\60\1\151\2\uffff\1\60\1\156\1\60\1\uffff\1\60\1\uffff\1\151\1\uffff\1\157\1\uffff\1\164\2\uffff\1\157\1\156\1\163\1\156\3\60\3\uffff";
+        "\1\0\2\60\1\146\1\60\1\165\1\145\1\156\1\157\1\164\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\162\1\75\1\163\1\uffff\1\151\1\141\1\122\1\117\1\116\1\101\5\uffff\1\170\1\151\2\uffff\1\56\2\0\3\uffff\1\154\1\157\2\uffff\1\155\1\uffff\1\144\1\60\1\162\1\156\1\uffff\1\157\1\141\1\163\1\157\1\162\11\uffff\1\56\16\uffff\1\60\1\163\4\uffff\1\162\1\163\3\uffff\1\160\1\165\2\uffff\1\145\1\uffff\1\164\1\154\1\151\1\60\1\122\1\104\6\uffff\1\160\1\164\7\uffff\1\163\1\141\2\151\1\uffff\1\144\1\163\1\164\1\154\1\60\1\164\1\154\1\151\1\141\1\uffff\1\143\1\141\1\164\2\145\1\60\1\150\1\165\1\144\1\uffff\2\60\1\145\1\162\2\145\1\164\2\156\1\151\1\164\1\151\1\60\1\147\1\uffff\1\141\1\145\1\156\1\60\1\162\1\171\1\162\2\60\1\uffff\1\60\1\145\1\60\2\uffff\1\156\1\145\1\162\2\60\2\141\1\156\1\162\1\145\1\uffff\1\145\1\156\1\141\1\147\1\uffff\1\151\1\60\1\141\1\60\3\uffff\1\60\1\uffff\1\144\1\163\1\141\2\uffff\2\154\2\141\1\156\1\162\1\143\1\156\1\60\1\160\1\uffff\1\143\2\uffff\2\163\1\154\2\60\1\154\1\151\1\164\1\60\1\145\1\60\1\uffff\2\164\1\60\1\151\1\60\2\uffff\1\60\1\156\1\60\1\uffff\1\60\1\uffff\1\151\1\60\1\uffff\1\157\2\uffff\1\164\2\uffff\1\157\1\uffff\1\156\1\163\1\156\3\60\3\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\2\172\1\162\1\172\1\165\1\145\1\156\1\157\1\164\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\171\1\75\1\163\1\uffff\1\151\1\157\1\122\1\117\1\116\1\172\3\uffff\1\151\1\uffff\1\170\1\uffff\1\145\2\uffff\3\uffff\1\154\1\157\2\uffff\1\155\1\uffff\1\144\1\172\1\162\1\156\1\uffff\1\157\1\141\1\164\1\157\1\162\11\uffff\1\145\16\uffff\1\172\1\163\4\uffff\1\162\3\uffff\1\160\1\165\2\uffff\1\145\1\uffff\1\164\1\154\1\151\1\172\1\122\1\104\4\uffff\1\164\1\uffff\1\160\6\uffff\1\163\1\141\2\151\1\uffff\1\144\1\163\1\164\1\154\1\172\1\164\1\154\1\151\1\141\1\uffff\1\143\1\141\2\145\1\172\1\150\1\165\1\144\1\uffff\2\172\1\145\1\162\1\145\1\164\2\156\1\151\1\164\1\151\1\172\1\147\1\uffff\1\141\1\145\1\156\1\172\1\162\1\171\2\172\1\uffff\1\172\1\145\1\172\2\uffff\1\162\1\145\2\172\2\141\1\156\1\162\1\145\1\uffff\1\145\1\156\1\141\1\147\1\uffff\1\151\2\172\3\uffff\1\172\1\uffff\1\141\1\163\2\uffff\2\154\2\141\1\156\1\162\1\143\1\156\1\172\1\160\3\uffff\1\154\1\163\2\172\1\154\1\151\1\164\1\172\1\145\1\172\1\uffff\1\164\1\172\1\151\2\uffff\1\172\1\156\1\172\1\uffff\1\172\1\uffff\1\151\1\uffff\1\157\1\uffff\1\164\2\uffff\1\157\1\156\1\163\1\156\3\172\3\uffff";
+        "\1\uffff\2\172\1\162\1\172\1\165\1\145\1\156\1\157\1\164\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\171\1\75\1\163\1\uffff\1\151\1\157\1\122\1\117\1\116\1\172\5\uffff\1\170\1\151\2\uffff\1\145\2\uffff\3\uffff\1\154\1\157\2\uffff\1\155\1\uffff\1\144\1\172\1\162\1\156\1\uffff\1\157\1\141\1\164\1\157\1\162\11\uffff\1\145\16\uffff\1\172\1\163\4\uffff\1\162\1\163\3\uffff\1\160\1\165\2\uffff\1\145\1\uffff\1\164\1\154\1\151\1\172\1\122\1\104\6\uffff\2\164\7\uffff\1\163\1\141\2\151\1\uffff\1\144\1\163\1\164\1\154\1\172\1\164\1\154\1\151\1\141\1\uffff\1\143\1\141\1\164\2\145\1\172\1\150\1\165\1\144\1\uffff\2\172\1\145\1\162\2\145\1\164\2\156\1\151\1\164\1\151\1\172\1\147\1\uffff\1\141\1\145\1\156\1\172\1\162\1\171\1\162\2\172\1\uffff\1\172\1\145\1\172\2\uffff\1\156\1\145\1\162\2\172\2\141\1\156\1\162\1\145\1\uffff\1\145\1\156\1\141\1\147\1\uffff\1\151\1\172\1\141\1\172\3\uffff\1\172\1\uffff\1\144\1\163\1\141\2\uffff\2\154\2\141\1\156\1\162\1\143\1\156\1\172\1\160\1\uffff\1\143\2\uffff\2\163\1\154\2\172\1\154\1\151\1\164\1\172\1\145\1\172\1\uffff\2\164\1\172\1\151\1\172\2\uffff\1\172\1\156\1\172\1\uffff\1\172\1\uffff\1\151\1\172\1\uffff\1\157\2\uffff\1\164\2\uffff\1\157\1\uffff\1\156\1\163\1\156\3\172\3\uffff";
     static final String DFA17_acceptS =
-        "\13\uffff\1\14\2\uffff\1\20\1\uffff\1\22\1\uffff\1\24\13\uffff\1\42\7\uffff\1\56\6\uffff\1\70\1\71\1\72\1\uffff\1\76\1\uffff\1\104\3\uffff\1\113\1\116\1\117\2\uffff\1\113\1\45\1\uffff\1\43\4\uffff\1\40\5\uffff\1\12\1\13\1\14\1\15\1\105\1\17\1\16\1\20\1\21\1\uffff\1\22\1\114\1\115\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\2\uffff\1\37\1\41\1\42\1\44\1\uffff\1\46\1\47\1\50\2\uffff\1\73\1\52\1\uffff\1\56\6\uffff\1\67\1\70\1\71\1\72\1\uffff\1\76\1\uffff\1\104\1\107\1\110\1\111\1\112\1\116\4\uffff\1\62\11\uffff\1\36\10\uffff\1\64\15\uffff\1\100\10\uffff\1\55\3\uffff\1\65\1\66\11\uffff\1\6\4\uffff\1\53\3\uffff\1\57\1\106\1\61\1\uffff\1\102\2\uffff\1\1\1\101\12\uffff\1\103\1\51\1\63\12\uffff\1\11\3\uffff\1\2\1\3\3\uffff\1\7\1\uffff\1\10\1\uffff\1\74\1\uffff\1\4\1\uffff\1\5\1\75\7\uffff\1\77\1\54\1\60";
+        "\13\uffff\1\14\2\uffff\1\20\1\uffff\1\22\1\uffff\1\24\13\uffff\1\42\7\uffff\1\56\6\uffff\1\70\1\71\1\72\1\73\1\74\2\uffff\1\101\1\107\3\uffff\1\117\1\122\1\123\2\uffff\1\45\1\117\1\uffff\1\43\4\uffff\1\40\5\uffff\1\12\1\13\1\14\1\15\1\110\1\17\1\16\1\20\1\21\1\uffff\1\22\1\120\1\121\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35\2\uffff\1\37\1\41\1\42\1\44\2\uffff\1\46\1\47\1\50\2\uffff\1\76\1\52\1\uffff\1\56\6\uffff\1\67\1\70\1\71\1\72\1\73\1\74\2\uffff\1\101\1\107\1\113\1\114\1\115\1\116\1\122\4\uffff\1\62\11\uffff\1\36\11\uffff\1\64\16\uffff\1\103\11\uffff\1\55\3\uffff\1\65\1\66\12\uffff\1\6\4\uffff\1\53\4\uffff\1\57\1\111\1\61\1\uffff\1\105\3\uffff\1\1\1\104\12\uffff\1\106\1\uffff\1\51\1\63\13\uffff\1\11\5\uffff\1\2\1\3\3\uffff\1\7\1\uffff\1\10\2\uffff\1\75\1\uffff\1\77\1\4\1\uffff\1\5\1\100\1\uffff\1\112\6\uffff\1\102\1\54\1\60";
     static final String DFA17_specialS =
-        "\1\2\64\uffff\1\0\1\1\u00d1\uffff}>";
+        "\1\1\66\uffff\1\2\1\0\u00e1\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\71\2\70\2\71\1\70\22\71\1\70\1\14\1\65\2\71\1\22\1\71\1\66\1\55\1\56\1\20\1\16\1\57\1\17\1\63\1\21\12\64\1\44\1\46\1\15\1\13\1\12\2\71\1\53\3\67\1\25\1\67\1\30\5\67\1\31\1\67\1\51\1\26\3\67\1\27\3\67\1\52\1\23\1\24\3\71\1\54\1\67\1\71\1\40\1\10\1\4\1\34\1\62\1\1\1\67\1\33\1\7\1\67\1\32\1\60\1\35\1\2\1\3\1\37\1\5\1\6\1\11\1\43\1\45\1\50\1\47\1\67\1\42\1\41\1\71\1\61\70\71\1\36\uff4a\71",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\72\12\74\1\73\16\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\16\74\1\76\13\74",
-            "\1\101\13\uffff\1\100",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\102\15\74\1\103\13\74",
-            "\1\105",
-            "\1\106",
+            "\11\73\2\72\2\73\1\72\22\73\1\72\1\14\1\67\2\73\1\22\1\73\1\70\1\55\1\56\1\20\1\16\1\57\1\17\1\65\1\21\12\66\1\44\1\46\1\15\1\13\1\12\2\73\1\53\3\71\1\25\1\71\1\30\5\71\1\31\1\71\1\51\1\26\3\71\1\27\3\71\1\52\1\23\1\24\3\73\1\54\1\71\1\73\1\40\1\10\1\4\1\34\1\62\1\1\1\71\1\33\1\7\1\71\1\32\1\63\1\35\1\2\1\3\1\37\1\5\1\6\1\11\1\43\1\45\1\50\1\47\1\71\1\42\1\41\1\60\1\64\1\61\67\73\1\36\uff4a\73",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\1\74\12\77\1\75\16\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\16\77\1\100\13\77",
+            "\1\103\13\uffff\1\102",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\1\104\15\77\1\105\13\77",
             "\1\107",
             "\1\110",
             "\1\111",
             "\1\112",
+            "\1\113",
+            "\1\114",
             "",
-            "\1\115",
             "\1\117",
+            "\1\121",
+            "",
+            "\12\125",
+            "",
+            "\1\127\4\uffff\1\130",
+            "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\1\144\3\77\1\145\25\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\1\77\1\153\17\77\1\152\10\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\160\6\uffff\1\157",
+            "\1\161",
+            "\1\163",
             "",
-            "\12\123",
-            "",
-            "\1\125\4\uffff\1\126",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\142\3\74\1\143\25\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\21\74\1\150\10\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\155\6\uffff\1\154",
-            "\1\156",
-            "\1\160",
-            "",
-            "\1\162",
-            "\1\163\15\uffff\1\164",
             "\1\165",
-            "\1\166",
-            "\1\167",
-            "\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\166\15\uffff\1\167",
+            "\1\170",
+            "\1\171",
+            "\1\172",
+            "\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
             "",
             "",
-            "\1\174",
             "",
-            "\1\176",
             "",
-            "\1\u0081\1\uffff\12\123\53\uffff\1\u0081",
-            "\0\u0082",
-            "\0\u0083",
+            "\1\u0081",
+            "\1\u0082",
             "",
             "",
+            "\1\u0086\1\uffff\12\125\53\uffff\1\u0086",
+            "\0\u0087",
+            "\0\u0088",
             "",
-            "\1\u0085",
-            "\1\u0086",
             "",
             "",
-            "\1\u0087",
-            "",
-            "\1\u0088",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u008a",
             "\1\u008b",
             "",
+            "",
             "\1\u008c",
+            "",
             "\1\u008d",
-            "\1\u008f\1\u008e",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u008f",
             "\1\u0090",
-            "\1\u0091",
             "",
+            "\1\u0091",
+            "\1\u0092",
+            "\1\u0094\1\u0093",
+            "\1\u0095",
+            "\1\u0096",
             "",
             "",
             "",
@@ -2933,8 +3048,8 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u0081\1\uffff\12\123\53\uffff\1\u0081",
             "",
+            "\1\u0086\1\uffff\12\125\53\uffff\1\u0086",
             "",
             "",
             "",
@@ -2948,169 +3063,186 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u0092\6\74",
-            "\1\u0094",
             "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\23\77\1\u0097\6\77",
+            "\1\u0099",
             "",
             "",
             "",
-            "\1\u0095",
             "",
+            "\1\u009a",
+            "\1\u009b",
             "",
             "",
-            "\1\u0096",
-            "\1\u0097",
             "",
+            "\1\u009c",
+            "\1\u009d",
             "",
-            "\1\u0098",
             "",
-            "\1\u0099",
-            "\1\u009a",
-            "\1\u009b",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u009d",
             "\1\u009e",
             "",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u00a3",
+            "\1\u00a4",
             "",
             "",
             "",
-            "\1\u009f",
             "",
-            "\1\u00a0",
+            "",
+            "",
+            "\1\u00a6\3\uffff\1\u00a5",
+            "\1\u00a7",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00a1",
-            "\1\u00a2",
-            "\1\u00a3",
-            "\1\u00a4",
             "",
-            "\1\u00a5",
-            "\1\u00a6",
-            "\1\u00a7",
             "\1\u00a8",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\4\74\1\u00a9\25\74",
+            "\1\u00a9",
+            "\1\u00aa",
             "\1\u00ab",
+            "",
             "\1\u00ac",
             "\1\u00ad",
             "\1\u00ae",
-            "",
             "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\4\77\1\u00b0\25\77",
             "\1\u00b2",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00b3",
             "\1\u00b4",
             "\1\u00b5",
-            "\1\u00b6",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
             "\1\u00b9",
             "\1\u00ba",
-            "\1\u00bb",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
-            "\1\u00bf",
-            "\1\u00c0",
+            "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00c1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c2",
             "\1\u00c3",
-            "",
             "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c7",
             "\1\u00c8",
             "\1\u00c9",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\22\74\1\u00ca\7\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ca",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u00cc",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00cd",
             "\1\u00ce",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
-            "\1\u00d0",
+            "\1\u00cf",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00d1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00d4",
-            "\1\u00d5",
-            "\1\u00d6",
-            "\1\u00d7",
+            "\1\u00d2",
+            "\1\u00d3",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\22\77\1\u00d4\7\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00d8",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "",
             "",
-            "\1\u00d9",
             "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
-            "",
-            "\1\u00dd",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u00df",
+            "\1\u00e0",
             "\1\u00e1",
             "\1\u00e2",
-            "",
-            "",
             "\1\u00e3",
+            "",
             "\1\u00e4",
             "\1\u00e5",
             "\1\u00e6",
             "\1\u00e7",
+            "",
             "\1\u00e8",
-            "\1\u00e9",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00ea",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00ec",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
             "",
             "",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "",
             "\1\u00ed",
             "\1\u00ee",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ef",
+            "",
+            "",
+            "\1\u00f0",
             "\1\u00f1",
             "\1\u00f2",
             "\1\u00f3",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00f4",
             "\1\u00f5",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\1\u00f6",
             "\1\u00f7",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "\1\u00f9",
             "",
+            "\1\u00fa",
+            "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00fb",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u0104",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0106",
+            "\1\u0107",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u0109",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
-            "\1\u00fe",
             "",
-            "\1\u00ff",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\1\u010c",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
-            "\1\u0100",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
+            "\1\u010f",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "",
+            "\1\u0111",
+            "",
+            "",
+            "\1\u0112",
             "",
-            "\1\u0101",
-            "\1\u0102",
-            "\1\u0103",
-            "\1\u0104",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u0113",
+            "",
+            "\1\u0114",
+            "\1\u0115",
+            "\1\u0116",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
+            "\12\77\7\uffff\32\77\4\uffff\1\77\1\uffff\32\77",
             "",
             "",
             ""
@@ -3146,33 +3278,23 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_53 = input.LA(1);
+                        int LA17_56 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 130;}
+                        if ( ((LA17_56>='\u0000' && LA17_56<='\uFFFF')) ) {s = 136;}
 
-                        else s = 57;
+                        else s = 59;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA17_54 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 131;}
-
-                        else s = 57;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -3270,25 +3392,39 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 47;}
 
-                        else if ( (LA17_0=='l') ) {s = 48;}
+                        else if ( (LA17_0=='{') ) {s = 48;}
 
-                        else if ( (LA17_0=='|') ) {s = 49;}
+                        else if ( (LA17_0=='}') ) {s = 49;}
 
                         else if ( (LA17_0=='e') ) {s = 50;}
 
-                        else if ( (LA17_0=='.') ) {s = 51;}
+                        else if ( (LA17_0=='l') ) {s = 51;}
+
+                        else if ( (LA17_0=='|') ) {s = 52;}
+
+                        else if ( (LA17_0=='.') ) {s = 53;}
+
+                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 54;}
 
-                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 52;}
+                        else if ( (LA17_0=='\"') ) {s = 55;}
 
-                        else if ( (LA17_0=='\"') ) {s = 53;}
+                        else if ( (LA17_0=='\'') ) {s = 56;}
 
-                        else if ( (LA17_0=='\'') ) {s = 54;}
+                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='x') ) {s = 57;}
 
-                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='x') ) {s = 55;}
+                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 58;}
 
-                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 56;}
+                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 59;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA17_55 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 135;}
 
-                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||LA17_0=='{'||(LA17_0>='}' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 57;}
+                        else s = 59;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageParser.java b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageParser.java
index e0ca51f1..d48ff18b 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl.ide/src-gen/de/evoal/languages/model/ddl/dsl/ide/contentassist/antlr/internal/InternalDataDescriptionLanguageParser.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 @SuppressWarnings("all")
 public class InternalDataDescriptionLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_DOUBLE", "RULE_INT", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'nominal'", "'ordinal'", "'cardinal'", "'quotient'", "'real'", "'integer'", "'boolean'", "'string'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'types'", "':'", "'data'", "'constraints'", "'use'", "';'", "'type'", "'description'", "'with'", "'of'", "'value'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "':='", "'literal'", "'instance'", "'|'", "'expression'", "'int'", "'float'", "'void'", "'array'", "'.'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_DOUBLE", "RULE_INT", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'nominal'", "'ordinal'", "'cardinal'", "'quotient'", "'real'", "'integer'", "'boolean'", "'string'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'types'", "':'", "'data'", "'constraints'", "'use'", "';'", "'type'", "'description'", "'with'", "'of'", "'value'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "'{'", "'}'", "'extends'", "':='", "'literal'", "'instance'", "'|'", "'expression'", "'int'", "'float'", "'void'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -99,14 +99,18 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     public static final int T__48=48;
     public static final int T__49=49;
     public static final int T__44=44;
+    public static final int T__88=88;
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
     public static final int T__84=84;
     public static final int T__41=41;
+    public static final int T__85=85;
     public static final int T__42=42;
+    public static final int T__86=86;
     public static final int T__43=43;
+    public static final int T__87=87;
 
     // delegates
     // delegators
@@ -2177,12 +2181,97 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     // $ANTLR end "ruleCallRule"
 
 
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalDataDescriptionLanguage.g:655:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalDataDescriptionLanguage.g:656:1: ( ruleConstantReferenceRule EOF )
+            // InternalDataDescriptionLanguage.g:657:1: ruleConstantReferenceRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalDataDescriptionLanguage.g:664:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:668:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalDataDescriptionLanguage.g:669:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            {
+            // InternalDataDescriptionLanguage.g:669:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalDataDescriptionLanguage.g:670:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            }
+            // InternalDataDescriptionLanguage.g:671:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalDataDescriptionLanguage.g:671:4: rule__ConstantReferenceRule__DefinitionAssignment
+            {
+            pushFollow(FOLLOW_2);
+            rule__ConstantReferenceRule__DefinitionAssignment();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConstantReferenceRule"
+
+
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalDataDescriptionLanguage.g:655:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:680:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
     public final void entryRuleLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:656:1: ( ruleLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:657:1: ruleLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:681:1: ( ruleLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:682:1: ruleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralRuleRule()); 
@@ -2212,23 +2301,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalDataDescriptionLanguage.g:664:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:689:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
     public final void ruleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:668:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:669:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:693:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:694:2: ( ( rule__LiteralRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:669:2: ( ( rule__LiteralRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:670:3: ( rule__LiteralRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:694:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:695:3: ( rule__LiteralRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:671:3: ( rule__LiteralRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:671:4: rule__LiteralRule__Alternatives
+            // InternalDataDescriptionLanguage.g:696:3: ( rule__LiteralRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:696:4: rule__LiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralRule__Alternatives();
@@ -2263,11 +2352,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalDataDescriptionLanguage.g:680:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:705:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
     public final void entryRuleNumberLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:681:1: ( ruleNumberLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:682:1: ruleNumberLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:706:1: ( ruleNumberLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:707:1: ruleNumberLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberLiteralRuleRule()); 
@@ -2297,23 +2386,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalDataDescriptionLanguage.g:689:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:714:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
     public final void ruleNumberLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:693:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:694:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:718:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:719:2: ( ( rule__NumberLiteralRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:694:2: ( ( rule__NumberLiteralRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:695:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:719:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:720:3: ( rule__NumberLiteralRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNumberLiteralRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:696:3: ( rule__NumberLiteralRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:696:4: rule__NumberLiteralRule__Alternatives
+            // InternalDataDescriptionLanguage.g:721:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:721:4: rule__NumberLiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__NumberLiteralRule__Alternatives();
@@ -2348,11 +2437,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalDataDescriptionLanguage.g:705:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:730:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
     public final void entryRuleDoubleLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:706:1: ( ruleDoubleLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:707:1: ruleDoubleLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:731:1: ( ruleDoubleLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:732:1: ruleDoubleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleRule()); 
@@ -2382,23 +2471,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalDataDescriptionLanguage.g:714:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:739:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
     public final void ruleDoubleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:718:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:719:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:743:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:744:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:719:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:720:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:744:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:745:3: ( rule__DoubleLiteralRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:721:3: ( rule__DoubleLiteralRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:721:4: rule__DoubleLiteralRule__Group__0
+            // InternalDataDescriptionLanguage.g:746:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:746:4: rule__DoubleLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__Group__0();
@@ -2433,11 +2522,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalDataDescriptionLanguage.g:730:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:755:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
     public final void entryRuleIntegerLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:731:1: ( ruleIntegerLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:732:1: ruleIntegerLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:756:1: ( ruleIntegerLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:757:1: ruleIntegerLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleRule()); 
@@ -2467,23 +2556,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalDataDescriptionLanguage.g:739:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:764:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
     public final void ruleIntegerLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:743:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:744:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:768:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:769:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:744:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:745:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:769:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:770:3: ( rule__IntegerLiteralRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:746:3: ( rule__IntegerLiteralRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:746:4: rule__IntegerLiteralRule__Group__0
+            // InternalDataDescriptionLanguage.g:771:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:771:4: rule__IntegerLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__0();
@@ -2518,11 +2607,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalDataDescriptionLanguage.g:755:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:780:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
     public final void entryRuleStringLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:756:1: ( ruleStringLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:757:1: ruleStringLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:781:1: ( ruleStringLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:782:1: ruleStringLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiteralRuleRule()); 
@@ -2552,23 +2641,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalDataDescriptionLanguage.g:764:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
+    // InternalDataDescriptionLanguage.g:789:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
     public final void ruleStringLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:768:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
-            // InternalDataDescriptionLanguage.g:769:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalDataDescriptionLanguage.g:793:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
+            // InternalDataDescriptionLanguage.g:794:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
             {
-            // InternalDataDescriptionLanguage.g:769:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
-            // InternalDataDescriptionLanguage.g:770:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalDataDescriptionLanguage.g:794:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalDataDescriptionLanguage.g:795:3: ( rule__StringLiteralRule__ValueAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiteralRuleAccess().getValueAssignment()); 
             }
-            // InternalDataDescriptionLanguage.g:771:3: ( rule__StringLiteralRule__ValueAssignment )
-            // InternalDataDescriptionLanguage.g:771:4: rule__StringLiteralRule__ValueAssignment
+            // InternalDataDescriptionLanguage.g:796:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalDataDescriptionLanguage.g:796:4: rule__StringLiteralRule__ValueAssignment
             {
             pushFollow(FOLLOW_2);
             rule__StringLiteralRule__ValueAssignment();
@@ -2603,11 +2692,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalDataDescriptionLanguage.g:780:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:805:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
     public final void entryRuleBooleanLiteralRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:781:1: ( ruleBooleanLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:782:1: ruleBooleanLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:806:1: ( ruleBooleanLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:807:1: ruleBooleanLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleRule()); 
@@ -2637,23 +2726,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalDataDescriptionLanguage.g:789:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:814:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
     public final void ruleBooleanLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:793:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:794:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:818:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:819:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:794:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:795:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:819:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:820:3: ( rule__BooleanLiteralRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:796:3: ( rule__BooleanLiteralRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:796:4: rule__BooleanLiteralRule__Group__0
+            // InternalDataDescriptionLanguage.g:821:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:821:4: rule__BooleanLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__0();
@@ -2687,12 +2776,97 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:830:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalDataDescriptionLanguage.g:831:1: ( ruleTypeDefinitionRule EOF )
+            // InternalDataDescriptionLanguage.g:832:1: ruleTypeDefinitionRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:839:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:843:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:844:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalDataDescriptionLanguage.g:844:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:845:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            }
+            // InternalDataDescriptionLanguage.g:846:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:846:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalDataDescriptionLanguage.g:805:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalDataDescriptionLanguage.g:855:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:806:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalDataDescriptionLanguage.g:807:1: ruleAttributeDefinitionRule EOF
+            // InternalDataDescriptionLanguage.g:856:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalDataDescriptionLanguage.g:857:1: ruleAttributeDefinitionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleRule()); 
@@ -2722,23 +2896,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalDataDescriptionLanguage.g:814:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:864:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:818:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:819:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:868:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:869:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:819:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:820:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:869:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:870:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:821:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:821:4: rule__AttributeDefinitionRule__Group__0
+            // InternalDataDescriptionLanguage.g:871:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:871:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -2773,11 +2947,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalDataDescriptionLanguage.g:830:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:880:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:831:1: ( ruleTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:832:1: ruleTypeRule EOF
+            // InternalDataDescriptionLanguage.g:881:1: ( ruleTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:882:1: ruleTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeRuleRule()); 
@@ -2807,23 +2981,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalDataDescriptionLanguage.g:839:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:889:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:843:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:844:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:893:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:894:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:844:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:845:3: ( rule__TypeRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:894:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:895:3: ( rule__TypeRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:846:3: ( rule__TypeRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:846:4: rule__TypeRule__Alternatives
+            // InternalDataDescriptionLanguage.g:896:3: ( rule__TypeRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:896:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -2858,11 +3032,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalDataDescriptionLanguage.g:855:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:905:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:856:1: ( ruleLiteralTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:857:1: ruleLiteralTypeRule EOF
+            // InternalDataDescriptionLanguage.g:906:1: ( ruleLiteralTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:907:1: ruleLiteralTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleRule()); 
@@ -2892,23 +3066,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalDataDescriptionLanguage.g:864:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:914:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:868:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:869:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:918:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:919:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:869:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:870:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:919:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:920:3: ( rule__LiteralTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:871:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:871:4: rule__LiteralTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:921:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:921:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -2943,11 +3117,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalDataDescriptionLanguage.g:880:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:930:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:881:1: ( ruleInstanceTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:882:1: ruleInstanceTypeRule EOF
+            // InternalDataDescriptionLanguage.g:931:1: ( ruleInstanceTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:932:1: ruleInstanceTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleRule()); 
@@ -2977,23 +3151,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalDataDescriptionLanguage.g:889:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:939:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:893:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:894:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:943:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:944:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:894:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:895:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:944:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:945:3: ( rule__InstanceTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:896:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:896:4: rule__InstanceTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:946:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:946:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -3028,11 +3202,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalDataDescriptionLanguage.g:905:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:955:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:906:1: ( ruleStringTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:907:1: ruleStringTypeRule EOF
+            // InternalDataDescriptionLanguage.g:956:1: ( ruleStringTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:957:1: ruleStringTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleRule()); 
@@ -3062,23 +3236,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalDataDescriptionLanguage.g:914:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:964:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:918:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:919:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:968:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:969:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:919:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:920:3: ( rule__StringTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:969:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:970:3: ( rule__StringTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:921:3: ( rule__StringTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:921:4: rule__StringTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:971:3: ( rule__StringTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:971:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -3113,11 +3287,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalDataDescriptionLanguage.g:930:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:980:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:931:1: ( ruleExpressionTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:932:1: ruleExpressionTypeRule EOF
+            // InternalDataDescriptionLanguage.g:981:1: ( ruleExpressionTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:982:1: ruleExpressionTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleRule()); 
@@ -3147,23 +3321,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalDataDescriptionLanguage.g:939:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:989:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:943:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:944:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:993:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:994:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:944:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:945:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:994:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:995:3: ( rule__ExpressionTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:946:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:946:4: rule__ExpressionTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:996:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:996:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -3198,11 +3372,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalDataDescriptionLanguage.g:955:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1005:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:956:1: ( ruleIntTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:957:1: ruleIntTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1006:1: ( ruleIntTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1007:1: ruleIntTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleRule()); 
@@ -3232,23 +3406,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalDataDescriptionLanguage.g:964:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1014:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:968:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:969:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1018:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1019:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:969:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:970:3: ( rule__IntTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1019:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1020:3: ( rule__IntTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:971:3: ( rule__IntTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:971:4: rule__IntTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1021:3: ( rule__IntTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1021:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -3283,11 +3457,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalDataDescriptionLanguage.g:980:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1030:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:981:1: ( ruleFloatTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:982:1: ruleFloatTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1031:1: ( ruleFloatTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1032:1: ruleFloatTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleRule()); 
@@ -3317,23 +3491,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalDataDescriptionLanguage.g:989:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1039:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:993:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:994:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1043:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1044:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:994:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:995:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1044:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1045:3: ( rule__FloatTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:996:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:996:4: rule__FloatTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1046:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1046:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -3368,11 +3542,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalDataDescriptionLanguage.g:1005:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1055:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1006:1: ( ruleBooleanTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:1007:1: ruleBooleanTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1056:1: ( ruleBooleanTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1057:1: ruleBooleanTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleRule()); 
@@ -3402,23 +3576,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalDataDescriptionLanguage.g:1014:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1064:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1018:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1019:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1068:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1069:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1019:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1020:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1069:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1070:3: ( rule__BooleanTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1021:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:1021:4: rule__BooleanTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1071:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1071:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -3453,11 +3627,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalDataDescriptionLanguage.g:1030:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1080:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1031:1: ( ruleVoidTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:1032:1: ruleVoidTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1081:1: ( ruleVoidTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1082:1: ruleVoidTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleRule()); 
@@ -3487,23 +3661,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalDataDescriptionLanguage.g:1039:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1089:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1043:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1044:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1093:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1094:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1044:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1045:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1094:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1095:3: ( rule__VoidTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1046:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:1046:4: rule__VoidTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1096:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1096:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -3538,11 +3712,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalDataDescriptionLanguage.g:1055:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1105:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1056:1: ( ruleDataTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:1057:1: ruleDataTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1106:1: ( ruleDataTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1107:1: ruleDataTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleRule()); 
@@ -3572,23 +3746,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalDataDescriptionLanguage.g:1064:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1114:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1068:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1069:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1118:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1119:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1069:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1070:3: ( rule__DataTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1119:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1120:3: ( rule__DataTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1071:3: ( rule__DataTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:1071:4: rule__DataTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1121:3: ( rule__DataTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1121:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -3623,11 +3797,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalDataDescriptionLanguage.g:1080:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:1130:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1081:1: ( ruleArrayTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:1082:1: ruleArrayTypeRule EOF
+            // InternalDataDescriptionLanguage.g:1131:1: ( ruleArrayTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:1132:1: ruleArrayTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleRule()); 
@@ -3657,23 +3831,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalDataDescriptionLanguage.g:1089:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1139:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1093:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1094:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1143:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1144:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1094:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1095:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1144:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1145:3: ( rule__ArrayTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1096:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:1096:4: rule__ArrayTypeRule__Group__0
+            // InternalDataDescriptionLanguage.g:1146:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1146:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -3708,11 +3882,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalDataDescriptionLanguage.g:1105:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalDataDescriptionLanguage.g:1155:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1106:1: ( ruleParameterRule EOF )
-            // InternalDataDescriptionLanguage.g:1107:1: ruleParameterRule EOF
+            // InternalDataDescriptionLanguage.g:1156:1: ( ruleParameterRule EOF )
+            // InternalDataDescriptionLanguage.g:1157:1: ruleParameterRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleRule()); 
@@ -3742,23 +3916,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalDataDescriptionLanguage.g:1114:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1164:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1118:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1119:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1168:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1169:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1119:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1120:3: ( rule__ParameterRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1169:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1170:3: ( rule__ParameterRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1121:3: ( rule__ParameterRule__Group__0 )
-            // InternalDataDescriptionLanguage.g:1121:4: rule__ParameterRule__Group__0
+            // InternalDataDescriptionLanguage.g:1171:3: ( rule__ParameterRule__Group__0 )
+            // InternalDataDescriptionLanguage.g:1171:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -3793,11 +3967,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalDataDescriptionLanguage.g:1130:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalDataDescriptionLanguage.g:1180:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1131:1: ( ruleFunctionNameRule EOF )
-            // InternalDataDescriptionLanguage.g:1132:1: ruleFunctionNameRule EOF
+            // InternalDataDescriptionLanguage.g:1181:1: ( ruleFunctionNameRule EOF )
+            // InternalDataDescriptionLanguage.g:1182:1: ruleFunctionNameRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleRule()); 
@@ -3827,23 +4001,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalDataDescriptionLanguage.g:1139:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalDataDescriptionLanguage.g:1189:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1143:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalDataDescriptionLanguage.g:1144:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalDataDescriptionLanguage.g:1193:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalDataDescriptionLanguage.g:1194:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalDataDescriptionLanguage.g:1144:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalDataDescriptionLanguage.g:1145:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalDataDescriptionLanguage.g:1194:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalDataDescriptionLanguage.g:1195:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
             }
-            // InternalDataDescriptionLanguage.g:1146:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalDataDescriptionLanguage.g:1146:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalDataDescriptionLanguage.g:1196:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalDataDescriptionLanguage.g:1196:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -3878,11 +4052,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalDataDescriptionLanguage.g:1155:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalDataDescriptionLanguage.g:1205:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1156:1: ( ruleQualifiedName EOF )
-            // InternalDataDescriptionLanguage.g:1157:1: ruleQualifiedName EOF
+            // InternalDataDescriptionLanguage.g:1206:1: ( ruleQualifiedName EOF )
+            // InternalDataDescriptionLanguage.g:1207:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -3912,23 +4086,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalDataDescriptionLanguage.g:1164:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalDataDescriptionLanguage.g:1214:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1168:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalDataDescriptionLanguage.g:1169:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1218:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalDataDescriptionLanguage.g:1219:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalDataDescriptionLanguage.g:1169:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalDataDescriptionLanguage.g:1170:3: ( rule__QualifiedName__Group__0 )
+            // InternalDataDescriptionLanguage.g:1219:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalDataDescriptionLanguage.g:1220:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalDataDescriptionLanguage.g:1171:3: ( rule__QualifiedName__Group__0 )
-            // InternalDataDescriptionLanguage.g:1171:4: rule__QualifiedName__Group__0
+            // InternalDataDescriptionLanguage.g:1221:3: ( rule__QualifiedName__Group__0 )
+            // InternalDataDescriptionLanguage.g:1221:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -3963,11 +4137,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalDataDescriptionLanguage.g:1180:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalDataDescriptionLanguage.g:1230:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:1181:1: ( ruleStringOrId EOF )
-            // InternalDataDescriptionLanguage.g:1182:1: ruleStringOrId EOF
+            // InternalDataDescriptionLanguage.g:1231:1: ( ruleStringOrId EOF )
+            // InternalDataDescriptionLanguage.g:1232:1: ruleStringOrId EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringOrIdRule()); 
@@ -3997,23 +4171,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalDataDescriptionLanguage.g:1189:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1239:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1193:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1194:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1243:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1244:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1194:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1195:3: ( rule__StringOrId__Alternatives )
+            // InternalDataDescriptionLanguage.g:1244:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1245:3: ( rule__StringOrId__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1196:3: ( rule__StringOrId__Alternatives )
-            // InternalDataDescriptionLanguage.g:1196:4: rule__StringOrId__Alternatives
+            // InternalDataDescriptionLanguage.g:1246:3: ( rule__StringOrId__Alternatives )
+            // InternalDataDescriptionLanguage.g:1246:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -4048,23 +4222,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleScaleType"
-    // InternalDataDescriptionLanguage.g:1205:1: ruleScaleType : ( ( rule__ScaleType__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1255:1: ruleScaleType : ( ( rule__ScaleType__Alternatives ) ) ;
     public final void ruleScaleType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1209:1: ( ( ( rule__ScaleType__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1210:2: ( ( rule__ScaleType__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1259:1: ( ( ( rule__ScaleType__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1260:2: ( ( rule__ScaleType__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1210:2: ( ( rule__ScaleType__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1211:3: ( rule__ScaleType__Alternatives )
+            // InternalDataDescriptionLanguage.g:1260:2: ( ( rule__ScaleType__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1261:3: ( rule__ScaleType__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getScaleTypeAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1212:3: ( rule__ScaleType__Alternatives )
-            // InternalDataDescriptionLanguage.g:1212:4: rule__ScaleType__Alternatives
+            // InternalDataDescriptionLanguage.g:1262:3: ( rule__ScaleType__Alternatives )
+            // InternalDataDescriptionLanguage.g:1262:4: rule__ScaleType__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ScaleType__Alternatives();
@@ -4099,23 +4273,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleRepresentationType"
-    // InternalDataDescriptionLanguage.g:1221:1: ruleRepresentationType : ( ( rule__RepresentationType__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1271:1: ruleRepresentationType : ( ( rule__RepresentationType__Alternatives ) ) ;
     public final void ruleRepresentationType() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1225:1: ( ( ( rule__RepresentationType__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1226:2: ( ( rule__RepresentationType__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1275:1: ( ( ( rule__RepresentationType__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1276:2: ( ( rule__RepresentationType__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1226:2: ( ( rule__RepresentationType__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1227:3: ( rule__RepresentationType__Alternatives )
+            // InternalDataDescriptionLanguage.g:1276:2: ( ( rule__RepresentationType__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1277:3: ( rule__RepresentationType__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getRepresentationTypeAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1228:3: ( rule__RepresentationType__Alternatives )
-            // InternalDataDescriptionLanguage.g:1228:4: rule__RepresentationType__Alternatives
+            // InternalDataDescriptionLanguage.g:1278:3: ( rule__RepresentationType__Alternatives )
+            // InternalDataDescriptionLanguage.g:1278:4: rule__RepresentationType__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__RepresentationType__Alternatives();
@@ -4150,23 +4324,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalDataDescriptionLanguage.g:1237:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1287:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1241:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1242:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1291:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1292:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1242:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1243:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1292:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1293:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1244:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:1244:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalDataDescriptionLanguage.g:1294:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1294:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -4201,23 +4375,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalDataDescriptionLanguage.g:1253:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1303:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1257:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1258:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1307:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1308:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1258:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1259:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1308:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1309:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1260:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:1260:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalDataDescriptionLanguage.g:1310:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1310:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -4252,23 +4426,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalDataDescriptionLanguage.g:1269:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1319:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1273:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1274:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1323:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1324:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1274:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1275:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1324:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1325:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1276:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:1276:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalDataDescriptionLanguage.g:1326:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1326:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -4303,23 +4477,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalDataDescriptionLanguage.g:1285:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalDataDescriptionLanguage.g:1335:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1289:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalDataDescriptionLanguage.g:1290:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1339:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalDataDescriptionLanguage.g:1340:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalDataDescriptionLanguage.g:1290:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalDataDescriptionLanguage.g:1291:3: ( rule__FactorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1340:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalDataDescriptionLanguage.g:1341:3: ( rule__FactorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
             }
-            // InternalDataDescriptionLanguage.g:1292:3: ( rule__FactorRule__Alternatives )
-            // InternalDataDescriptionLanguage.g:1292:4: rule__FactorRule__Alternatives
+            // InternalDataDescriptionLanguage.g:1342:3: ( rule__FactorRule__Alternatives )
+            // InternalDataDescriptionLanguage.g:1342:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -4354,21 +4528,21 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1300:1: rule__DataDescriptionRule__Alternatives : ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) );
+    // InternalDataDescriptionLanguage.g:1350:1: rule__DataDescriptionRule__Alternatives : ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) );
     public final void rule__DataDescriptionRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1304:1: ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) )
+            // InternalDataDescriptionLanguage.g:1354:1: ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) )
             int alt1=2;
             alt1 = dfa1.predict(input);
             switch (alt1) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1305:2: ( ruleTypedDataDescriptionRule )
+                    // InternalDataDescriptionLanguage.g:1355:2: ( ruleTypedDataDescriptionRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1305:2: ( ruleTypedDataDescriptionRule )
-                    // InternalDataDescriptionLanguage.g:1306:3: ruleTypedDataDescriptionRule
+                    // InternalDataDescriptionLanguage.g:1355:2: ( ruleTypedDataDescriptionRule )
+                    // InternalDataDescriptionLanguage.g:1356:3: ruleTypedDataDescriptionRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataDescriptionRuleAccess().getTypedDataDescriptionRuleParserRuleCall_0()); 
@@ -4388,10 +4562,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1311:2: ( ruleUntypedDataDescriptionRule )
+                    // InternalDataDescriptionLanguage.g:1361:2: ( ruleUntypedDataDescriptionRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1311:2: ( ruleUntypedDataDescriptionRule )
-                    // InternalDataDescriptionLanguage.g:1312:3: ruleUntypedDataDescriptionRule
+                    // InternalDataDescriptionLanguage.g:1361:2: ( ruleUntypedDataDescriptionRule )
+                    // InternalDataDescriptionLanguage.g:1362:3: ruleUntypedDataDescriptionRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getDataDescriptionRuleAccess().getUntypedDataDescriptionRuleParserRuleCall_1()); 
@@ -4428,46 +4602,83 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ValueReferenceRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1321:1: rule__ValueReferenceRule__Alternatives : ( ( ruleDataReferenceRule ) | ( ruleSelfReferenceRule ) );
+    // InternalDataDescriptionLanguage.g:1371:1: rule__ValueReferenceRule__Alternatives : ( ( ruleConstantReferenceRule ) | ( ruleDataReferenceRule ) | ( ruleSelfReferenceRule ) );
     public final void rule__ValueReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1325:1: ( ( ruleDataReferenceRule ) | ( ruleSelfReferenceRule ) )
-            int alt2=2;
-            int LA2_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:1375:1: ( ( ruleConstantReferenceRule ) | ( ruleDataReferenceRule ) | ( ruleSelfReferenceRule ) )
+            int alt2=3;
+            switch ( input.LA(1) ) {
+            case RULE_QUOTED_ID:
+                {
+                int LA2_1 = input.LA(2);
 
-            if ( ((LA2_0>=RULE_QUOTED_ID && LA2_0<=RULE_ID)) ) {
-                alt2=1;
-            }
-            else if ( (LA2_0==65) ) {
-                alt2=2;
-            }
-            else {
+                if ( (synpred2_InternalDataDescriptionLanguage()) ) {
+                    alt2=1;
+                }
+                else if ( (synpred3_InternalDataDescriptionLanguage()) ) {
+                    alt2=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 2, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_ID:
+                {
+                int LA2_2 = input.LA(2);
+
+                if ( (synpred2_InternalDataDescriptionLanguage()) ) {
+                    alt2=1;
+                }
+                else if ( (synpred3_InternalDataDescriptionLanguage()) ) {
+                    alt2=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return ;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 2, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 65:
+                {
+                alt2=3;
+                }
+                break;
+            default:
                 if (state.backtracking>0) {state.failed=true; return ;}
                 NoViableAltException nvae =
                     new NoViableAltException("", 2, 0, input);
 
                 throw nvae;
             }
+
             switch (alt2) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1326:2: ( ruleDataReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1376:2: ( ruleConstantReferenceRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1326:2: ( ruleDataReferenceRule )
-                    // InternalDataDescriptionLanguage.g:1327:3: ruleDataReferenceRule
+                    // InternalDataDescriptionLanguage.g:1376:2: ( ruleConstantReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1377:3: ruleConstantReferenceRule
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0()); 
+                       before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0()); 
                     }
                     pushFollow(FOLLOW_2);
-                    ruleDataReferenceRule();
+                    ruleConstantReferenceRule();
 
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0()); 
+                       after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0()); 
                     }
 
                     }
@@ -4476,13 +4687,36 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1332:2: ( ruleSelfReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1382:2: ( ruleDataReferenceRule )
+                    {
+                    // InternalDataDescriptionLanguage.g:1382:2: ( ruleDataReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1383:3: ruleDataReferenceRule
+                    {
+                    if ( state.backtracking==0 ) {
+                       before(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
+                    }
+                    pushFollow(FOLLOW_2);
+                    ruleDataReferenceRule();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+                    if ( state.backtracking==0 ) {
+                       after(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
+                    }
+
+                    }
+
+
+                    }
+                    break;
+                case 3 :
+                    // InternalDataDescriptionLanguage.g:1388:2: ( ruleSelfReferenceRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1332:2: ( ruleSelfReferenceRule )
-                    // InternalDataDescriptionLanguage.g:1333:3: ruleSelfReferenceRule
+                    // InternalDataDescriptionLanguage.g:1388:2: ( ruleSelfReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1389:3: ruleSelfReferenceRule
                     {
                     if ( state.backtracking==0 ) {
-                       before(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1()); 
+                       before(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2()); 
                     }
                     pushFollow(FOLLOW_2);
                     ruleSelfReferenceRule();
@@ -4490,7 +4724,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     state._fsp--;
                     if (state.failed) return ;
                     if ( state.backtracking==0 ) {
-                       after(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1()); 
+                       after(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2()); 
                     }
 
                     }
@@ -4516,86 +4750,21 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1342:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalDataDescriptionLanguage.g:1398:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1346:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:1402:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt3=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-                {
-                int LA3_1 = input.LA(2);
-
-                if ( (LA3_1==70||LA3_1==82) ) {
-                    alt3=1;
-                }
-                else if ( (LA3_1==EOF||(LA3_1>=24 && LA3_1<=34)||LA3_1==60||(LA3_1>=66 && LA3_1<=69)||(LA3_1>=71 && LA3_1<=72)) ) {
-                    alt3=4;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 3, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case RULE_ID:
-                {
-                int LA3_2 = input.LA(2);
-
-                if ( (LA3_2==70||LA3_2==82) ) {
-                    alt3=1;
-                }
-                else if ( (LA3_2==EOF||(LA3_2>=24 && LA3_2<=34)||LA3_2==60||(LA3_2>=66 && LA3_2<=69)||(LA3_2>=71 && LA3_2<=72)) ) {
-                    alt3=4;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return ;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 3, 2, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case RULE_STRING:
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case 15:
-            case 84:
-                {
-                alt3=2;
-                }
-                break;
-            case 70:
-                {
-                alt3=3;
-                }
-                break;
-            case 65:
-                {
-                alt3=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 3, 0, input);
-
-                throw nvae;
-            }
-
+            alt3 = dfa3.predict(input);
             switch (alt3) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1347:2: ( ruleCallRule )
+                    // InternalDataDescriptionLanguage.g:1403:2: ( ruleCallRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1347:2: ( ruleCallRule )
-                    // InternalDataDescriptionLanguage.g:1348:3: ruleCallRule
+                    // InternalDataDescriptionLanguage.g:1403:2: ( ruleCallRule )
+                    // InternalDataDescriptionLanguage.g:1404:3: ruleCallRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
@@ -4615,10 +4784,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1353:2: ( ruleLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1409:2: ( ruleLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1353:2: ( ruleLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1354:3: ruleLiteralRule
+                    // InternalDataDescriptionLanguage.g:1409:2: ( ruleLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1410:3: ruleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
@@ -4638,10 +4807,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1359:2: ( ruleParanthesesRule )
+                    // InternalDataDescriptionLanguage.g:1415:2: ( ruleParanthesesRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1359:2: ( ruleParanthesesRule )
-                    // InternalDataDescriptionLanguage.g:1360:3: ruleParanthesesRule
+                    // InternalDataDescriptionLanguage.g:1415:2: ( ruleParanthesesRule )
+                    // InternalDataDescriptionLanguage.g:1416:3: ruleParanthesesRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
@@ -4661,10 +4830,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1365:2: ( ruleValueReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1421:2: ( ruleValueReferenceRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1365:2: ( ruleValueReferenceRule )
-                    // InternalDataDescriptionLanguage.g:1366:3: ruleValueReferenceRule
+                    // InternalDataDescriptionLanguage.g:1421:2: ( ruleValueReferenceRule )
+                    // InternalDataDescriptionLanguage.g:1422:3: ruleValueReferenceRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
@@ -4701,13 +4870,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1375:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalDataDescriptionLanguage.g:1431:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1379:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalDataDescriptionLanguage.g:1435:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt4=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -4722,7 +4891,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                 }
                 break;
             case 15:
-            case 84:
+            case 87:
                 {
                 alt4=3;
                 }
@@ -4737,10 +4906,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt4) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1380:2: ( ruleNumberLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1436:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1380:2: ( ruleNumberLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1381:3: ruleNumberLiteralRule
+                    // InternalDataDescriptionLanguage.g:1436:2: ( ruleNumberLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1437:3: ruleNumberLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
@@ -4760,10 +4929,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1386:2: ( ruleStringLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1442:2: ( ruleStringLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1386:2: ( ruleStringLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1387:3: ruleStringLiteralRule
+                    // InternalDataDescriptionLanguage.g:1442:2: ( ruleStringLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1443:3: ruleStringLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
@@ -4783,10 +4952,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1392:2: ( ruleBooleanLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1448:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1392:2: ( ruleBooleanLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1393:3: ruleBooleanLiteralRule
+                    // InternalDataDescriptionLanguage.g:1448:2: ( ruleBooleanLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1449:3: ruleBooleanLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
@@ -4823,13 +4992,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1402:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalDataDescriptionLanguage.g:1458:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1406:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalDataDescriptionLanguage.g:1462:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -4848,10 +5017,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt5) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1407:2: ( ruleDoubleLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1463:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1407:2: ( ruleDoubleLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1408:3: ruleDoubleLiteralRule
+                    // InternalDataDescriptionLanguage.g:1463:2: ( ruleDoubleLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1464:3: ruleDoubleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
@@ -4871,10 +5040,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1413:2: ( ruleIntegerLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1469:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1413:2: ( ruleIntegerLiteralRule )
-                    // InternalDataDescriptionLanguage.g:1414:3: ruleIntegerLiteralRule
+                    // InternalDataDescriptionLanguage.g:1469:2: ( ruleIntegerLiteralRule )
+                    // InternalDataDescriptionLanguage.g:1470:3: ruleIntegerLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
@@ -4911,17 +5080,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalDataDescriptionLanguage.g:1423:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalDataDescriptionLanguage.g:1479:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1427:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalDataDescriptionLanguage.g:1483:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
-            if ( (LA6_0==84) ) {
+            if ( (LA6_0==87) ) {
                 alt6=1;
             }
             else if ( (LA6_0==15) ) {
@@ -4936,16 +5105,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt6) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1428:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalDataDescriptionLanguage.g:1484:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1428:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalDataDescriptionLanguage.g:1429:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalDataDescriptionLanguage.g:1484:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalDataDescriptionLanguage.g:1485:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1430:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalDataDescriptionLanguage.g:1430:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalDataDescriptionLanguage.g:1486:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalDataDescriptionLanguage.g:1486:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -4965,10 +5134,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1434:2: ( 'false' )
+                    // InternalDataDescriptionLanguage.g:1490:2: ( 'false' )
                     {
-                    // InternalDataDescriptionLanguage.g:1434:2: ( 'false' )
-                    // InternalDataDescriptionLanguage.g:1435:3: 'false'
+                    // InternalDataDescriptionLanguage.g:1490:2: ( 'false' )
+                    // InternalDataDescriptionLanguage.g:1491:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
@@ -5001,13 +5170,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1444:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalDataDescriptionLanguage.g:1500:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1448:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalDataDescriptionLanguage.g:1504:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt7=10;
             switch ( input.LA(1) ) {
             case 23:
@@ -5015,12 +5184,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                 alt7=1;
                 }
                 break;
-            case 78:
+            case 81:
                 {
                 alt7=2;
                 }
                 break;
-            case 79:
+            case 82:
                 {
                 alt7=3;
                 }
@@ -5030,27 +5199,27 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                 alt7=4;
                 }
                 break;
-            case 74:
+            case 77:
                 {
                 alt7=5;
                 }
                 break;
-            case 81:
+            case 84:
                 {
                 alt7=6;
                 }
                 break;
-            case 75:
+            case 78:
                 {
                 alt7=7;
                 }
                 break;
-            case 80:
+            case 83:
                 {
                 alt7=8;
                 }
                 break;
-            case 77:
+            case 80:
                 {
                 alt7=9;
                 }
@@ -5070,10 +5239,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt7) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1449:2: ( ruleStringTypeRule )
+                    // InternalDataDescriptionLanguage.g:1505:2: ( ruleStringTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1449:2: ( ruleStringTypeRule )
-                    // InternalDataDescriptionLanguage.g:1450:3: ruleStringTypeRule
+                    // InternalDataDescriptionLanguage.g:1505:2: ( ruleStringTypeRule )
+                    // InternalDataDescriptionLanguage.g:1506:3: ruleStringTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
@@ -5093,10 +5262,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1455:2: ( ruleIntTypeRule )
+                    // InternalDataDescriptionLanguage.g:1511:2: ( ruleIntTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1455:2: ( ruleIntTypeRule )
-                    // InternalDataDescriptionLanguage.g:1456:3: ruleIntTypeRule
+                    // InternalDataDescriptionLanguage.g:1511:2: ( ruleIntTypeRule )
+                    // InternalDataDescriptionLanguage.g:1512:3: ruleIntTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
@@ -5116,10 +5285,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1461:2: ( ruleFloatTypeRule )
+                    // InternalDataDescriptionLanguage.g:1517:2: ( ruleFloatTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1461:2: ( ruleFloatTypeRule )
-                    // InternalDataDescriptionLanguage.g:1462:3: ruleFloatTypeRule
+                    // InternalDataDescriptionLanguage.g:1517:2: ( ruleFloatTypeRule )
+                    // InternalDataDescriptionLanguage.g:1518:3: ruleFloatTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
@@ -5139,10 +5308,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1467:2: ( ruleBooleanTypeRule )
+                    // InternalDataDescriptionLanguage.g:1523:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1467:2: ( ruleBooleanTypeRule )
-                    // InternalDataDescriptionLanguage.g:1468:3: ruleBooleanTypeRule
+                    // InternalDataDescriptionLanguage.g:1523:2: ( ruleBooleanTypeRule )
+                    // InternalDataDescriptionLanguage.g:1524:3: ruleBooleanTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
@@ -5162,10 +5331,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:1473:2: ( ruleLiteralTypeRule )
+                    // InternalDataDescriptionLanguage.g:1529:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1473:2: ( ruleLiteralTypeRule )
-                    // InternalDataDescriptionLanguage.g:1474:3: ruleLiteralTypeRule
+                    // InternalDataDescriptionLanguage.g:1529:2: ( ruleLiteralTypeRule )
+                    // InternalDataDescriptionLanguage.g:1530:3: ruleLiteralTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
@@ -5185,10 +5354,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:1479:2: ( ruleArrayTypeRule )
+                    // InternalDataDescriptionLanguage.g:1535:2: ( ruleArrayTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1479:2: ( ruleArrayTypeRule )
-                    // InternalDataDescriptionLanguage.g:1480:3: ruleArrayTypeRule
+                    // InternalDataDescriptionLanguage.g:1535:2: ( ruleArrayTypeRule )
+                    // InternalDataDescriptionLanguage.g:1536:3: ruleArrayTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
@@ -5208,10 +5377,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 7 :
-                    // InternalDataDescriptionLanguage.g:1485:2: ( ruleInstanceTypeRule )
+                    // InternalDataDescriptionLanguage.g:1541:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1485:2: ( ruleInstanceTypeRule )
-                    // InternalDataDescriptionLanguage.g:1486:3: ruleInstanceTypeRule
+                    // InternalDataDescriptionLanguage.g:1541:2: ( ruleInstanceTypeRule )
+                    // InternalDataDescriptionLanguage.g:1542:3: ruleInstanceTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
@@ -5231,10 +5400,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 8 :
-                    // InternalDataDescriptionLanguage.g:1491:2: ( ruleVoidTypeRule )
+                    // InternalDataDescriptionLanguage.g:1547:2: ( ruleVoidTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1491:2: ( ruleVoidTypeRule )
-                    // InternalDataDescriptionLanguage.g:1492:3: ruleVoidTypeRule
+                    // InternalDataDescriptionLanguage.g:1547:2: ( ruleVoidTypeRule )
+                    // InternalDataDescriptionLanguage.g:1548:3: ruleVoidTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
@@ -5254,10 +5423,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 9 :
-                    // InternalDataDescriptionLanguage.g:1497:2: ( ruleExpressionTypeRule )
+                    // InternalDataDescriptionLanguage.g:1553:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1497:2: ( ruleExpressionTypeRule )
-                    // InternalDataDescriptionLanguage.g:1498:3: ruleExpressionTypeRule
+                    // InternalDataDescriptionLanguage.g:1553:2: ( ruleExpressionTypeRule )
+                    // InternalDataDescriptionLanguage.g:1554:3: ruleExpressionTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
@@ -5277,10 +5446,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 10 :
-                    // InternalDataDescriptionLanguage.g:1503:2: ( ruleDataTypeRule )
+                    // InternalDataDescriptionLanguage.g:1559:2: ( ruleDataTypeRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1503:2: ( ruleDataTypeRule )
-                    // InternalDataDescriptionLanguage.g:1504:3: ruleDataTypeRule
+                    // InternalDataDescriptionLanguage.g:1559:2: ( ruleDataTypeRule )
+                    // InternalDataDescriptionLanguage.g:1560:3: ruleDataTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
@@ -5317,13 +5486,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalDataDescriptionLanguage.g:1513:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalDataDescriptionLanguage.g:1569:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1517:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalDataDescriptionLanguage.g:1573:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt8=2;
             int LA8_0 = input.LA(1);
 
@@ -5342,10 +5511,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt8) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1518:2: ( RULE_QUOTED_ID )
+                    // InternalDataDescriptionLanguage.g:1574:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalDataDescriptionLanguage.g:1518:2: ( RULE_QUOTED_ID )
-                    // InternalDataDescriptionLanguage.g:1519:3: RULE_QUOTED_ID
+                    // InternalDataDescriptionLanguage.g:1574:2: ( RULE_QUOTED_ID )
+                    // InternalDataDescriptionLanguage.g:1575:3: RULE_QUOTED_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
@@ -5361,10 +5530,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1524:2: ( RULE_ID )
+                    // InternalDataDescriptionLanguage.g:1580:2: ( RULE_ID )
                     {
-                    // InternalDataDescriptionLanguage.g:1524:2: ( RULE_ID )
-                    // InternalDataDescriptionLanguage.g:1525:3: RULE_ID
+                    // InternalDataDescriptionLanguage.g:1580:2: ( RULE_ID )
+                    // InternalDataDescriptionLanguage.g:1581:3: RULE_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
@@ -5397,13 +5566,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ScaleType__Alternatives"
-    // InternalDataDescriptionLanguage.g:1534:1: rule__ScaleType__Alternatives : ( ( ( 'nominal' ) ) | ( ( 'ordinal' ) ) | ( ( 'cardinal' ) ) | ( ( 'quotient' ) ) );
+    // InternalDataDescriptionLanguage.g:1590:1: rule__ScaleType__Alternatives : ( ( ( 'nominal' ) ) | ( ( 'ordinal' ) ) | ( ( 'cardinal' ) ) | ( ( 'quotient' ) ) );
     public final void rule__ScaleType__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1538:1: ( ( ( 'nominal' ) ) | ( ( 'ordinal' ) ) | ( ( 'cardinal' ) ) | ( ( 'quotient' ) ) )
+            // InternalDataDescriptionLanguage.g:1594:1: ( ( ( 'nominal' ) ) | ( ( 'ordinal' ) ) | ( ( 'cardinal' ) ) | ( ( 'quotient' ) ) )
             int alt9=4;
             switch ( input.LA(1) ) {
             case 16:
@@ -5436,16 +5605,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt9) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1539:2: ( ( 'nominal' ) )
+                    // InternalDataDescriptionLanguage.g:1595:2: ( ( 'nominal' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1539:2: ( ( 'nominal' ) )
-                    // InternalDataDescriptionLanguage.g:1540:3: ( 'nominal' )
+                    // InternalDataDescriptionLanguage.g:1595:2: ( ( 'nominal' ) )
+                    // InternalDataDescriptionLanguage.g:1596:3: ( 'nominal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getScaleTypeAccess().getNominalEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1541:3: ( 'nominal' )
-                    // InternalDataDescriptionLanguage.g:1541:4: 'nominal'
+                    // InternalDataDescriptionLanguage.g:1597:3: ( 'nominal' )
+                    // InternalDataDescriptionLanguage.g:1597:4: 'nominal'
                     {
                     match(input,16,FOLLOW_2); if (state.failed) return ;
 
@@ -5461,16 +5630,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1545:2: ( ( 'ordinal' ) )
+                    // InternalDataDescriptionLanguage.g:1601:2: ( ( 'ordinal' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1545:2: ( ( 'ordinal' ) )
-                    // InternalDataDescriptionLanguage.g:1546:3: ( 'ordinal' )
+                    // InternalDataDescriptionLanguage.g:1601:2: ( ( 'ordinal' ) )
+                    // InternalDataDescriptionLanguage.g:1602:3: ( 'ordinal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getScaleTypeAccess().getOrdinalEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1547:3: ( 'ordinal' )
-                    // InternalDataDescriptionLanguage.g:1547:4: 'ordinal'
+                    // InternalDataDescriptionLanguage.g:1603:3: ( 'ordinal' )
+                    // InternalDataDescriptionLanguage.g:1603:4: 'ordinal'
                     {
                     match(input,17,FOLLOW_2); if (state.failed) return ;
 
@@ -5486,16 +5655,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1551:2: ( ( 'cardinal' ) )
+                    // InternalDataDescriptionLanguage.g:1607:2: ( ( 'cardinal' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1551:2: ( ( 'cardinal' ) )
-                    // InternalDataDescriptionLanguage.g:1552:3: ( 'cardinal' )
+                    // InternalDataDescriptionLanguage.g:1607:2: ( ( 'cardinal' ) )
+                    // InternalDataDescriptionLanguage.g:1608:3: ( 'cardinal' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getScaleTypeAccess().getCardinalEnumLiteralDeclaration_2()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1553:3: ( 'cardinal' )
-                    // InternalDataDescriptionLanguage.g:1553:4: 'cardinal'
+                    // InternalDataDescriptionLanguage.g:1609:3: ( 'cardinal' )
+                    // InternalDataDescriptionLanguage.g:1609:4: 'cardinal'
                     {
                     match(input,18,FOLLOW_2); if (state.failed) return ;
 
@@ -5511,16 +5680,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1557:2: ( ( 'quotient' ) )
+                    // InternalDataDescriptionLanguage.g:1613:2: ( ( 'quotient' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1557:2: ( ( 'quotient' ) )
-                    // InternalDataDescriptionLanguage.g:1558:3: ( 'quotient' )
+                    // InternalDataDescriptionLanguage.g:1613:2: ( ( 'quotient' ) )
+                    // InternalDataDescriptionLanguage.g:1614:3: ( 'quotient' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getScaleTypeAccess().getQuotientEnumLiteralDeclaration_3()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1559:3: ( 'quotient' )
-                    // InternalDataDescriptionLanguage.g:1559:4: 'quotient'
+                    // InternalDataDescriptionLanguage.g:1615:3: ( 'quotient' )
+                    // InternalDataDescriptionLanguage.g:1615:4: 'quotient'
                     {
                     match(input,19,FOLLOW_2); if (state.failed) return ;
 
@@ -5553,13 +5722,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__RepresentationType__Alternatives"
-    // InternalDataDescriptionLanguage.g:1567:1: rule__RepresentationType__Alternatives : ( ( ( 'real' ) ) | ( ( 'integer' ) ) | ( ( 'boolean' ) ) | ( ( 'string' ) ) );
+    // InternalDataDescriptionLanguage.g:1623:1: rule__RepresentationType__Alternatives : ( ( ( 'real' ) ) | ( ( 'integer' ) ) | ( ( 'boolean' ) ) | ( ( 'string' ) ) );
     public final void rule__RepresentationType__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1571:1: ( ( ( 'real' ) ) | ( ( 'integer' ) ) | ( ( 'boolean' ) ) | ( ( 'string' ) ) )
+            // InternalDataDescriptionLanguage.g:1627:1: ( ( ( 'real' ) ) | ( ( 'integer' ) ) | ( ( 'boolean' ) ) | ( ( 'string' ) ) )
             int alt10=4;
             switch ( input.LA(1) ) {
             case 20:
@@ -5592,16 +5761,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt10) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1572:2: ( ( 'real' ) )
+                    // InternalDataDescriptionLanguage.g:1628:2: ( ( 'real' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1572:2: ( ( 'real' ) )
-                    // InternalDataDescriptionLanguage.g:1573:3: ( 'real' )
+                    // InternalDataDescriptionLanguage.g:1628:2: ( ( 'real' ) )
+                    // InternalDataDescriptionLanguage.g:1629:3: ( 'real' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepresentationTypeAccess().getRealEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1574:3: ( 'real' )
-                    // InternalDataDescriptionLanguage.g:1574:4: 'real'
+                    // InternalDataDescriptionLanguage.g:1630:3: ( 'real' )
+                    // InternalDataDescriptionLanguage.g:1630:4: 'real'
                     {
                     match(input,20,FOLLOW_2); if (state.failed) return ;
 
@@ -5617,16 +5786,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1578:2: ( ( 'integer' ) )
+                    // InternalDataDescriptionLanguage.g:1634:2: ( ( 'integer' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1578:2: ( ( 'integer' ) )
-                    // InternalDataDescriptionLanguage.g:1579:3: ( 'integer' )
+                    // InternalDataDescriptionLanguage.g:1634:2: ( ( 'integer' ) )
+                    // InternalDataDescriptionLanguage.g:1635:3: ( 'integer' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepresentationTypeAccess().getIntegerEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1580:3: ( 'integer' )
-                    // InternalDataDescriptionLanguage.g:1580:4: 'integer'
+                    // InternalDataDescriptionLanguage.g:1636:3: ( 'integer' )
+                    // InternalDataDescriptionLanguage.g:1636:4: 'integer'
                     {
                     match(input,21,FOLLOW_2); if (state.failed) return ;
 
@@ -5642,16 +5811,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1584:2: ( ( 'boolean' ) )
+                    // InternalDataDescriptionLanguage.g:1640:2: ( ( 'boolean' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1584:2: ( ( 'boolean' ) )
-                    // InternalDataDescriptionLanguage.g:1585:3: ( 'boolean' )
+                    // InternalDataDescriptionLanguage.g:1640:2: ( ( 'boolean' ) )
+                    // InternalDataDescriptionLanguage.g:1641:3: ( 'boolean' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepresentationTypeAccess().getBooleanEnumLiteralDeclaration_2()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1586:3: ( 'boolean' )
-                    // InternalDataDescriptionLanguage.g:1586:4: 'boolean'
+                    // InternalDataDescriptionLanguage.g:1642:3: ( 'boolean' )
+                    // InternalDataDescriptionLanguage.g:1642:4: 'boolean'
                     {
                     match(input,22,FOLLOW_2); if (state.failed) return ;
 
@@ -5667,16 +5836,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1590:2: ( ( 'string' ) )
+                    // InternalDataDescriptionLanguage.g:1646:2: ( ( 'string' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1590:2: ( ( 'string' ) )
-                    // InternalDataDescriptionLanguage.g:1591:3: ( 'string' )
+                    // InternalDataDescriptionLanguage.g:1646:2: ( ( 'string' ) )
+                    // InternalDataDescriptionLanguage.g:1647:3: ( 'string' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRepresentationTypeAccess().getStringEnumLiteralDeclaration_3()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1592:3: ( 'string' )
-                    // InternalDataDescriptionLanguage.g:1592:4: 'string'
+                    // InternalDataDescriptionLanguage.g:1648:3: ( 'string' )
+                    // InternalDataDescriptionLanguage.g:1648:4: 'string'
                     {
                     match(input,23,FOLLOW_2); if (state.failed) return ;
 
@@ -5709,13 +5878,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1600:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalDataDescriptionLanguage.g:1656:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1604:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalDataDescriptionLanguage.g:1660:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt11=6;
             switch ( input.LA(1) ) {
             case 24:
@@ -5758,16 +5927,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt11) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1605:2: ( ( '>=' ) )
+                    // InternalDataDescriptionLanguage.g:1661:2: ( ( '>=' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1605:2: ( ( '>=' ) )
-                    // InternalDataDescriptionLanguage.g:1606:3: ( '>=' )
+                    // InternalDataDescriptionLanguage.g:1661:2: ( ( '>=' ) )
+                    // InternalDataDescriptionLanguage.g:1662:3: ( '>=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1607:3: ( '>=' )
-                    // InternalDataDescriptionLanguage.g:1607:4: '>='
+                    // InternalDataDescriptionLanguage.g:1663:3: ( '>=' )
+                    // InternalDataDescriptionLanguage.g:1663:4: '>='
                     {
                     match(input,24,FOLLOW_2); if (state.failed) return ;
 
@@ -5783,16 +5952,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1611:2: ( ( '>' ) )
+                    // InternalDataDescriptionLanguage.g:1667:2: ( ( '>' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1611:2: ( ( '>' ) )
-                    // InternalDataDescriptionLanguage.g:1612:3: ( '>' )
+                    // InternalDataDescriptionLanguage.g:1667:2: ( ( '>' ) )
+                    // InternalDataDescriptionLanguage.g:1668:3: ( '>' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1613:3: ( '>' )
-                    // InternalDataDescriptionLanguage.g:1613:4: '>'
+                    // InternalDataDescriptionLanguage.g:1669:3: ( '>' )
+                    // InternalDataDescriptionLanguage.g:1669:4: '>'
                     {
                     match(input,25,FOLLOW_2); if (state.failed) return ;
 
@@ -5808,16 +5977,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1617:2: ( ( '=' ) )
+                    // InternalDataDescriptionLanguage.g:1673:2: ( ( '=' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1617:2: ( ( '=' ) )
-                    // InternalDataDescriptionLanguage.g:1618:3: ( '=' )
+                    // InternalDataDescriptionLanguage.g:1673:2: ( ( '=' ) )
+                    // InternalDataDescriptionLanguage.g:1674:3: ( '=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1619:3: ( '=' )
-                    // InternalDataDescriptionLanguage.g:1619:4: '='
+                    // InternalDataDescriptionLanguage.g:1675:3: ( '=' )
+                    // InternalDataDescriptionLanguage.g:1675:4: '='
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -5833,16 +6002,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1623:2: ( ( '!=' ) )
+                    // InternalDataDescriptionLanguage.g:1679:2: ( ( '!=' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1623:2: ( ( '!=' ) )
-                    // InternalDataDescriptionLanguage.g:1624:3: ( '!=' )
+                    // InternalDataDescriptionLanguage.g:1679:2: ( ( '!=' ) )
+                    // InternalDataDescriptionLanguage.g:1680:3: ( '!=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1625:3: ( '!=' )
-                    // InternalDataDescriptionLanguage.g:1625:4: '!='
+                    // InternalDataDescriptionLanguage.g:1681:3: ( '!=' )
+                    // InternalDataDescriptionLanguage.g:1681:4: '!='
                     {
                     match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -5858,16 +6027,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:1629:2: ( ( '<' ) )
+                    // InternalDataDescriptionLanguage.g:1685:2: ( ( '<' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1629:2: ( ( '<' ) )
-                    // InternalDataDescriptionLanguage.g:1630:3: ( '<' )
+                    // InternalDataDescriptionLanguage.g:1685:2: ( ( '<' ) )
+                    // InternalDataDescriptionLanguage.g:1686:3: ( '<' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1631:3: ( '<' )
-                    // InternalDataDescriptionLanguage.g:1631:4: '<'
+                    // InternalDataDescriptionLanguage.g:1687:3: ( '<' )
+                    // InternalDataDescriptionLanguage.g:1687:4: '<'
                     {
                     match(input,28,FOLLOW_2); if (state.failed) return ;
 
@@ -5883,16 +6052,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:1635:2: ( ( '<=' ) )
+                    // InternalDataDescriptionLanguage.g:1691:2: ( ( '<=' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1635:2: ( ( '<=' ) )
-                    // InternalDataDescriptionLanguage.g:1636:3: ( '<=' )
+                    // InternalDataDescriptionLanguage.g:1691:2: ( ( '<=' ) )
+                    // InternalDataDescriptionLanguage.g:1692:3: ( '<=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1637:3: ( '<=' )
-                    // InternalDataDescriptionLanguage.g:1637:4: '<='
+                    // InternalDataDescriptionLanguage.g:1693:3: ( '<=' )
+                    // InternalDataDescriptionLanguage.g:1693:4: '<='
                     {
                     match(input,29,FOLLOW_2); if (state.failed) return ;
 
@@ -5925,13 +6094,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1645:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalDataDescriptionLanguage.g:1701:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1649:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalDataDescriptionLanguage.g:1705:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt12=2;
             int LA12_0 = input.LA(1);
 
@@ -5950,16 +6119,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt12) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1650:2: ( ( '+' ) )
+                    // InternalDataDescriptionLanguage.g:1706:2: ( ( '+' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1650:2: ( ( '+' ) )
-                    // InternalDataDescriptionLanguage.g:1651:3: ( '+' )
+                    // InternalDataDescriptionLanguage.g:1706:2: ( ( '+' ) )
+                    // InternalDataDescriptionLanguage.g:1707:3: ( '+' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1652:3: ( '+' )
-                    // InternalDataDescriptionLanguage.g:1652:4: '+'
+                    // InternalDataDescriptionLanguage.g:1708:3: ( '+' )
+                    // InternalDataDescriptionLanguage.g:1708:4: '+'
                     {
                     match(input,30,FOLLOW_2); if (state.failed) return ;
 
@@ -5975,16 +6144,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1656:2: ( ( '-' ) )
+                    // InternalDataDescriptionLanguage.g:1712:2: ( ( '-' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1656:2: ( ( '-' ) )
-                    // InternalDataDescriptionLanguage.g:1657:3: ( '-' )
+                    // InternalDataDescriptionLanguage.g:1712:2: ( ( '-' ) )
+                    // InternalDataDescriptionLanguage.g:1713:3: ( '-' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1658:3: ( '-' )
-                    // InternalDataDescriptionLanguage.g:1658:4: '-'
+                    // InternalDataDescriptionLanguage.g:1714:3: ( '-' )
+                    // InternalDataDescriptionLanguage.g:1714:4: '-'
                     {
                     match(input,31,FOLLOW_2); if (state.failed) return ;
 
@@ -6017,13 +6186,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1666:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalDataDescriptionLanguage.g:1722:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1670:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalDataDescriptionLanguage.g:1726:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt13=3;
             switch ( input.LA(1) ) {
             case 32:
@@ -6051,16 +6220,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt13) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1671:2: ( ( '*' ) )
+                    // InternalDataDescriptionLanguage.g:1727:2: ( ( '*' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1671:2: ( ( '*' ) )
-                    // InternalDataDescriptionLanguage.g:1672:3: ( '*' )
+                    // InternalDataDescriptionLanguage.g:1727:2: ( ( '*' ) )
+                    // InternalDataDescriptionLanguage.g:1728:3: ( '*' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1673:3: ( '*' )
-                    // InternalDataDescriptionLanguage.g:1673:4: '*'
+                    // InternalDataDescriptionLanguage.g:1729:3: ( '*' )
+                    // InternalDataDescriptionLanguage.g:1729:4: '*'
                     {
                     match(input,32,FOLLOW_2); if (state.failed) return ;
 
@@ -6076,16 +6245,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1677:2: ( ( '/' ) )
+                    // InternalDataDescriptionLanguage.g:1733:2: ( ( '/' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1677:2: ( ( '/' ) )
-                    // InternalDataDescriptionLanguage.g:1678:3: ( '/' )
+                    // InternalDataDescriptionLanguage.g:1733:2: ( ( '/' ) )
+                    // InternalDataDescriptionLanguage.g:1734:3: ( '/' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1679:3: ( '/' )
-                    // InternalDataDescriptionLanguage.g:1679:4: '/'
+                    // InternalDataDescriptionLanguage.g:1735:3: ( '/' )
+                    // InternalDataDescriptionLanguage.g:1735:4: '/'
                     {
                     match(input,33,FOLLOW_2); if (state.failed) return ;
 
@@ -6101,16 +6270,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1683:2: ( ( '%' ) )
+                    // InternalDataDescriptionLanguage.g:1739:2: ( ( '%' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1683:2: ( ( '%' ) )
-                    // InternalDataDescriptionLanguage.g:1684:3: ( '%' )
+                    // InternalDataDescriptionLanguage.g:1739:2: ( ( '%' ) )
+                    // InternalDataDescriptionLanguage.g:1740:3: ( '%' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1685:3: ( '%' )
-                    // InternalDataDescriptionLanguage.g:1685:4: '%'
+                    // InternalDataDescriptionLanguage.g:1741:3: ( '%' )
+                    // InternalDataDescriptionLanguage.g:1741:4: '%'
                     {
                     match(input,34,FOLLOW_2); if (state.failed) return ;
 
@@ -6143,13 +6312,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalDataDescriptionLanguage.g:1693:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalDataDescriptionLanguage.g:1749:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1697:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalDataDescriptionLanguage.g:1753:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt14=20;
             switch ( input.LA(1) ) {
             case 35:
@@ -6262,16 +6431,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
             switch (alt14) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1698:2: ( ( 'Y' ) )
+                    // InternalDataDescriptionLanguage.g:1754:2: ( ( 'Y' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1698:2: ( ( 'Y' ) )
-                    // InternalDataDescriptionLanguage.g:1699:3: ( 'Y' )
+                    // InternalDataDescriptionLanguage.g:1754:2: ( ( 'Y' ) )
+                    // InternalDataDescriptionLanguage.g:1755:3: ( 'Y' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1700:3: ( 'Y' )
-                    // InternalDataDescriptionLanguage.g:1700:4: 'Y'
+                    // InternalDataDescriptionLanguage.g:1756:3: ( 'Y' )
+                    // InternalDataDescriptionLanguage.g:1756:4: 'Y'
                     {
                     match(input,35,FOLLOW_2); if (state.failed) return ;
 
@@ -6287,16 +6456,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1704:2: ( ( 'Z' ) )
+                    // InternalDataDescriptionLanguage.g:1760:2: ( ( 'Z' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1704:2: ( ( 'Z' ) )
-                    // InternalDataDescriptionLanguage.g:1705:3: ( 'Z' )
+                    // InternalDataDescriptionLanguage.g:1760:2: ( ( 'Z' ) )
+                    // InternalDataDescriptionLanguage.g:1761:3: ( 'Z' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1706:3: ( 'Z' )
-                    // InternalDataDescriptionLanguage.g:1706:4: 'Z'
+                    // InternalDataDescriptionLanguage.g:1762:3: ( 'Z' )
+                    // InternalDataDescriptionLanguage.g:1762:4: 'Z'
                     {
                     match(input,36,FOLLOW_2); if (state.failed) return ;
 
@@ -6312,16 +6481,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1710:2: ( ( 'E' ) )
+                    // InternalDataDescriptionLanguage.g:1766:2: ( ( 'E' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1710:2: ( ( 'E' ) )
-                    // InternalDataDescriptionLanguage.g:1711:3: ( 'E' )
+                    // InternalDataDescriptionLanguage.g:1766:2: ( ( 'E' ) )
+                    // InternalDataDescriptionLanguage.g:1767:3: ( 'E' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1712:3: ( 'E' )
-                    // InternalDataDescriptionLanguage.g:1712:4: 'E'
+                    // InternalDataDescriptionLanguage.g:1768:3: ( 'E' )
+                    // InternalDataDescriptionLanguage.g:1768:4: 'E'
                     {
                     match(input,37,FOLLOW_2); if (state.failed) return ;
 
@@ -6337,16 +6506,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1716:2: ( ( 'P' ) )
+                    // InternalDataDescriptionLanguage.g:1772:2: ( ( 'P' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1716:2: ( ( 'P' ) )
-                    // InternalDataDescriptionLanguage.g:1717:3: ( 'P' )
+                    // InternalDataDescriptionLanguage.g:1772:2: ( ( 'P' ) )
+                    // InternalDataDescriptionLanguage.g:1773:3: ( 'P' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1718:3: ( 'P' )
-                    // InternalDataDescriptionLanguage.g:1718:4: 'P'
+                    // InternalDataDescriptionLanguage.g:1774:3: ( 'P' )
+                    // InternalDataDescriptionLanguage.g:1774:4: 'P'
                     {
                     match(input,38,FOLLOW_2); if (state.failed) return ;
 
@@ -6362,16 +6531,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:1722:2: ( ( 'T' ) )
+                    // InternalDataDescriptionLanguage.g:1778:2: ( ( 'T' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1722:2: ( ( 'T' ) )
-                    // InternalDataDescriptionLanguage.g:1723:3: ( 'T' )
+                    // InternalDataDescriptionLanguage.g:1778:2: ( ( 'T' ) )
+                    // InternalDataDescriptionLanguage.g:1779:3: ( 'T' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1724:3: ( 'T' )
-                    // InternalDataDescriptionLanguage.g:1724:4: 'T'
+                    // InternalDataDescriptionLanguage.g:1780:3: ( 'T' )
+                    // InternalDataDescriptionLanguage.g:1780:4: 'T'
                     {
                     match(input,39,FOLLOW_2); if (state.failed) return ;
 
@@ -6387,16 +6556,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:1728:2: ( ( 'G' ) )
+                    // InternalDataDescriptionLanguage.g:1784:2: ( ( 'G' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1728:2: ( ( 'G' ) )
-                    // InternalDataDescriptionLanguage.g:1729:3: ( 'G' )
+                    // InternalDataDescriptionLanguage.g:1784:2: ( ( 'G' ) )
+                    // InternalDataDescriptionLanguage.g:1785:3: ( 'G' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1730:3: ( 'G' )
-                    // InternalDataDescriptionLanguage.g:1730:4: 'G'
+                    // InternalDataDescriptionLanguage.g:1786:3: ( 'G' )
+                    // InternalDataDescriptionLanguage.g:1786:4: 'G'
                     {
                     match(input,40,FOLLOW_2); if (state.failed) return ;
 
@@ -6412,16 +6581,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 7 :
-                    // InternalDataDescriptionLanguage.g:1734:2: ( ( 'M' ) )
+                    // InternalDataDescriptionLanguage.g:1790:2: ( ( 'M' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1734:2: ( ( 'M' ) )
-                    // InternalDataDescriptionLanguage.g:1735:3: ( 'M' )
+                    // InternalDataDescriptionLanguage.g:1790:2: ( ( 'M' ) )
+                    // InternalDataDescriptionLanguage.g:1791:3: ( 'M' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1736:3: ( 'M' )
-                    // InternalDataDescriptionLanguage.g:1736:4: 'M'
+                    // InternalDataDescriptionLanguage.g:1792:3: ( 'M' )
+                    // InternalDataDescriptionLanguage.g:1792:4: 'M'
                     {
                     match(input,41,FOLLOW_2); if (state.failed) return ;
 
@@ -6437,16 +6606,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 8 :
-                    // InternalDataDescriptionLanguage.g:1740:2: ( ( 'k' ) )
+                    // InternalDataDescriptionLanguage.g:1796:2: ( ( 'k' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1740:2: ( ( 'k' ) )
-                    // InternalDataDescriptionLanguage.g:1741:3: ( 'k' )
+                    // InternalDataDescriptionLanguage.g:1796:2: ( ( 'k' ) )
+                    // InternalDataDescriptionLanguage.g:1797:3: ( 'k' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1742:3: ( 'k' )
-                    // InternalDataDescriptionLanguage.g:1742:4: 'k'
+                    // InternalDataDescriptionLanguage.g:1798:3: ( 'k' )
+                    // InternalDataDescriptionLanguage.g:1798:4: 'k'
                     {
                     match(input,42,FOLLOW_2); if (state.failed) return ;
 
@@ -6462,16 +6631,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 9 :
-                    // InternalDataDescriptionLanguage.g:1746:2: ( ( 'h' ) )
+                    // InternalDataDescriptionLanguage.g:1802:2: ( ( 'h' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1746:2: ( ( 'h' ) )
-                    // InternalDataDescriptionLanguage.g:1747:3: ( 'h' )
+                    // InternalDataDescriptionLanguage.g:1802:2: ( ( 'h' ) )
+                    // InternalDataDescriptionLanguage.g:1803:3: ( 'h' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1748:3: ( 'h' )
-                    // InternalDataDescriptionLanguage.g:1748:4: 'h'
+                    // InternalDataDescriptionLanguage.g:1804:3: ( 'h' )
+                    // InternalDataDescriptionLanguage.g:1804:4: 'h'
                     {
                     match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -6487,16 +6656,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 10 :
-                    // InternalDataDescriptionLanguage.g:1752:2: ( ( 'da' ) )
+                    // InternalDataDescriptionLanguage.g:1808:2: ( ( 'da' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1752:2: ( ( 'da' ) )
-                    // InternalDataDescriptionLanguage.g:1753:3: ( 'da' )
+                    // InternalDataDescriptionLanguage.g:1808:2: ( ( 'da' ) )
+                    // InternalDataDescriptionLanguage.g:1809:3: ( 'da' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1754:3: ( 'da' )
-                    // InternalDataDescriptionLanguage.g:1754:4: 'da'
+                    // InternalDataDescriptionLanguage.g:1810:3: ( 'da' )
+                    // InternalDataDescriptionLanguage.g:1810:4: 'da'
                     {
                     match(input,44,FOLLOW_2); if (state.failed) return ;
 
@@ -6512,16 +6681,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 11 :
-                    // InternalDataDescriptionLanguage.g:1758:2: ( ( 'd' ) )
+                    // InternalDataDescriptionLanguage.g:1814:2: ( ( 'd' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1758:2: ( ( 'd' ) )
-                    // InternalDataDescriptionLanguage.g:1759:3: ( 'd' )
+                    // InternalDataDescriptionLanguage.g:1814:2: ( ( 'd' ) )
+                    // InternalDataDescriptionLanguage.g:1815:3: ( 'd' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1760:3: ( 'd' )
-                    // InternalDataDescriptionLanguage.g:1760:4: 'd'
+                    // InternalDataDescriptionLanguage.g:1816:3: ( 'd' )
+                    // InternalDataDescriptionLanguage.g:1816:4: 'd'
                     {
                     match(input,45,FOLLOW_2); if (state.failed) return ;
 
@@ -6537,16 +6706,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 12 :
-                    // InternalDataDescriptionLanguage.g:1764:2: ( ( 'c' ) )
+                    // InternalDataDescriptionLanguage.g:1820:2: ( ( 'c' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1764:2: ( ( 'c' ) )
-                    // InternalDataDescriptionLanguage.g:1765:3: ( 'c' )
+                    // InternalDataDescriptionLanguage.g:1820:2: ( ( 'c' ) )
+                    // InternalDataDescriptionLanguage.g:1821:3: ( 'c' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1766:3: ( 'c' )
-                    // InternalDataDescriptionLanguage.g:1766:4: 'c'
+                    // InternalDataDescriptionLanguage.g:1822:3: ( 'c' )
+                    // InternalDataDescriptionLanguage.g:1822:4: 'c'
                     {
                     match(input,46,FOLLOW_2); if (state.failed) return ;
 
@@ -6562,16 +6731,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 13 :
-                    // InternalDataDescriptionLanguage.g:1770:2: ( ( 'm' ) )
+                    // InternalDataDescriptionLanguage.g:1826:2: ( ( 'm' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1770:2: ( ( 'm' ) )
-                    // InternalDataDescriptionLanguage.g:1771:3: ( 'm' )
+                    // InternalDataDescriptionLanguage.g:1826:2: ( ( 'm' ) )
+                    // InternalDataDescriptionLanguage.g:1827:3: ( 'm' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1772:3: ( 'm' )
-                    // InternalDataDescriptionLanguage.g:1772:4: 'm'
+                    // InternalDataDescriptionLanguage.g:1828:3: ( 'm' )
+                    // InternalDataDescriptionLanguage.g:1828:4: 'm'
                     {
                     match(input,47,FOLLOW_2); if (state.failed) return ;
 
@@ -6587,16 +6756,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 14 :
-                    // InternalDataDescriptionLanguage.g:1776:2: ( ( '\\u00B5' ) )
+                    // InternalDataDescriptionLanguage.g:1832:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1776:2: ( ( '\\u00B5' ) )
-                    // InternalDataDescriptionLanguage.g:1777:3: ( '\\u00B5' )
+                    // InternalDataDescriptionLanguage.g:1832:2: ( ( '\\u00B5' ) )
+                    // InternalDataDescriptionLanguage.g:1833:3: ( '\\u00B5' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1778:3: ( '\\u00B5' )
-                    // InternalDataDescriptionLanguage.g:1778:4: '\\u00B5'
+                    // InternalDataDescriptionLanguage.g:1834:3: ( '\\u00B5' )
+                    // InternalDataDescriptionLanguage.g:1834:4: '\\u00B5'
                     {
                     match(input,48,FOLLOW_2); if (state.failed) return ;
 
@@ -6612,16 +6781,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 15 :
-                    // InternalDataDescriptionLanguage.g:1782:2: ( ( 'n' ) )
+                    // InternalDataDescriptionLanguage.g:1838:2: ( ( 'n' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1782:2: ( ( 'n' ) )
-                    // InternalDataDescriptionLanguage.g:1783:3: ( 'n' )
+                    // InternalDataDescriptionLanguage.g:1838:2: ( ( 'n' ) )
+                    // InternalDataDescriptionLanguage.g:1839:3: ( 'n' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1784:3: ( 'n' )
-                    // InternalDataDescriptionLanguage.g:1784:4: 'n'
+                    // InternalDataDescriptionLanguage.g:1840:3: ( 'n' )
+                    // InternalDataDescriptionLanguage.g:1840:4: 'n'
                     {
                     match(input,49,FOLLOW_2); if (state.failed) return ;
 
@@ -6637,16 +6806,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 16 :
-                    // InternalDataDescriptionLanguage.g:1788:2: ( ( 'p' ) )
+                    // InternalDataDescriptionLanguage.g:1844:2: ( ( 'p' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1788:2: ( ( 'p' ) )
-                    // InternalDataDescriptionLanguage.g:1789:3: ( 'p' )
+                    // InternalDataDescriptionLanguage.g:1844:2: ( ( 'p' ) )
+                    // InternalDataDescriptionLanguage.g:1845:3: ( 'p' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1790:3: ( 'p' )
-                    // InternalDataDescriptionLanguage.g:1790:4: 'p'
+                    // InternalDataDescriptionLanguage.g:1846:3: ( 'p' )
+                    // InternalDataDescriptionLanguage.g:1846:4: 'p'
                     {
                     match(input,50,FOLLOW_2); if (state.failed) return ;
 
@@ -6662,16 +6831,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 17 :
-                    // InternalDataDescriptionLanguage.g:1794:2: ( ( 'f' ) )
+                    // InternalDataDescriptionLanguage.g:1850:2: ( ( 'f' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1794:2: ( ( 'f' ) )
-                    // InternalDataDescriptionLanguage.g:1795:3: ( 'f' )
+                    // InternalDataDescriptionLanguage.g:1850:2: ( ( 'f' ) )
+                    // InternalDataDescriptionLanguage.g:1851:3: ( 'f' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1796:3: ( 'f' )
-                    // InternalDataDescriptionLanguage.g:1796:4: 'f'
+                    // InternalDataDescriptionLanguage.g:1852:3: ( 'f' )
+                    // InternalDataDescriptionLanguage.g:1852:4: 'f'
                     {
                     match(input,51,FOLLOW_2); if (state.failed) return ;
 
@@ -6687,16 +6856,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 18 :
-                    // InternalDataDescriptionLanguage.g:1800:2: ( ( 'a' ) )
+                    // InternalDataDescriptionLanguage.g:1856:2: ( ( 'a' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1800:2: ( ( 'a' ) )
-                    // InternalDataDescriptionLanguage.g:1801:3: ( 'a' )
+                    // InternalDataDescriptionLanguage.g:1856:2: ( ( 'a' ) )
+                    // InternalDataDescriptionLanguage.g:1857:3: ( 'a' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1802:3: ( 'a' )
-                    // InternalDataDescriptionLanguage.g:1802:4: 'a'
+                    // InternalDataDescriptionLanguage.g:1858:3: ( 'a' )
+                    // InternalDataDescriptionLanguage.g:1858:4: 'a'
                     {
                     match(input,52,FOLLOW_2); if (state.failed) return ;
 
@@ -6712,16 +6881,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 19 :
-                    // InternalDataDescriptionLanguage.g:1806:2: ( ( 'z' ) )
+                    // InternalDataDescriptionLanguage.g:1862:2: ( ( 'z' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1806:2: ( ( 'z' ) )
-                    // InternalDataDescriptionLanguage.g:1807:3: ( 'z' )
+                    // InternalDataDescriptionLanguage.g:1862:2: ( ( 'z' ) )
+                    // InternalDataDescriptionLanguage.g:1863:3: ( 'z' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1808:3: ( 'z' )
-                    // InternalDataDescriptionLanguage.g:1808:4: 'z'
+                    // InternalDataDescriptionLanguage.g:1864:3: ( 'z' )
+                    // InternalDataDescriptionLanguage.g:1864:4: 'z'
                     {
                     match(input,53,FOLLOW_2); if (state.failed) return ;
 
@@ -6737,16 +6906,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 20 :
-                    // InternalDataDescriptionLanguage.g:1812:2: ( ( 'y' ) )
+                    // InternalDataDescriptionLanguage.g:1868:2: ( ( 'y' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1812:2: ( ( 'y' ) )
-                    // InternalDataDescriptionLanguage.g:1813:3: ( 'y' )
+                    // InternalDataDescriptionLanguage.g:1868:2: ( ( 'y' ) )
+                    // InternalDataDescriptionLanguage.g:1869:3: ( 'y' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
                     }
-                    // InternalDataDescriptionLanguage.g:1814:3: ( 'y' )
-                    // InternalDataDescriptionLanguage.g:1814:4: 'y'
+                    // InternalDataDescriptionLanguage.g:1870:3: ( 'y' )
+                    // InternalDataDescriptionLanguage.g:1870:4: 'y'
                     {
                     match(input,54,FOLLOW_2); if (state.failed) return ;
 
@@ -6779,14 +6948,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__0"
-    // InternalDataDescriptionLanguage.g:1822:1: rule__DataDescriptionModelRule__Group__0 : rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:1878:1: rule__DataDescriptionModelRule__Group__0 : rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1 ;
     public final void rule__DataDescriptionModelRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1826:1: ( rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:1827:2: rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1
+            // InternalDataDescriptionLanguage.g:1882:1: ( rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:1883:2: rule__DataDescriptionModelRule__Group__0__Impl rule__DataDescriptionModelRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__DataDescriptionModelRule__Group__0__Impl();
@@ -6817,23 +6986,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:1834:1: rule__DataDescriptionModelRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:1890:1: rule__DataDescriptionModelRule__Group__0__Impl : ( () ) ;
     public final void rule__DataDescriptionModelRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1838:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:1839:1: ( () )
+            // InternalDataDescriptionLanguage.g:1894:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:1895:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:1839:1: ( () )
-            // InternalDataDescriptionLanguage.g:1840:2: ()
+            // InternalDataDescriptionLanguage.g:1895:1: ( () )
+            // InternalDataDescriptionLanguage.g:1896:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getDataDescriptionModelAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:1841:2: ()
-            // InternalDataDescriptionLanguage.g:1841:3: 
+            // InternalDataDescriptionLanguage.g:1897:2: ()
+            // InternalDataDescriptionLanguage.g:1897:3: 
             {
             }
 
@@ -6858,14 +7027,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__1"
-    // InternalDataDescriptionLanguage.g:1849:1: rule__DataDescriptionModelRule__Group__1 : rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:1905:1: rule__DataDescriptionModelRule__Group__1 : rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2 ;
     public final void rule__DataDescriptionModelRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1853:1: ( rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:1854:2: rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2
+            // InternalDataDescriptionLanguage.g:1909:1: ( rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:1910:2: rule__DataDescriptionModelRule__Group__1__Impl rule__DataDescriptionModelRule__Group__2
             {
             pushFollow(FOLLOW_3);
             rule__DataDescriptionModelRule__Group__1__Impl();
@@ -6896,22 +7065,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:1861:1: rule__DataDescriptionModelRule__Group__1__Impl : ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* ) ;
+    // InternalDataDescriptionLanguage.g:1917:1: rule__DataDescriptionModelRule__Group__1__Impl : ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* ) ;
     public final void rule__DataDescriptionModelRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1865:1: ( ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* ) )
-            // InternalDataDescriptionLanguage.g:1866:1: ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* )
+            // InternalDataDescriptionLanguage.g:1921:1: ( ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* ) )
+            // InternalDataDescriptionLanguage.g:1922:1: ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* )
             {
-            // InternalDataDescriptionLanguage.g:1866:1: ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* )
-            // InternalDataDescriptionLanguage.g:1867:2: ( rule__DataDescriptionModelRule__UsesAssignment_1 )*
+            // InternalDataDescriptionLanguage.g:1922:1: ( ( rule__DataDescriptionModelRule__UsesAssignment_1 )* )
+            // InternalDataDescriptionLanguage.g:1923:2: ( rule__DataDescriptionModelRule__UsesAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getUsesAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:1868:2: ( rule__DataDescriptionModelRule__UsesAssignment_1 )*
+            // InternalDataDescriptionLanguage.g:1924:2: ( rule__DataDescriptionModelRule__UsesAssignment_1 )*
             loop15:
             do {
                 int alt15=2;
@@ -6924,7 +7093,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:1868:3: rule__DataDescriptionModelRule__UsesAssignment_1
+            	    // InternalDataDescriptionLanguage.g:1924:3: rule__DataDescriptionModelRule__UsesAssignment_1
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__DataDescriptionModelRule__UsesAssignment_1();
@@ -6965,14 +7134,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__2"
-    // InternalDataDescriptionLanguage.g:1876:1: rule__DataDescriptionModelRule__Group__2 : rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:1932:1: rule__DataDescriptionModelRule__Group__2 : rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3 ;
     public final void rule__DataDescriptionModelRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1880:1: ( rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:1881:2: rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3
+            // InternalDataDescriptionLanguage.g:1936:1: ( rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:1937:2: rule__DataDescriptionModelRule__Group__2__Impl rule__DataDescriptionModelRule__Group__3
             {
             pushFollow(FOLLOW_3);
             rule__DataDescriptionModelRule__Group__2__Impl();
@@ -7003,22 +7172,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:1888:1: rule__DataDescriptionModelRule__Group__2__Impl : ( ( rule__DataDescriptionModelRule__Group_2__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:1944:1: rule__DataDescriptionModelRule__Group__2__Impl : ( ( rule__DataDescriptionModelRule__Group_2__0 )? ) ;
     public final void rule__DataDescriptionModelRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1892:1: ( ( ( rule__DataDescriptionModelRule__Group_2__0 )? ) )
-            // InternalDataDescriptionLanguage.g:1893:1: ( ( rule__DataDescriptionModelRule__Group_2__0 )? )
+            // InternalDataDescriptionLanguage.g:1948:1: ( ( ( rule__DataDescriptionModelRule__Group_2__0 )? ) )
+            // InternalDataDescriptionLanguage.g:1949:1: ( ( rule__DataDescriptionModelRule__Group_2__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:1893:1: ( ( rule__DataDescriptionModelRule__Group_2__0 )? )
-            // InternalDataDescriptionLanguage.g:1894:2: ( rule__DataDescriptionModelRule__Group_2__0 )?
+            // InternalDataDescriptionLanguage.g:1949:1: ( ( rule__DataDescriptionModelRule__Group_2__0 )? )
+            // InternalDataDescriptionLanguage.g:1950:2: ( rule__DataDescriptionModelRule__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getGroup_2()); 
             }
-            // InternalDataDescriptionLanguage.g:1895:2: ( rule__DataDescriptionModelRule__Group_2__0 )?
+            // InternalDataDescriptionLanguage.g:1951:2: ( rule__DataDescriptionModelRule__Group_2__0 )?
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -7027,7 +7196,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt16) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1895:3: rule__DataDescriptionModelRule__Group_2__0
+                    // InternalDataDescriptionLanguage.g:1951:3: rule__DataDescriptionModelRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DataDescriptionModelRule__Group_2__0();
@@ -7065,14 +7234,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__3"
-    // InternalDataDescriptionLanguage.g:1903:1: rule__DataDescriptionModelRule__Group__3 : rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4 ;
+    // InternalDataDescriptionLanguage.g:1959:1: rule__DataDescriptionModelRule__Group__3 : rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4 ;
     public final void rule__DataDescriptionModelRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1907:1: ( rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4 )
-            // InternalDataDescriptionLanguage.g:1908:2: rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4
+            // InternalDataDescriptionLanguage.g:1963:1: ( rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:1964:2: rule__DataDescriptionModelRule__Group__3__Impl rule__DataDescriptionModelRule__Group__4
             {
             pushFollow(FOLLOW_3);
             rule__DataDescriptionModelRule__Group__3__Impl();
@@ -7103,22 +7272,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:1915:1: rule__DataDescriptionModelRule__Group__3__Impl : ( ( rule__DataDescriptionModelRule__Group_3__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:1971:1: rule__DataDescriptionModelRule__Group__3__Impl : ( ( rule__DataDescriptionModelRule__Group_3__0 )? ) ;
     public final void rule__DataDescriptionModelRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1919:1: ( ( ( rule__DataDescriptionModelRule__Group_3__0 )? ) )
-            // InternalDataDescriptionLanguage.g:1920:1: ( ( rule__DataDescriptionModelRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:1975:1: ( ( ( rule__DataDescriptionModelRule__Group_3__0 )? ) )
+            // InternalDataDescriptionLanguage.g:1976:1: ( ( rule__DataDescriptionModelRule__Group_3__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:1920:1: ( ( rule__DataDescriptionModelRule__Group_3__0 )? )
-            // InternalDataDescriptionLanguage.g:1921:2: ( rule__DataDescriptionModelRule__Group_3__0 )?
+            // InternalDataDescriptionLanguage.g:1976:1: ( ( rule__DataDescriptionModelRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:1977:2: ( rule__DataDescriptionModelRule__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getGroup_3()); 
             }
-            // InternalDataDescriptionLanguage.g:1922:2: ( rule__DataDescriptionModelRule__Group_3__0 )?
+            // InternalDataDescriptionLanguage.g:1978:2: ( rule__DataDescriptionModelRule__Group_3__0 )?
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -7127,7 +7296,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt17) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1922:3: rule__DataDescriptionModelRule__Group_3__0
+                    // InternalDataDescriptionLanguage.g:1978:3: rule__DataDescriptionModelRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DataDescriptionModelRule__Group_3__0();
@@ -7165,14 +7334,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__4"
-    // InternalDataDescriptionLanguage.g:1930:1: rule__DataDescriptionModelRule__Group__4 : rule__DataDescriptionModelRule__Group__4__Impl ;
+    // InternalDataDescriptionLanguage.g:1986:1: rule__DataDescriptionModelRule__Group__4 : rule__DataDescriptionModelRule__Group__4__Impl ;
     public final void rule__DataDescriptionModelRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1934:1: ( rule__DataDescriptionModelRule__Group__4__Impl )
-            // InternalDataDescriptionLanguage.g:1935:2: rule__DataDescriptionModelRule__Group__4__Impl
+            // InternalDataDescriptionLanguage.g:1990:1: ( rule__DataDescriptionModelRule__Group__4__Impl )
+            // InternalDataDescriptionLanguage.g:1991:2: rule__DataDescriptionModelRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataDescriptionModelRule__Group__4__Impl();
@@ -7198,22 +7367,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group__4__Impl"
-    // InternalDataDescriptionLanguage.g:1941:1: rule__DataDescriptionModelRule__Group__4__Impl : ( ( rule__DataDescriptionModelRule__Group_4__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:1997:1: rule__DataDescriptionModelRule__Group__4__Impl : ( ( rule__DataDescriptionModelRule__Group_4__0 )? ) ;
     public final void rule__DataDescriptionModelRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1945:1: ( ( ( rule__DataDescriptionModelRule__Group_4__0 )? ) )
-            // InternalDataDescriptionLanguage.g:1946:1: ( ( rule__DataDescriptionModelRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:2001:1: ( ( ( rule__DataDescriptionModelRule__Group_4__0 )? ) )
+            // InternalDataDescriptionLanguage.g:2002:1: ( ( rule__DataDescriptionModelRule__Group_4__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:1946:1: ( ( rule__DataDescriptionModelRule__Group_4__0 )? )
-            // InternalDataDescriptionLanguage.g:1947:2: ( rule__DataDescriptionModelRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:2002:1: ( ( rule__DataDescriptionModelRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:2003:2: ( rule__DataDescriptionModelRule__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getGroup_4()); 
             }
-            // InternalDataDescriptionLanguage.g:1948:2: ( rule__DataDescriptionModelRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:2004:2: ( rule__DataDescriptionModelRule__Group_4__0 )?
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -7222,7 +7391,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt18) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1948:3: rule__DataDescriptionModelRule__Group_4__0
+                    // InternalDataDescriptionLanguage.g:2004:3: rule__DataDescriptionModelRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DataDescriptionModelRule__Group_4__0();
@@ -7260,14 +7429,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__0"
-    // InternalDataDescriptionLanguage.g:1957:1: rule__DataDescriptionModelRule__Group_2__0 : rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1 ;
+    // InternalDataDescriptionLanguage.g:2013:1: rule__DataDescriptionModelRule__Group_2__0 : rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1 ;
     public final void rule__DataDescriptionModelRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1961:1: ( rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1 )
-            // InternalDataDescriptionLanguage.g:1962:2: rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1
+            // InternalDataDescriptionLanguage.g:2017:1: ( rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1 )
+            // InternalDataDescriptionLanguage.g:2018:2: rule__DataDescriptionModelRule__Group_2__0__Impl rule__DataDescriptionModelRule__Group_2__1
             {
             pushFollow(FOLLOW_5);
             rule__DataDescriptionModelRule__Group_2__0__Impl();
@@ -7298,17 +7467,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__0__Impl"
-    // InternalDataDescriptionLanguage.g:1969:1: rule__DataDescriptionModelRule__Group_2__0__Impl : ( 'types' ) ;
+    // InternalDataDescriptionLanguage.g:2025:1: rule__DataDescriptionModelRule__Group_2__0__Impl : ( 'types' ) ;
     public final void rule__DataDescriptionModelRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1973:1: ( ( 'types' ) )
-            // InternalDataDescriptionLanguage.g:1974:1: ( 'types' )
+            // InternalDataDescriptionLanguage.g:2029:1: ( ( 'types' ) )
+            // InternalDataDescriptionLanguage.g:2030:1: ( 'types' )
             {
-            // InternalDataDescriptionLanguage.g:1974:1: ( 'types' )
-            // InternalDataDescriptionLanguage.g:1975:2: 'types'
+            // InternalDataDescriptionLanguage.g:2030:1: ( 'types' )
+            // InternalDataDescriptionLanguage.g:2031:2: 'types'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getTypesKeyword_2_0()); 
@@ -7339,14 +7508,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__1"
-    // InternalDataDescriptionLanguage.g:1984:1: rule__DataDescriptionModelRule__Group_2__1 : rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2 ;
+    // InternalDataDescriptionLanguage.g:2040:1: rule__DataDescriptionModelRule__Group_2__1 : rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2 ;
     public final void rule__DataDescriptionModelRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:1988:1: ( rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2 )
-            // InternalDataDescriptionLanguage.g:1989:2: rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2
+            // InternalDataDescriptionLanguage.g:2044:1: ( rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2 )
+            // InternalDataDescriptionLanguage.g:2045:2: rule__DataDescriptionModelRule__Group_2__1__Impl rule__DataDescriptionModelRule__Group_2__2
             {
             pushFollow(FOLLOW_6);
             rule__DataDescriptionModelRule__Group_2__1__Impl();
@@ -7377,17 +7546,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__1__Impl"
-    // InternalDataDescriptionLanguage.g:1996:1: rule__DataDescriptionModelRule__Group_2__1__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2052:1: rule__DataDescriptionModelRule__Group_2__1__Impl : ( ':' ) ;
     public final void rule__DataDescriptionModelRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2000:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2001:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2056:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2057:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2001:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2002:2: ':'
+            // InternalDataDescriptionLanguage.g:2057:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2058:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getColonKeyword_2_1()); 
@@ -7418,14 +7587,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__2"
-    // InternalDataDescriptionLanguage.g:2011:1: rule__DataDescriptionModelRule__Group_2__2 : rule__DataDescriptionModelRule__Group_2__2__Impl ;
+    // InternalDataDescriptionLanguage.g:2067:1: rule__DataDescriptionModelRule__Group_2__2 : rule__DataDescriptionModelRule__Group_2__2__Impl ;
     public final void rule__DataDescriptionModelRule__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2015:1: ( rule__DataDescriptionModelRule__Group_2__2__Impl )
-            // InternalDataDescriptionLanguage.g:2016:2: rule__DataDescriptionModelRule__Group_2__2__Impl
+            // InternalDataDescriptionLanguage.g:2071:1: ( rule__DataDescriptionModelRule__Group_2__2__Impl )
+            // InternalDataDescriptionLanguage.g:2072:2: rule__DataDescriptionModelRule__Group_2__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataDescriptionModelRule__Group_2__2__Impl();
@@ -7451,22 +7620,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_2__2__Impl"
-    // InternalDataDescriptionLanguage.g:2022:1: rule__DataDescriptionModelRule__Group_2__2__Impl : ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* ) ;
+    // InternalDataDescriptionLanguage.g:2078:1: rule__DataDescriptionModelRule__Group_2__2__Impl : ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* ) ;
     public final void rule__DataDescriptionModelRule__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2026:1: ( ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* ) )
-            // InternalDataDescriptionLanguage.g:2027:1: ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* )
+            // InternalDataDescriptionLanguage.g:2082:1: ( ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* ) )
+            // InternalDataDescriptionLanguage.g:2083:1: ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* )
             {
-            // InternalDataDescriptionLanguage.g:2027:1: ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* )
-            // InternalDataDescriptionLanguage.g:2028:2: ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )*
+            // InternalDataDescriptionLanguage.g:2083:1: ( ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )* )
+            // InternalDataDescriptionLanguage.g:2084:2: ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getTypesAssignment_2_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2029:2: ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )*
+            // InternalDataDescriptionLanguage.g:2085:2: ( rule__DataDescriptionModelRule__TypesAssignment_2_2 )*
             loop19:
             do {
                 int alt19=2;
@@ -7479,7 +7648,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt19) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2029:3: rule__DataDescriptionModelRule__TypesAssignment_2_2
+            	    // InternalDataDescriptionLanguage.g:2085:3: rule__DataDescriptionModelRule__TypesAssignment_2_2
             	    {
             	    pushFollow(FOLLOW_7);
             	    rule__DataDescriptionModelRule__TypesAssignment_2_2();
@@ -7520,14 +7689,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__0"
-    // InternalDataDescriptionLanguage.g:2038:1: rule__DataDescriptionModelRule__Group_3__0 : rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1 ;
+    // InternalDataDescriptionLanguage.g:2094:1: rule__DataDescriptionModelRule__Group_3__0 : rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1 ;
     public final void rule__DataDescriptionModelRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2042:1: ( rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1 )
-            // InternalDataDescriptionLanguage.g:2043:2: rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1
+            // InternalDataDescriptionLanguage.g:2098:1: ( rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1 )
+            // InternalDataDescriptionLanguage.g:2099:2: rule__DataDescriptionModelRule__Group_3__0__Impl rule__DataDescriptionModelRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__DataDescriptionModelRule__Group_3__0__Impl();
@@ -7558,17 +7727,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__0__Impl"
-    // InternalDataDescriptionLanguage.g:2050:1: rule__DataDescriptionModelRule__Group_3__0__Impl : ( 'data' ) ;
+    // InternalDataDescriptionLanguage.g:2106:1: rule__DataDescriptionModelRule__Group_3__0__Impl : ( 'data' ) ;
     public final void rule__DataDescriptionModelRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2054:1: ( ( 'data' ) )
-            // InternalDataDescriptionLanguage.g:2055:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:2110:1: ( ( 'data' ) )
+            // InternalDataDescriptionLanguage.g:2111:1: ( 'data' )
             {
-            // InternalDataDescriptionLanguage.g:2055:1: ( 'data' )
-            // InternalDataDescriptionLanguage.g:2056:2: 'data'
+            // InternalDataDescriptionLanguage.g:2111:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:2112:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getDataKeyword_3_0()); 
@@ -7599,14 +7768,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__1"
-    // InternalDataDescriptionLanguage.g:2065:1: rule__DataDescriptionModelRule__Group_3__1 : rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2 ;
+    // InternalDataDescriptionLanguage.g:2121:1: rule__DataDescriptionModelRule__Group_3__1 : rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2 ;
     public final void rule__DataDescriptionModelRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2069:1: ( rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2 )
-            // InternalDataDescriptionLanguage.g:2070:2: rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2
+            // InternalDataDescriptionLanguage.g:2125:1: ( rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2 )
+            // InternalDataDescriptionLanguage.g:2126:2: rule__DataDescriptionModelRule__Group_3__1__Impl rule__DataDescriptionModelRule__Group_3__2
             {
             pushFollow(FOLLOW_8);
             rule__DataDescriptionModelRule__Group_3__1__Impl();
@@ -7637,17 +7806,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__1__Impl"
-    // InternalDataDescriptionLanguage.g:2077:1: rule__DataDescriptionModelRule__Group_3__1__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2133:1: rule__DataDescriptionModelRule__Group_3__1__Impl : ( ':' ) ;
     public final void rule__DataDescriptionModelRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2081:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2082:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2137:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2138:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2082:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2083:2: ':'
+            // InternalDataDescriptionLanguage.g:2138:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2139:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getColonKeyword_3_1()); 
@@ -7678,14 +7847,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__2"
-    // InternalDataDescriptionLanguage.g:2092:1: rule__DataDescriptionModelRule__Group_3__2 : rule__DataDescriptionModelRule__Group_3__2__Impl ;
+    // InternalDataDescriptionLanguage.g:2148:1: rule__DataDescriptionModelRule__Group_3__2 : rule__DataDescriptionModelRule__Group_3__2__Impl ;
     public final void rule__DataDescriptionModelRule__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2096:1: ( rule__DataDescriptionModelRule__Group_3__2__Impl )
-            // InternalDataDescriptionLanguage.g:2097:2: rule__DataDescriptionModelRule__Group_3__2__Impl
+            // InternalDataDescriptionLanguage.g:2152:1: ( rule__DataDescriptionModelRule__Group_3__2__Impl )
+            // InternalDataDescriptionLanguage.g:2153:2: rule__DataDescriptionModelRule__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataDescriptionModelRule__Group_3__2__Impl();
@@ -7711,22 +7880,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_3__2__Impl"
-    // InternalDataDescriptionLanguage.g:2103:1: rule__DataDescriptionModelRule__Group_3__2__Impl : ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* ) ;
+    // InternalDataDescriptionLanguage.g:2159:1: rule__DataDescriptionModelRule__Group_3__2__Impl : ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* ) ;
     public final void rule__DataDescriptionModelRule__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2107:1: ( ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* ) )
-            // InternalDataDescriptionLanguage.g:2108:1: ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* )
+            // InternalDataDescriptionLanguage.g:2163:1: ( ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* ) )
+            // InternalDataDescriptionLanguage.g:2164:1: ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* )
             {
-            // InternalDataDescriptionLanguage.g:2108:1: ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* )
-            // InternalDataDescriptionLanguage.g:2109:2: ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )*
+            // InternalDataDescriptionLanguage.g:2164:1: ( ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )* )
+            // InternalDataDescriptionLanguage.g:2165:2: ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getDescriptionsAssignment_3_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2110:2: ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )*
+            // InternalDataDescriptionLanguage.g:2166:2: ( rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 )*
             loop20:
             do {
                 int alt20=2;
@@ -7739,7 +7908,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt20) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2110:3: rule__DataDescriptionModelRule__DescriptionsAssignment_3_2
+            	    // InternalDataDescriptionLanguage.g:2166:3: rule__DataDescriptionModelRule__DescriptionsAssignment_3_2
             	    {
             	    pushFollow(FOLLOW_9);
             	    rule__DataDescriptionModelRule__DescriptionsAssignment_3_2();
@@ -7780,14 +7949,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__0"
-    // InternalDataDescriptionLanguage.g:2119:1: rule__DataDescriptionModelRule__Group_4__0 : rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1 ;
+    // InternalDataDescriptionLanguage.g:2175:1: rule__DataDescriptionModelRule__Group_4__0 : rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1 ;
     public final void rule__DataDescriptionModelRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2123:1: ( rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1 )
-            // InternalDataDescriptionLanguage.g:2124:2: rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1
+            // InternalDataDescriptionLanguage.g:2179:1: ( rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1 )
+            // InternalDataDescriptionLanguage.g:2180:2: rule__DataDescriptionModelRule__Group_4__0__Impl rule__DataDescriptionModelRule__Group_4__1
             {
             pushFollow(FOLLOW_5);
             rule__DataDescriptionModelRule__Group_4__0__Impl();
@@ -7818,17 +7987,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__0__Impl"
-    // InternalDataDescriptionLanguage.g:2131:1: rule__DataDescriptionModelRule__Group_4__0__Impl : ( 'constraints' ) ;
+    // InternalDataDescriptionLanguage.g:2187:1: rule__DataDescriptionModelRule__Group_4__0__Impl : ( 'constraints' ) ;
     public final void rule__DataDescriptionModelRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2135:1: ( ( 'constraints' ) )
-            // InternalDataDescriptionLanguage.g:2136:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2191:1: ( ( 'constraints' ) )
+            // InternalDataDescriptionLanguage.g:2192:1: ( 'constraints' )
             {
-            // InternalDataDescriptionLanguage.g:2136:1: ( 'constraints' )
-            // InternalDataDescriptionLanguage.g:2137:2: 'constraints'
+            // InternalDataDescriptionLanguage.g:2192:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2193:2: 'constraints'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getConstraintsKeyword_4_0()); 
@@ -7859,14 +8028,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__1"
-    // InternalDataDescriptionLanguage.g:2146:1: rule__DataDescriptionModelRule__Group_4__1 : rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2 ;
+    // InternalDataDescriptionLanguage.g:2202:1: rule__DataDescriptionModelRule__Group_4__1 : rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2 ;
     public final void rule__DataDescriptionModelRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2150:1: ( rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2 )
-            // InternalDataDescriptionLanguage.g:2151:2: rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2
+            // InternalDataDescriptionLanguage.g:2206:1: ( rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2 )
+            // InternalDataDescriptionLanguage.g:2207:2: rule__DataDescriptionModelRule__Group_4__1__Impl rule__DataDescriptionModelRule__Group_4__2
             {
             pushFollow(FOLLOW_10);
             rule__DataDescriptionModelRule__Group_4__1__Impl();
@@ -7897,17 +8066,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__1__Impl"
-    // InternalDataDescriptionLanguage.g:2158:1: rule__DataDescriptionModelRule__Group_4__1__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2214:1: rule__DataDescriptionModelRule__Group_4__1__Impl : ( ':' ) ;
     public final void rule__DataDescriptionModelRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2162:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2163:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2218:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2219:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2163:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2164:2: ':'
+            // InternalDataDescriptionLanguage.g:2219:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2220:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getColonKeyword_4_1()); 
@@ -7938,14 +8107,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__2"
-    // InternalDataDescriptionLanguage.g:2173:1: rule__DataDescriptionModelRule__Group_4__2 : rule__DataDescriptionModelRule__Group_4__2__Impl ;
+    // InternalDataDescriptionLanguage.g:2229:1: rule__DataDescriptionModelRule__Group_4__2 : rule__DataDescriptionModelRule__Group_4__2__Impl ;
     public final void rule__DataDescriptionModelRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2177:1: ( rule__DataDescriptionModelRule__Group_4__2__Impl )
-            // InternalDataDescriptionLanguage.g:2178:2: rule__DataDescriptionModelRule__Group_4__2__Impl
+            // InternalDataDescriptionLanguage.g:2233:1: ( rule__DataDescriptionModelRule__Group_4__2__Impl )
+            // InternalDataDescriptionLanguage.g:2234:2: rule__DataDescriptionModelRule__Group_4__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataDescriptionModelRule__Group_4__2__Impl();
@@ -7971,35 +8140,35 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__Group_4__2__Impl"
-    // InternalDataDescriptionLanguage.g:2184:1: rule__DataDescriptionModelRule__Group_4__2__Impl : ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* ) ;
+    // InternalDataDescriptionLanguage.g:2240:1: rule__DataDescriptionModelRule__Group_4__2__Impl : ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* ) ;
     public final void rule__DataDescriptionModelRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2188:1: ( ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* ) )
-            // InternalDataDescriptionLanguage.g:2189:1: ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* )
+            // InternalDataDescriptionLanguage.g:2244:1: ( ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* ) )
+            // InternalDataDescriptionLanguage.g:2245:1: ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* )
             {
-            // InternalDataDescriptionLanguage.g:2189:1: ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* )
-            // InternalDataDescriptionLanguage.g:2190:2: ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )*
+            // InternalDataDescriptionLanguage.g:2245:1: ( ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )* )
+            // InternalDataDescriptionLanguage.g:2246:2: ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getConstraintsAssignment_4_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2191:2: ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )*
+            // InternalDataDescriptionLanguage.g:2247:2: ( rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 )*
             loop21:
             do {
                 int alt21=2;
                 int LA21_0 = input.LA(1);
 
-                if ( ((LA21_0>=RULE_QUOTED_ID && LA21_0<=RULE_INT)||LA21_0==15||(LA21_0>=30 && LA21_0<=31)||LA21_0==65||LA21_0==70||(LA21_0>=83 && LA21_0<=84)) ) {
+                if ( ((LA21_0>=RULE_QUOTED_ID && LA21_0<=RULE_INT)||LA21_0==15||(LA21_0>=30 && LA21_0<=31)||LA21_0==65||LA21_0==70||(LA21_0>=86 && LA21_0<=87)) ) {
                     alt21=1;
                 }
 
 
                 switch (alt21) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2191:3: rule__DataDescriptionModelRule__ConstraintsAssignment_4_2
+            	    // InternalDataDescriptionLanguage.g:2247:3: rule__DataDescriptionModelRule__ConstraintsAssignment_4_2
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__DataDescriptionModelRule__ConstraintsAssignment_4_2();
@@ -8040,14 +8209,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__0"
-    // InternalDataDescriptionLanguage.g:2200:1: rule__UseRule__Group__0 : rule__UseRule__Group__0__Impl rule__UseRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:2256:1: rule__UseRule__Group__0 : rule__UseRule__Group__0__Impl rule__UseRule__Group__1 ;
     public final void rule__UseRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2204:1: ( rule__UseRule__Group__0__Impl rule__UseRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:2205:2: rule__UseRule__Group__0__Impl rule__UseRule__Group__1
+            // InternalDataDescriptionLanguage.g:2260:1: ( rule__UseRule__Group__0__Impl rule__UseRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:2261:2: rule__UseRule__Group__0__Impl rule__UseRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__UseRule__Group__0__Impl();
@@ -8078,17 +8247,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:2212:1: rule__UseRule__Group__0__Impl : ( 'use' ) ;
+    // InternalDataDescriptionLanguage.g:2268:1: rule__UseRule__Group__0__Impl : ( 'use' ) ;
     public final void rule__UseRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2216:1: ( ( 'use' ) )
-            // InternalDataDescriptionLanguage.g:2217:1: ( 'use' )
+            // InternalDataDescriptionLanguage.g:2272:1: ( ( 'use' ) )
+            // InternalDataDescriptionLanguage.g:2273:1: ( 'use' )
             {
-            // InternalDataDescriptionLanguage.g:2217:1: ( 'use' )
-            // InternalDataDescriptionLanguage.g:2218:2: 'use'
+            // InternalDataDescriptionLanguage.g:2273:1: ( 'use' )
+            // InternalDataDescriptionLanguage.g:2274:2: 'use'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getUseKeyword_0()); 
@@ -8119,14 +8288,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__1"
-    // InternalDataDescriptionLanguage.g:2227:1: rule__UseRule__Group__1 : rule__UseRule__Group__1__Impl rule__UseRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:2283:1: rule__UseRule__Group__1 : rule__UseRule__Group__1__Impl rule__UseRule__Group__2 ;
     public final void rule__UseRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2231:1: ( rule__UseRule__Group__1__Impl rule__UseRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:2232:2: rule__UseRule__Group__1__Impl rule__UseRule__Group__2
+            // InternalDataDescriptionLanguage.g:2287:1: ( rule__UseRule__Group__1__Impl rule__UseRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:2288:2: rule__UseRule__Group__1__Impl rule__UseRule__Group__2
             {
             pushFollow(FOLLOW_13);
             rule__UseRule__Group__1__Impl();
@@ -8157,23 +8326,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:2239:1: rule__UseRule__Group__1__Impl : ( ( rule__UseRule__ImportURIAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:2295:1: rule__UseRule__Group__1__Impl : ( ( rule__UseRule__ImportURIAssignment_1 ) ) ;
     public final void rule__UseRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2243:1: ( ( ( rule__UseRule__ImportURIAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:2244:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:2299:1: ( ( ( rule__UseRule__ImportURIAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:2300:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:2244:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:2245:2: ( rule__UseRule__ImportURIAssignment_1 )
+            // InternalDataDescriptionLanguage.g:2300:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:2301:2: ( rule__UseRule__ImportURIAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getImportURIAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:2246:2: ( rule__UseRule__ImportURIAssignment_1 )
-            // InternalDataDescriptionLanguage.g:2246:3: rule__UseRule__ImportURIAssignment_1
+            // InternalDataDescriptionLanguage.g:2302:2: ( rule__UseRule__ImportURIAssignment_1 )
+            // InternalDataDescriptionLanguage.g:2302:3: rule__UseRule__ImportURIAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UseRule__ImportURIAssignment_1();
@@ -8208,14 +8377,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__2"
-    // InternalDataDescriptionLanguage.g:2254:1: rule__UseRule__Group__2 : rule__UseRule__Group__2__Impl ;
+    // InternalDataDescriptionLanguage.g:2310:1: rule__UseRule__Group__2 : rule__UseRule__Group__2__Impl ;
     public final void rule__UseRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2258:1: ( rule__UseRule__Group__2__Impl )
-            // InternalDataDescriptionLanguage.g:2259:2: rule__UseRule__Group__2__Impl
+            // InternalDataDescriptionLanguage.g:2314:1: ( rule__UseRule__Group__2__Impl )
+            // InternalDataDescriptionLanguage.g:2315:2: rule__UseRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UseRule__Group__2__Impl();
@@ -8241,17 +8410,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:2265:1: rule__UseRule__Group__2__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:2321:1: rule__UseRule__Group__2__Impl : ( ';' ) ;
     public final void rule__UseRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2269:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:2270:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2325:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:2326:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:2270:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:2271:2: ';'
+            // InternalDataDescriptionLanguage.g:2326:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2327:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getSemicolonKeyword_2()); 
@@ -8282,14 +8451,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:2281:1: rule__DataTypeDefinitionRule__Group__0 : rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:2337:1: rule__DataTypeDefinitionRule__Group__0 : rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1 ;
     public final void rule__DataTypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2285:1: ( rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:2286:2: rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1
+            // InternalDataDescriptionLanguage.g:2341:1: ( rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:2342:2: rule__DataTypeDefinitionRule__Group__0__Impl rule__DataTypeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_14);
             rule__DataTypeDefinitionRule__Group__0__Impl();
@@ -8320,23 +8489,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:2293:1: rule__DataTypeDefinitionRule__Group__0__Impl : ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:2349:1: rule__DataTypeDefinitionRule__Group__0__Impl : ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) ) ;
     public final void rule__DataTypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2297:1: ( ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:2298:1: ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:2353:1: ( ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:2354:1: ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:2298:1: ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:2299:2: ( rule__DataTypeDefinitionRule__ScaleAssignment_0 )
+            // InternalDataDescriptionLanguage.g:2354:1: ( ( rule__DataTypeDefinitionRule__ScaleAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:2355:2: ( rule__DataTypeDefinitionRule__ScaleAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getScaleAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:2300:2: ( rule__DataTypeDefinitionRule__ScaleAssignment_0 )
-            // InternalDataDescriptionLanguage.g:2300:3: rule__DataTypeDefinitionRule__ScaleAssignment_0
+            // InternalDataDescriptionLanguage.g:2356:2: ( rule__DataTypeDefinitionRule__ScaleAssignment_0 )
+            // InternalDataDescriptionLanguage.g:2356:3: rule__DataTypeDefinitionRule__ScaleAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__ScaleAssignment_0();
@@ -8371,14 +8540,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:2308:1: rule__DataTypeDefinitionRule__Group__1 : rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:2364:1: rule__DataTypeDefinitionRule__Group__1 : rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2 ;
     public final void rule__DataTypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2312:1: ( rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:2313:2: rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2
+            // InternalDataDescriptionLanguage.g:2368:1: ( rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:2369:2: rule__DataTypeDefinitionRule__Group__1__Impl rule__DataTypeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__DataTypeDefinitionRule__Group__1__Impl();
@@ -8409,17 +8578,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:2320:1: rule__DataTypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    // InternalDataDescriptionLanguage.g:2376:1: rule__DataTypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
     public final void rule__DataTypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2324:1: ( ( 'type' ) )
-            // InternalDataDescriptionLanguage.g:2325:1: ( 'type' )
+            // InternalDataDescriptionLanguage.g:2380:1: ( ( 'type' ) )
+            // InternalDataDescriptionLanguage.g:2381:1: ( 'type' )
             {
-            // InternalDataDescriptionLanguage.g:2325:1: ( 'type' )
-            // InternalDataDescriptionLanguage.g:2326:2: 'type'
+            // InternalDataDescriptionLanguage.g:2381:1: ( 'type' )
+            // InternalDataDescriptionLanguage.g:2382:2: 'type'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getTypeKeyword_1()); 
@@ -8450,14 +8619,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__2"
-    // InternalDataDescriptionLanguage.g:2335:1: rule__DataTypeDefinitionRule__Group__2 : rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:2391:1: rule__DataTypeDefinitionRule__Group__2 : rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3 ;
     public final void rule__DataTypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2339:1: ( rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:2340:2: rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3
+            // InternalDataDescriptionLanguage.g:2395:1: ( rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:2396:2: rule__DataTypeDefinitionRule__Group__2__Impl rule__DataTypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_16);
             rule__DataTypeDefinitionRule__Group__2__Impl();
@@ -8488,23 +8657,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:2347:1: rule__DataTypeDefinitionRule__Group__2__Impl : ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) ) ;
+    // InternalDataDescriptionLanguage.g:2403:1: rule__DataTypeDefinitionRule__Group__2__Impl : ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) ) ;
     public final void rule__DataTypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2351:1: ( ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) ) )
-            // InternalDataDescriptionLanguage.g:2352:1: ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:2407:1: ( ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalDataDescriptionLanguage.g:2408:1: ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalDataDescriptionLanguage.g:2352:1: ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) )
-            // InternalDataDescriptionLanguage.g:2353:2: ( rule__DataTypeDefinitionRule__NameAssignment_2 )
+            // InternalDataDescriptionLanguage.g:2408:1: ( ( rule__DataTypeDefinitionRule__NameAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:2409:2: ( rule__DataTypeDefinitionRule__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getNameAssignment_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2354:2: ( rule__DataTypeDefinitionRule__NameAssignment_2 )
-            // InternalDataDescriptionLanguage.g:2354:3: rule__DataTypeDefinitionRule__NameAssignment_2
+            // InternalDataDescriptionLanguage.g:2410:2: ( rule__DataTypeDefinitionRule__NameAssignment_2 )
+            // InternalDataDescriptionLanguage.g:2410:3: rule__DataTypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__NameAssignment_2();
@@ -8539,14 +8708,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__3"
-    // InternalDataDescriptionLanguage.g:2362:1: rule__DataTypeDefinitionRule__Group__3 : rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4 ;
+    // InternalDataDescriptionLanguage.g:2418:1: rule__DataTypeDefinitionRule__Group__3 : rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4 ;
     public final void rule__DataTypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2366:1: ( rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4 )
-            // InternalDataDescriptionLanguage.g:2367:2: rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4
+            // InternalDataDescriptionLanguage.g:2422:1: ( rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:2423:2: rule__DataTypeDefinitionRule__Group__3__Impl rule__DataTypeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_16);
             rule__DataTypeDefinitionRule__Group__3__Impl();
@@ -8577,22 +8746,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:2374:1: rule__DataTypeDefinitionRule__Group__3__Impl : ( ( rule__DataTypeDefinitionRule__Group_3__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:2430:1: rule__DataTypeDefinitionRule__Group__3__Impl : ( ( rule__DataTypeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__DataTypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2378:1: ( ( ( rule__DataTypeDefinitionRule__Group_3__0 )? ) )
-            // InternalDataDescriptionLanguage.g:2379:1: ( ( rule__DataTypeDefinitionRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:2434:1: ( ( ( rule__DataTypeDefinitionRule__Group_3__0 )? ) )
+            // InternalDataDescriptionLanguage.g:2435:1: ( ( rule__DataTypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:2379:1: ( ( rule__DataTypeDefinitionRule__Group_3__0 )? )
-            // InternalDataDescriptionLanguage.g:2380:2: ( rule__DataTypeDefinitionRule__Group_3__0 )?
+            // InternalDataDescriptionLanguage.g:2435:1: ( ( rule__DataTypeDefinitionRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:2436:2: ( rule__DataTypeDefinitionRule__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getGroup_3()); 
             }
-            // InternalDataDescriptionLanguage.g:2381:2: ( rule__DataTypeDefinitionRule__Group_3__0 )?
+            // InternalDataDescriptionLanguage.g:2437:2: ( rule__DataTypeDefinitionRule__Group_3__0 )?
             int alt22=2;
             int LA22_0 = input.LA(1);
 
@@ -8601,7 +8770,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt22) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2381:3: rule__DataTypeDefinitionRule__Group_3__0
+                    // InternalDataDescriptionLanguage.g:2437:3: rule__DataTypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DataTypeDefinitionRule__Group_3__0();
@@ -8639,14 +8808,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__4"
-    // InternalDataDescriptionLanguage.g:2389:1: rule__DataTypeDefinitionRule__Group__4 : rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5 ;
+    // InternalDataDescriptionLanguage.g:2445:1: rule__DataTypeDefinitionRule__Group__4 : rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5 ;
     public final void rule__DataTypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2393:1: ( rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5 )
-            // InternalDataDescriptionLanguage.g:2394:2: rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5
+            // InternalDataDescriptionLanguage.g:2449:1: ( rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5 )
+            // InternalDataDescriptionLanguage.g:2450:2: rule__DataTypeDefinitionRule__Group__4__Impl rule__DataTypeDefinitionRule__Group__5
             {
             pushFollow(FOLLOW_16);
             rule__DataTypeDefinitionRule__Group__4__Impl();
@@ -8677,22 +8846,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__4__Impl"
-    // InternalDataDescriptionLanguage.g:2401:1: rule__DataTypeDefinitionRule__Group__4__Impl : ( ( rule__DataTypeDefinitionRule__Group_4__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:2457:1: rule__DataTypeDefinitionRule__Group__4__Impl : ( ( rule__DataTypeDefinitionRule__Group_4__0 )? ) ;
     public final void rule__DataTypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2405:1: ( ( ( rule__DataTypeDefinitionRule__Group_4__0 )? ) )
-            // InternalDataDescriptionLanguage.g:2406:1: ( ( rule__DataTypeDefinitionRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:2461:1: ( ( ( rule__DataTypeDefinitionRule__Group_4__0 )? ) )
+            // InternalDataDescriptionLanguage.g:2462:1: ( ( rule__DataTypeDefinitionRule__Group_4__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:2406:1: ( ( rule__DataTypeDefinitionRule__Group_4__0 )? )
-            // InternalDataDescriptionLanguage.g:2407:2: ( rule__DataTypeDefinitionRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:2462:1: ( ( rule__DataTypeDefinitionRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:2463:2: ( rule__DataTypeDefinitionRule__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getGroup_4()); 
             }
-            // InternalDataDescriptionLanguage.g:2408:2: ( rule__DataTypeDefinitionRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:2464:2: ( rule__DataTypeDefinitionRule__Group_4__0 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -8701,7 +8870,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt23) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2408:3: rule__DataTypeDefinitionRule__Group_4__0
+                    // InternalDataDescriptionLanguage.g:2464:3: rule__DataTypeDefinitionRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DataTypeDefinitionRule__Group_4__0();
@@ -8739,14 +8908,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__5"
-    // InternalDataDescriptionLanguage.g:2416:1: rule__DataTypeDefinitionRule__Group__5 : rule__DataTypeDefinitionRule__Group__5__Impl ;
+    // InternalDataDescriptionLanguage.g:2472:1: rule__DataTypeDefinitionRule__Group__5 : rule__DataTypeDefinitionRule__Group__5__Impl ;
     public final void rule__DataTypeDefinitionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2420:1: ( rule__DataTypeDefinitionRule__Group__5__Impl )
-            // InternalDataDescriptionLanguage.g:2421:2: rule__DataTypeDefinitionRule__Group__5__Impl
+            // InternalDataDescriptionLanguage.g:2476:1: ( rule__DataTypeDefinitionRule__Group__5__Impl )
+            // InternalDataDescriptionLanguage.g:2477:2: rule__DataTypeDefinitionRule__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__Group__5__Impl();
@@ -8772,17 +8941,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group__5__Impl"
-    // InternalDataDescriptionLanguage.g:2427:1: rule__DataTypeDefinitionRule__Group__5__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:2483:1: rule__DataTypeDefinitionRule__Group__5__Impl : ( ';' ) ;
     public final void rule__DataTypeDefinitionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2431:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:2432:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2487:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:2488:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:2432:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:2433:2: ';'
+            // InternalDataDescriptionLanguage.g:2488:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2489:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getSemicolonKeyword_5()); 
@@ -8813,14 +8982,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__0"
-    // InternalDataDescriptionLanguage.g:2443:1: rule__DataTypeDefinitionRule__Group_3__0 : rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1 ;
+    // InternalDataDescriptionLanguage.g:2499:1: rule__DataTypeDefinitionRule__Group_3__0 : rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1 ;
     public final void rule__DataTypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2447:1: ( rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1 )
-            // InternalDataDescriptionLanguage.g:2448:2: rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1
+            // InternalDataDescriptionLanguage.g:2503:1: ( rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1 )
+            // InternalDataDescriptionLanguage.g:2504:2: rule__DataTypeDefinitionRule__Group_3__0__Impl rule__DataTypeDefinitionRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__DataTypeDefinitionRule__Group_3__0__Impl();
@@ -8851,17 +9020,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__0__Impl"
-    // InternalDataDescriptionLanguage.g:2455:1: rule__DataTypeDefinitionRule__Group_3__0__Impl : ( 'description' ) ;
+    // InternalDataDescriptionLanguage.g:2511:1: rule__DataTypeDefinitionRule__Group_3__0__Impl : ( 'description' ) ;
     public final void rule__DataTypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2459:1: ( ( 'description' ) )
-            // InternalDataDescriptionLanguage.g:2460:1: ( 'description' )
+            // InternalDataDescriptionLanguage.g:2515:1: ( ( 'description' ) )
+            // InternalDataDescriptionLanguage.g:2516:1: ( 'description' )
             {
-            // InternalDataDescriptionLanguage.g:2460:1: ( 'description' )
-            // InternalDataDescriptionLanguage.g:2461:2: 'description'
+            // InternalDataDescriptionLanguage.g:2516:1: ( 'description' )
+            // InternalDataDescriptionLanguage.g:2517:2: 'description'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getDescriptionKeyword_3_0()); 
@@ -8892,14 +9061,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__1"
-    // InternalDataDescriptionLanguage.g:2470:1: rule__DataTypeDefinitionRule__Group_3__1 : rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2 ;
+    // InternalDataDescriptionLanguage.g:2526:1: rule__DataTypeDefinitionRule__Group_3__1 : rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2 ;
     public final void rule__DataTypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2474:1: ( rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2 )
-            // InternalDataDescriptionLanguage.g:2475:2: rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2
+            // InternalDataDescriptionLanguage.g:2530:1: ( rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2 )
+            // InternalDataDescriptionLanguage.g:2531:2: rule__DataTypeDefinitionRule__Group_3__1__Impl rule__DataTypeDefinitionRule__Group_3__2
             {
             pushFollow(FOLLOW_12);
             rule__DataTypeDefinitionRule__Group_3__1__Impl();
@@ -8930,17 +9099,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__1__Impl"
-    // InternalDataDescriptionLanguage.g:2482:1: rule__DataTypeDefinitionRule__Group_3__1__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2538:1: rule__DataTypeDefinitionRule__Group_3__1__Impl : ( ':' ) ;
     public final void rule__DataTypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2486:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2487:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2542:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2543:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2487:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2488:2: ':'
+            // InternalDataDescriptionLanguage.g:2543:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2544:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getColonKeyword_3_1()); 
@@ -8971,14 +9140,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__2"
-    // InternalDataDescriptionLanguage.g:2497:1: rule__DataTypeDefinitionRule__Group_3__2 : rule__DataTypeDefinitionRule__Group_3__2__Impl ;
+    // InternalDataDescriptionLanguage.g:2553:1: rule__DataTypeDefinitionRule__Group_3__2 : rule__DataTypeDefinitionRule__Group_3__2__Impl ;
     public final void rule__DataTypeDefinitionRule__Group_3__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2501:1: ( rule__DataTypeDefinitionRule__Group_3__2__Impl )
-            // InternalDataDescriptionLanguage.g:2502:2: rule__DataTypeDefinitionRule__Group_3__2__Impl
+            // InternalDataDescriptionLanguage.g:2557:1: ( rule__DataTypeDefinitionRule__Group_3__2__Impl )
+            // InternalDataDescriptionLanguage.g:2558:2: rule__DataTypeDefinitionRule__Group_3__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__Group_3__2__Impl();
@@ -9004,23 +9173,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_3__2__Impl"
-    // InternalDataDescriptionLanguage.g:2508:1: rule__DataTypeDefinitionRule__Group_3__2__Impl : ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) ) ;
+    // InternalDataDescriptionLanguage.g:2564:1: rule__DataTypeDefinitionRule__Group_3__2__Impl : ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) ) ;
     public final void rule__DataTypeDefinitionRule__Group_3__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2512:1: ( ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) ) )
-            // InternalDataDescriptionLanguage.g:2513:1: ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) )
+            // InternalDataDescriptionLanguage.g:2568:1: ( ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) ) )
+            // InternalDataDescriptionLanguage.g:2569:1: ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) )
             {
-            // InternalDataDescriptionLanguage.g:2513:1: ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) )
-            // InternalDataDescriptionLanguage.g:2514:2: ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 )
+            // InternalDataDescriptionLanguage.g:2569:1: ( ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 ) )
+            // InternalDataDescriptionLanguage.g:2570:2: ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getDescriptionAssignment_3_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2515:2: ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 )
-            // InternalDataDescriptionLanguage.g:2515:3: rule__DataTypeDefinitionRule__DescriptionAssignment_3_2
+            // InternalDataDescriptionLanguage.g:2571:2: ( rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 )
+            // InternalDataDescriptionLanguage.g:2571:3: rule__DataTypeDefinitionRule__DescriptionAssignment_3_2
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__DescriptionAssignment_3_2();
@@ -9055,14 +9224,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__0"
-    // InternalDataDescriptionLanguage.g:2524:1: rule__DataTypeDefinitionRule__Group_4__0 : rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1 ;
+    // InternalDataDescriptionLanguage.g:2580:1: rule__DataTypeDefinitionRule__Group_4__0 : rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1 ;
     public final void rule__DataTypeDefinitionRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2528:1: ( rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1 )
-            // InternalDataDescriptionLanguage.g:2529:2: rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1
+            // InternalDataDescriptionLanguage.g:2584:1: ( rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1 )
+            // InternalDataDescriptionLanguage.g:2585:2: rule__DataTypeDefinitionRule__Group_4__0__Impl rule__DataTypeDefinitionRule__Group_4__1
             {
             pushFollow(FOLLOW_17);
             rule__DataTypeDefinitionRule__Group_4__0__Impl();
@@ -9093,17 +9262,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__0__Impl"
-    // InternalDataDescriptionLanguage.g:2536:1: rule__DataTypeDefinitionRule__Group_4__0__Impl : ( 'with' ) ;
+    // InternalDataDescriptionLanguage.g:2592:1: rule__DataTypeDefinitionRule__Group_4__0__Impl : ( 'with' ) ;
     public final void rule__DataTypeDefinitionRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2540:1: ( ( 'with' ) )
-            // InternalDataDescriptionLanguage.g:2541:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:2596:1: ( ( 'with' ) )
+            // InternalDataDescriptionLanguage.g:2597:1: ( 'with' )
             {
-            // InternalDataDescriptionLanguage.g:2541:1: ( 'with' )
-            // InternalDataDescriptionLanguage.g:2542:2: 'with'
+            // InternalDataDescriptionLanguage.g:2597:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:2598:2: 'with'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getWithKeyword_4_0()); 
@@ -9134,14 +9303,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__1"
-    // InternalDataDescriptionLanguage.g:2551:1: rule__DataTypeDefinitionRule__Group_4__1 : rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2 ;
+    // InternalDataDescriptionLanguage.g:2607:1: rule__DataTypeDefinitionRule__Group_4__1 : rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2 ;
     public final void rule__DataTypeDefinitionRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2555:1: ( rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2 )
-            // InternalDataDescriptionLanguage.g:2556:2: rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2
+            // InternalDataDescriptionLanguage.g:2611:1: ( rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2 )
+            // InternalDataDescriptionLanguage.g:2612:2: rule__DataTypeDefinitionRule__Group_4__1__Impl rule__DataTypeDefinitionRule__Group_4__2
             {
             pushFollow(FOLLOW_5);
             rule__DataTypeDefinitionRule__Group_4__1__Impl();
@@ -9172,17 +9341,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__1__Impl"
-    // InternalDataDescriptionLanguage.g:2563:1: rule__DataTypeDefinitionRule__Group_4__1__Impl : ( 'constraints' ) ;
+    // InternalDataDescriptionLanguage.g:2619:1: rule__DataTypeDefinitionRule__Group_4__1__Impl : ( 'constraints' ) ;
     public final void rule__DataTypeDefinitionRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2567:1: ( ( 'constraints' ) )
-            // InternalDataDescriptionLanguage.g:2568:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2623:1: ( ( 'constraints' ) )
+            // InternalDataDescriptionLanguage.g:2624:1: ( 'constraints' )
             {
-            // InternalDataDescriptionLanguage.g:2568:1: ( 'constraints' )
-            // InternalDataDescriptionLanguage.g:2569:2: 'constraints'
+            // InternalDataDescriptionLanguage.g:2624:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2625:2: 'constraints'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getConstraintsKeyword_4_1()); 
@@ -9213,14 +9382,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__2"
-    // InternalDataDescriptionLanguage.g:2578:1: rule__DataTypeDefinitionRule__Group_4__2 : rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3 ;
+    // InternalDataDescriptionLanguage.g:2634:1: rule__DataTypeDefinitionRule__Group_4__2 : rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3 ;
     public final void rule__DataTypeDefinitionRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2582:1: ( rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3 )
-            // InternalDataDescriptionLanguage.g:2583:2: rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3
+            // InternalDataDescriptionLanguage.g:2638:1: ( rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3 )
+            // InternalDataDescriptionLanguage.g:2639:2: rule__DataTypeDefinitionRule__Group_4__2__Impl rule__DataTypeDefinitionRule__Group_4__3
             {
             pushFollow(FOLLOW_10);
             rule__DataTypeDefinitionRule__Group_4__2__Impl();
@@ -9251,17 +9420,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__2__Impl"
-    // InternalDataDescriptionLanguage.g:2590:1: rule__DataTypeDefinitionRule__Group_4__2__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2646:1: rule__DataTypeDefinitionRule__Group_4__2__Impl : ( ':' ) ;
     public final void rule__DataTypeDefinitionRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2594:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2595:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2650:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2651:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2595:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2596:2: ':'
+            // InternalDataDescriptionLanguage.g:2651:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2652:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getColonKeyword_4_2()); 
@@ -9292,14 +9461,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__3"
-    // InternalDataDescriptionLanguage.g:2605:1: rule__DataTypeDefinitionRule__Group_4__3 : rule__DataTypeDefinitionRule__Group_4__3__Impl ;
+    // InternalDataDescriptionLanguage.g:2661:1: rule__DataTypeDefinitionRule__Group_4__3 : rule__DataTypeDefinitionRule__Group_4__3__Impl ;
     public final void rule__DataTypeDefinitionRule__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2609:1: ( rule__DataTypeDefinitionRule__Group_4__3__Impl )
-            // InternalDataDescriptionLanguage.g:2610:2: rule__DataTypeDefinitionRule__Group_4__3__Impl
+            // InternalDataDescriptionLanguage.g:2665:1: ( rule__DataTypeDefinitionRule__Group_4__3__Impl )
+            // InternalDataDescriptionLanguage.g:2666:2: rule__DataTypeDefinitionRule__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeDefinitionRule__Group_4__3__Impl();
@@ -9325,35 +9494,35 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__Group_4__3__Impl"
-    // InternalDataDescriptionLanguage.g:2616:1: rule__DataTypeDefinitionRule__Group_4__3__Impl : ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* ) ;
+    // InternalDataDescriptionLanguage.g:2672:1: rule__DataTypeDefinitionRule__Group_4__3__Impl : ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* ) ;
     public final void rule__DataTypeDefinitionRule__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2620:1: ( ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* ) )
-            // InternalDataDescriptionLanguage.g:2621:1: ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* )
+            // InternalDataDescriptionLanguage.g:2676:1: ( ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* ) )
+            // InternalDataDescriptionLanguage.g:2677:1: ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* )
             {
-            // InternalDataDescriptionLanguage.g:2621:1: ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* )
-            // InternalDataDescriptionLanguage.g:2622:2: ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )*
+            // InternalDataDescriptionLanguage.g:2677:1: ( ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )* )
+            // InternalDataDescriptionLanguage.g:2678:2: ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getConstraintsAssignment_4_3()); 
             }
-            // InternalDataDescriptionLanguage.g:2623:2: ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )*
+            // InternalDataDescriptionLanguage.g:2679:2: ( rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 )*
             loop24:
             do {
                 int alt24=2;
                 int LA24_0 = input.LA(1);
 
-                if ( ((LA24_0>=RULE_QUOTED_ID && LA24_0<=RULE_INT)||LA24_0==15||(LA24_0>=30 && LA24_0<=31)||LA24_0==65||LA24_0==70||(LA24_0>=83 && LA24_0<=84)) ) {
+                if ( ((LA24_0>=RULE_QUOTED_ID && LA24_0<=RULE_INT)||LA24_0==15||(LA24_0>=30 && LA24_0<=31)||LA24_0==65||LA24_0==70||(LA24_0>=86 && LA24_0<=87)) ) {
                     alt24=1;
                 }
 
 
                 switch (alt24) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2623:3: rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3
+            	    // InternalDataDescriptionLanguage.g:2679:3: rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3();
@@ -9394,14 +9563,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:2632:1: rule__TypedDataDescriptionRule__Group__0 : rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:2688:1: rule__TypedDataDescriptionRule__Group__0 : rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1 ;
     public final void rule__TypedDataDescriptionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2636:1: ( rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:2637:2: rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1
+            // InternalDataDescriptionLanguage.g:2692:1: ( rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:2693:2: rule__TypedDataDescriptionRule__Group__0__Impl rule__TypedDataDescriptionRule__Group__1
             {
             pushFollow(FOLLOW_18);
             rule__TypedDataDescriptionRule__Group__0__Impl();
@@ -9432,23 +9601,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:2644:1: rule__TypedDataDescriptionRule__Group__0__Impl : ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:2700:1: rule__TypedDataDescriptionRule__Group__0__Impl : ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) ) ;
     public final void rule__TypedDataDescriptionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2648:1: ( ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:2649:1: ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:2704:1: ( ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:2705:1: ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:2649:1: ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:2650:2: ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 )
+            // InternalDataDescriptionLanguage.g:2705:1: ( ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:2706:2: ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getRepresentationAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:2651:2: ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 )
-            // InternalDataDescriptionLanguage.g:2651:3: rule__TypedDataDescriptionRule__RepresentationAssignment_0
+            // InternalDataDescriptionLanguage.g:2707:2: ( rule__TypedDataDescriptionRule__RepresentationAssignment_0 )
+            // InternalDataDescriptionLanguage.g:2707:3: rule__TypedDataDescriptionRule__RepresentationAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__TypedDataDescriptionRule__RepresentationAssignment_0();
@@ -9483,14 +9652,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:2659:1: rule__TypedDataDescriptionRule__Group__1 : rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:2715:1: rule__TypedDataDescriptionRule__Group__1 : rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2 ;
     public final void rule__TypedDataDescriptionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2663:1: ( rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:2664:2: rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2
+            // InternalDataDescriptionLanguage.g:2719:1: ( rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:2720:2: rule__TypedDataDescriptionRule__Group__1__Impl rule__TypedDataDescriptionRule__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__TypedDataDescriptionRule__Group__1__Impl();
@@ -9521,17 +9690,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:2671:1: rule__TypedDataDescriptionRule__Group__1__Impl : ( 'data' ) ;
+    // InternalDataDescriptionLanguage.g:2727:1: rule__TypedDataDescriptionRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__TypedDataDescriptionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2675:1: ( ( 'data' ) )
-            // InternalDataDescriptionLanguage.g:2676:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:2731:1: ( ( 'data' ) )
+            // InternalDataDescriptionLanguage.g:2732:1: ( 'data' )
             {
-            // InternalDataDescriptionLanguage.g:2676:1: ( 'data' )
-            // InternalDataDescriptionLanguage.g:2677:2: 'data'
+            // InternalDataDescriptionLanguage.g:2732:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:2733:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getDataKeyword_1()); 
@@ -9562,14 +9731,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__2"
-    // InternalDataDescriptionLanguage.g:2686:1: rule__TypedDataDescriptionRule__Group__2 : rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:2742:1: rule__TypedDataDescriptionRule__Group__2 : rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3 ;
     public final void rule__TypedDataDescriptionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2690:1: ( rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:2691:2: rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3
+            // InternalDataDescriptionLanguage.g:2746:1: ( rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:2747:2: rule__TypedDataDescriptionRule__Group__2__Impl rule__TypedDataDescriptionRule__Group__3
             {
             pushFollow(FOLLOW_19);
             rule__TypedDataDescriptionRule__Group__2__Impl();
@@ -9600,23 +9769,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:2698:1: rule__TypedDataDescriptionRule__Group__2__Impl : ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) ) ;
+    // InternalDataDescriptionLanguage.g:2754:1: rule__TypedDataDescriptionRule__Group__2__Impl : ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) ) ;
     public final void rule__TypedDataDescriptionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2702:1: ( ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) ) )
-            // InternalDataDescriptionLanguage.g:2703:1: ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:2758:1: ( ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) ) )
+            // InternalDataDescriptionLanguage.g:2759:1: ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) )
             {
-            // InternalDataDescriptionLanguage.g:2703:1: ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) )
-            // InternalDataDescriptionLanguage.g:2704:2: ( rule__TypedDataDescriptionRule__NameAssignment_2 )
+            // InternalDataDescriptionLanguage.g:2759:1: ( ( rule__TypedDataDescriptionRule__NameAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:2760:2: ( rule__TypedDataDescriptionRule__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getNameAssignment_2()); 
             }
-            // InternalDataDescriptionLanguage.g:2705:2: ( rule__TypedDataDescriptionRule__NameAssignment_2 )
-            // InternalDataDescriptionLanguage.g:2705:3: rule__TypedDataDescriptionRule__NameAssignment_2
+            // InternalDataDescriptionLanguage.g:2761:2: ( rule__TypedDataDescriptionRule__NameAssignment_2 )
+            // InternalDataDescriptionLanguage.g:2761:3: rule__TypedDataDescriptionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__TypedDataDescriptionRule__NameAssignment_2();
@@ -9651,14 +9820,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__3"
-    // InternalDataDescriptionLanguage.g:2713:1: rule__TypedDataDescriptionRule__Group__3 : rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4 ;
+    // InternalDataDescriptionLanguage.g:2769:1: rule__TypedDataDescriptionRule__Group__3 : rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4 ;
     public final void rule__TypedDataDescriptionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2717:1: ( rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4 )
-            // InternalDataDescriptionLanguage.g:2718:2: rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4
+            // InternalDataDescriptionLanguage.g:2773:1: ( rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:2774:2: rule__TypedDataDescriptionRule__Group__3__Impl rule__TypedDataDescriptionRule__Group__4
             {
             pushFollow(FOLLOW_14);
             rule__TypedDataDescriptionRule__Group__3__Impl();
@@ -9689,17 +9858,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:2725:1: rule__TypedDataDescriptionRule__Group__3__Impl : ( 'of' ) ;
+    // InternalDataDescriptionLanguage.g:2781:1: rule__TypedDataDescriptionRule__Group__3__Impl : ( 'of' ) ;
     public final void rule__TypedDataDescriptionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2729:1: ( ( 'of' ) )
-            // InternalDataDescriptionLanguage.g:2730:1: ( 'of' )
+            // InternalDataDescriptionLanguage.g:2785:1: ( ( 'of' ) )
+            // InternalDataDescriptionLanguage.g:2786:1: ( 'of' )
             {
-            // InternalDataDescriptionLanguage.g:2730:1: ( 'of' )
-            // InternalDataDescriptionLanguage.g:2731:2: 'of'
+            // InternalDataDescriptionLanguage.g:2786:1: ( 'of' )
+            // InternalDataDescriptionLanguage.g:2787:2: 'of'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getOfKeyword_3()); 
@@ -9730,14 +9899,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__4"
-    // InternalDataDescriptionLanguage.g:2740:1: rule__TypedDataDescriptionRule__Group__4 : rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5 ;
+    // InternalDataDescriptionLanguage.g:2796:1: rule__TypedDataDescriptionRule__Group__4 : rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5 ;
     public final void rule__TypedDataDescriptionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2744:1: ( rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5 )
-            // InternalDataDescriptionLanguage.g:2745:2: rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5
+            // InternalDataDescriptionLanguage.g:2800:1: ( rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5 )
+            // InternalDataDescriptionLanguage.g:2801:2: rule__TypedDataDescriptionRule__Group__4__Impl rule__TypedDataDescriptionRule__Group__5
             {
             pushFollow(FOLLOW_15);
             rule__TypedDataDescriptionRule__Group__4__Impl();
@@ -9768,17 +9937,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__4__Impl"
-    // InternalDataDescriptionLanguage.g:2752:1: rule__TypedDataDescriptionRule__Group__4__Impl : ( 'type' ) ;
+    // InternalDataDescriptionLanguage.g:2808:1: rule__TypedDataDescriptionRule__Group__4__Impl : ( 'type' ) ;
     public final void rule__TypedDataDescriptionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2756:1: ( ( 'type' ) )
-            // InternalDataDescriptionLanguage.g:2757:1: ( 'type' )
+            // InternalDataDescriptionLanguage.g:2812:1: ( ( 'type' ) )
+            // InternalDataDescriptionLanguage.g:2813:1: ( 'type' )
             {
-            // InternalDataDescriptionLanguage.g:2757:1: ( 'type' )
-            // InternalDataDescriptionLanguage.g:2758:2: 'type'
+            // InternalDataDescriptionLanguage.g:2813:1: ( 'type' )
+            // InternalDataDescriptionLanguage.g:2814:2: 'type'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getTypeKeyword_4()); 
@@ -9809,14 +9978,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__5"
-    // InternalDataDescriptionLanguage.g:2767:1: rule__TypedDataDescriptionRule__Group__5 : rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6 ;
+    // InternalDataDescriptionLanguage.g:2823:1: rule__TypedDataDescriptionRule__Group__5 : rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6 ;
     public final void rule__TypedDataDescriptionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2771:1: ( rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6 )
-            // InternalDataDescriptionLanguage.g:2772:2: rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6
+            // InternalDataDescriptionLanguage.g:2827:1: ( rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6 )
+            // InternalDataDescriptionLanguage.g:2828:2: rule__TypedDataDescriptionRule__Group__5__Impl rule__TypedDataDescriptionRule__Group__6
             {
             pushFollow(FOLLOW_20);
             rule__TypedDataDescriptionRule__Group__5__Impl();
@@ -9847,23 +10016,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__5__Impl"
-    // InternalDataDescriptionLanguage.g:2779:1: rule__TypedDataDescriptionRule__Group__5__Impl : ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) ) ;
+    // InternalDataDescriptionLanguage.g:2835:1: rule__TypedDataDescriptionRule__Group__5__Impl : ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) ) ;
     public final void rule__TypedDataDescriptionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2783:1: ( ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) ) )
-            // InternalDataDescriptionLanguage.g:2784:1: ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) )
+            // InternalDataDescriptionLanguage.g:2839:1: ( ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) ) )
+            // InternalDataDescriptionLanguage.g:2840:1: ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) )
             {
-            // InternalDataDescriptionLanguage.g:2784:1: ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) )
-            // InternalDataDescriptionLanguage.g:2785:2: ( rule__TypedDataDescriptionRule__TypeAssignment_5 )
+            // InternalDataDescriptionLanguage.g:2840:1: ( ( rule__TypedDataDescriptionRule__TypeAssignment_5 ) )
+            // InternalDataDescriptionLanguage.g:2841:2: ( rule__TypedDataDescriptionRule__TypeAssignment_5 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getTypeAssignment_5()); 
             }
-            // InternalDataDescriptionLanguage.g:2786:2: ( rule__TypedDataDescriptionRule__TypeAssignment_5 )
-            // InternalDataDescriptionLanguage.g:2786:3: rule__TypedDataDescriptionRule__TypeAssignment_5
+            // InternalDataDescriptionLanguage.g:2842:2: ( rule__TypedDataDescriptionRule__TypeAssignment_5 )
+            // InternalDataDescriptionLanguage.g:2842:3: rule__TypedDataDescriptionRule__TypeAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__TypedDataDescriptionRule__TypeAssignment_5();
@@ -9898,14 +10067,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__6"
-    // InternalDataDescriptionLanguage.g:2794:1: rule__TypedDataDescriptionRule__Group__6 : rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7 ;
+    // InternalDataDescriptionLanguage.g:2850:1: rule__TypedDataDescriptionRule__Group__6 : rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7 ;
     public final void rule__TypedDataDescriptionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2798:1: ( rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7 )
-            // InternalDataDescriptionLanguage.g:2799:2: rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7
+            // InternalDataDescriptionLanguage.g:2854:1: ( rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7 )
+            // InternalDataDescriptionLanguage.g:2855:2: rule__TypedDataDescriptionRule__Group__6__Impl rule__TypedDataDescriptionRule__Group__7
             {
             pushFollow(FOLLOW_20);
             rule__TypedDataDescriptionRule__Group__6__Impl();
@@ -9936,22 +10105,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__6__Impl"
-    // InternalDataDescriptionLanguage.g:2806:1: rule__TypedDataDescriptionRule__Group__6__Impl : ( ( rule__TypedDataDescriptionRule__Group_6__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:2862:1: rule__TypedDataDescriptionRule__Group__6__Impl : ( ( rule__TypedDataDescriptionRule__Group_6__0 )? ) ;
     public final void rule__TypedDataDescriptionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2810:1: ( ( ( rule__TypedDataDescriptionRule__Group_6__0 )? ) )
-            // InternalDataDescriptionLanguage.g:2811:1: ( ( rule__TypedDataDescriptionRule__Group_6__0 )? )
+            // InternalDataDescriptionLanguage.g:2866:1: ( ( ( rule__TypedDataDescriptionRule__Group_6__0 )? ) )
+            // InternalDataDescriptionLanguage.g:2867:1: ( ( rule__TypedDataDescriptionRule__Group_6__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:2811:1: ( ( rule__TypedDataDescriptionRule__Group_6__0 )? )
-            // InternalDataDescriptionLanguage.g:2812:2: ( rule__TypedDataDescriptionRule__Group_6__0 )?
+            // InternalDataDescriptionLanguage.g:2867:1: ( ( rule__TypedDataDescriptionRule__Group_6__0 )? )
+            // InternalDataDescriptionLanguage.g:2868:2: ( rule__TypedDataDescriptionRule__Group_6__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getGroup_6()); 
             }
-            // InternalDataDescriptionLanguage.g:2813:2: ( rule__TypedDataDescriptionRule__Group_6__0 )?
+            // InternalDataDescriptionLanguage.g:2869:2: ( rule__TypedDataDescriptionRule__Group_6__0 )?
             int alt25=2;
             int LA25_0 = input.LA(1);
 
@@ -9960,7 +10129,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt25) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2813:3: rule__TypedDataDescriptionRule__Group_6__0
+                    // InternalDataDescriptionLanguage.g:2869:3: rule__TypedDataDescriptionRule__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__TypedDataDescriptionRule__Group_6__0();
@@ -9998,14 +10167,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__7"
-    // InternalDataDescriptionLanguage.g:2821:1: rule__TypedDataDescriptionRule__Group__7 : rule__TypedDataDescriptionRule__Group__7__Impl ;
+    // InternalDataDescriptionLanguage.g:2877:1: rule__TypedDataDescriptionRule__Group__7 : rule__TypedDataDescriptionRule__Group__7__Impl ;
     public final void rule__TypedDataDescriptionRule__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2825:1: ( rule__TypedDataDescriptionRule__Group__7__Impl )
-            // InternalDataDescriptionLanguage.g:2826:2: rule__TypedDataDescriptionRule__Group__7__Impl
+            // InternalDataDescriptionLanguage.g:2881:1: ( rule__TypedDataDescriptionRule__Group__7__Impl )
+            // InternalDataDescriptionLanguage.g:2882:2: rule__TypedDataDescriptionRule__Group__7__Impl
             {
             pushFollow(FOLLOW_2);
             rule__TypedDataDescriptionRule__Group__7__Impl();
@@ -10031,17 +10200,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group__7__Impl"
-    // InternalDataDescriptionLanguage.g:2832:1: rule__TypedDataDescriptionRule__Group__7__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:2888:1: rule__TypedDataDescriptionRule__Group__7__Impl : ( ';' ) ;
     public final void rule__TypedDataDescriptionRule__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2836:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:2837:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2892:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:2893:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:2837:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:2838:2: ';'
+            // InternalDataDescriptionLanguage.g:2893:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:2894:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getSemicolonKeyword_7()); 
@@ -10072,14 +10241,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__0"
-    // InternalDataDescriptionLanguage.g:2848:1: rule__TypedDataDescriptionRule__Group_6__0 : rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1 ;
+    // InternalDataDescriptionLanguage.g:2904:1: rule__TypedDataDescriptionRule__Group_6__0 : rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1 ;
     public final void rule__TypedDataDescriptionRule__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2852:1: ( rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1 )
-            // InternalDataDescriptionLanguage.g:2853:2: rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1
+            // InternalDataDescriptionLanguage.g:2908:1: ( rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1 )
+            // InternalDataDescriptionLanguage.g:2909:2: rule__TypedDataDescriptionRule__Group_6__0__Impl rule__TypedDataDescriptionRule__Group_6__1
             {
             pushFollow(FOLLOW_17);
             rule__TypedDataDescriptionRule__Group_6__0__Impl();
@@ -10110,17 +10279,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__0__Impl"
-    // InternalDataDescriptionLanguage.g:2860:1: rule__TypedDataDescriptionRule__Group_6__0__Impl : ( 'with' ) ;
+    // InternalDataDescriptionLanguage.g:2916:1: rule__TypedDataDescriptionRule__Group_6__0__Impl : ( 'with' ) ;
     public final void rule__TypedDataDescriptionRule__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2864:1: ( ( 'with' ) )
-            // InternalDataDescriptionLanguage.g:2865:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:2920:1: ( ( 'with' ) )
+            // InternalDataDescriptionLanguage.g:2921:1: ( 'with' )
             {
-            // InternalDataDescriptionLanguage.g:2865:1: ( 'with' )
-            // InternalDataDescriptionLanguage.g:2866:2: 'with'
+            // InternalDataDescriptionLanguage.g:2921:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:2922:2: 'with'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getWithKeyword_6_0()); 
@@ -10151,14 +10320,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__1"
-    // InternalDataDescriptionLanguage.g:2875:1: rule__TypedDataDescriptionRule__Group_6__1 : rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2 ;
+    // InternalDataDescriptionLanguage.g:2931:1: rule__TypedDataDescriptionRule__Group_6__1 : rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2 ;
     public final void rule__TypedDataDescriptionRule__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2879:1: ( rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2 )
-            // InternalDataDescriptionLanguage.g:2880:2: rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2
+            // InternalDataDescriptionLanguage.g:2935:1: ( rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2 )
+            // InternalDataDescriptionLanguage.g:2936:2: rule__TypedDataDescriptionRule__Group_6__1__Impl rule__TypedDataDescriptionRule__Group_6__2
             {
             pushFollow(FOLLOW_5);
             rule__TypedDataDescriptionRule__Group_6__1__Impl();
@@ -10189,17 +10358,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__1__Impl"
-    // InternalDataDescriptionLanguage.g:2887:1: rule__TypedDataDescriptionRule__Group_6__1__Impl : ( 'constraints' ) ;
+    // InternalDataDescriptionLanguage.g:2943:1: rule__TypedDataDescriptionRule__Group_6__1__Impl : ( 'constraints' ) ;
     public final void rule__TypedDataDescriptionRule__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2891:1: ( ( 'constraints' ) )
-            // InternalDataDescriptionLanguage.g:2892:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2947:1: ( ( 'constraints' ) )
+            // InternalDataDescriptionLanguage.g:2948:1: ( 'constraints' )
             {
-            // InternalDataDescriptionLanguage.g:2892:1: ( 'constraints' )
-            // InternalDataDescriptionLanguage.g:2893:2: 'constraints'
+            // InternalDataDescriptionLanguage.g:2948:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:2949:2: 'constraints'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getConstraintsKeyword_6_1()); 
@@ -10230,14 +10399,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__2"
-    // InternalDataDescriptionLanguage.g:2902:1: rule__TypedDataDescriptionRule__Group_6__2 : rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3 ;
+    // InternalDataDescriptionLanguage.g:2958:1: rule__TypedDataDescriptionRule__Group_6__2 : rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3 ;
     public final void rule__TypedDataDescriptionRule__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2906:1: ( rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3 )
-            // InternalDataDescriptionLanguage.g:2907:2: rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3
+            // InternalDataDescriptionLanguage.g:2962:1: ( rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3 )
+            // InternalDataDescriptionLanguage.g:2963:2: rule__TypedDataDescriptionRule__Group_6__2__Impl rule__TypedDataDescriptionRule__Group_6__3
             {
             pushFollow(FOLLOW_10);
             rule__TypedDataDescriptionRule__Group_6__2__Impl();
@@ -10268,17 +10437,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__2__Impl"
-    // InternalDataDescriptionLanguage.g:2914:1: rule__TypedDataDescriptionRule__Group_6__2__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:2970:1: rule__TypedDataDescriptionRule__Group_6__2__Impl : ( ':' ) ;
     public final void rule__TypedDataDescriptionRule__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2918:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:2919:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2974:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:2975:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:2919:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:2920:2: ':'
+            // InternalDataDescriptionLanguage.g:2975:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:2976:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getColonKeyword_6_2()); 
@@ -10309,14 +10478,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__3"
-    // InternalDataDescriptionLanguage.g:2929:1: rule__TypedDataDescriptionRule__Group_6__3 : rule__TypedDataDescriptionRule__Group_6__3__Impl ;
+    // InternalDataDescriptionLanguage.g:2985:1: rule__TypedDataDescriptionRule__Group_6__3 : rule__TypedDataDescriptionRule__Group_6__3__Impl ;
     public final void rule__TypedDataDescriptionRule__Group_6__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2933:1: ( rule__TypedDataDescriptionRule__Group_6__3__Impl )
-            // InternalDataDescriptionLanguage.g:2934:2: rule__TypedDataDescriptionRule__Group_6__3__Impl
+            // InternalDataDescriptionLanguage.g:2989:1: ( rule__TypedDataDescriptionRule__Group_6__3__Impl )
+            // InternalDataDescriptionLanguage.g:2990:2: rule__TypedDataDescriptionRule__Group_6__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__TypedDataDescriptionRule__Group_6__3__Impl();
@@ -10342,35 +10511,35 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__Group_6__3__Impl"
-    // InternalDataDescriptionLanguage.g:2940:1: rule__TypedDataDescriptionRule__Group_6__3__Impl : ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* ) ;
+    // InternalDataDescriptionLanguage.g:2996:1: rule__TypedDataDescriptionRule__Group_6__3__Impl : ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* ) ;
     public final void rule__TypedDataDescriptionRule__Group_6__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2944:1: ( ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* ) )
-            // InternalDataDescriptionLanguage.g:2945:1: ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* )
+            // InternalDataDescriptionLanguage.g:3000:1: ( ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* ) )
+            // InternalDataDescriptionLanguage.g:3001:1: ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* )
             {
-            // InternalDataDescriptionLanguage.g:2945:1: ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* )
-            // InternalDataDescriptionLanguage.g:2946:2: ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )*
+            // InternalDataDescriptionLanguage.g:3001:1: ( ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )* )
+            // InternalDataDescriptionLanguage.g:3002:2: ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getConstraintsAssignment_6_3()); 
             }
-            // InternalDataDescriptionLanguage.g:2947:2: ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )*
+            // InternalDataDescriptionLanguage.g:3003:2: ( rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 )*
             loop26:
             do {
                 int alt26=2;
                 int LA26_0 = input.LA(1);
 
-                if ( ((LA26_0>=RULE_QUOTED_ID && LA26_0<=RULE_INT)||LA26_0==15||(LA26_0>=30 && LA26_0<=31)||LA26_0==65||LA26_0==70||(LA26_0>=83 && LA26_0<=84)) ) {
+                if ( ((LA26_0>=RULE_QUOTED_ID && LA26_0<=RULE_INT)||LA26_0==15||(LA26_0>=30 && LA26_0<=31)||LA26_0==65||LA26_0==70||(LA26_0>=86 && LA26_0<=87)) ) {
                     alt26=1;
                 }
 
 
                 switch (alt26) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2947:3: rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3
+            	    // InternalDataDescriptionLanguage.g:3003:3: rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3();
@@ -10411,14 +10580,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:2956:1: rule__UntypedDataDescriptionRule__Group__0 : rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3012:1: rule__UntypedDataDescriptionRule__Group__0 : rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1 ;
     public final void rule__UntypedDataDescriptionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2960:1: ( rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:2961:2: rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3016:1: ( rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3017:2: rule__UntypedDataDescriptionRule__Group__0__Impl rule__UntypedDataDescriptionRule__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__UntypedDataDescriptionRule__Group__0__Impl();
@@ -10449,22 +10618,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:2968:1: rule__UntypedDataDescriptionRule__Group__0__Impl : ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? ) ;
+    // InternalDataDescriptionLanguage.g:3024:1: rule__UntypedDataDescriptionRule__Group__0__Impl : ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? ) ;
     public final void rule__UntypedDataDescriptionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2972:1: ( ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? ) )
-            // InternalDataDescriptionLanguage.g:2973:1: ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? )
+            // InternalDataDescriptionLanguage.g:3028:1: ( ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? ) )
+            // InternalDataDescriptionLanguage.g:3029:1: ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? )
             {
-            // InternalDataDescriptionLanguage.g:2973:1: ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? )
-            // InternalDataDescriptionLanguage.g:2974:2: ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )?
+            // InternalDataDescriptionLanguage.g:3029:1: ( ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )? )
+            // InternalDataDescriptionLanguage.g:3030:2: ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getScaleAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:2975:2: ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )?
+            // InternalDataDescriptionLanguage.g:3031:2: ( rule__UntypedDataDescriptionRule__ScaleAssignment_0 )?
             int alt27=2;
             int LA27_0 = input.LA(1);
 
@@ -10473,7 +10642,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt27) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2975:3: rule__UntypedDataDescriptionRule__ScaleAssignment_0
+                    // InternalDataDescriptionLanguage.g:3031:3: rule__UntypedDataDescriptionRule__ScaleAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__UntypedDataDescriptionRule__ScaleAssignment_0();
@@ -10511,14 +10680,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:2983:1: rule__UntypedDataDescriptionRule__Group__1 : rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:3039:1: rule__UntypedDataDescriptionRule__Group__1 : rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2 ;
     public final void rule__UntypedDataDescriptionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2987:1: ( rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:2988:2: rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2
+            // InternalDataDescriptionLanguage.g:3043:1: ( rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:3044:2: rule__UntypedDataDescriptionRule__Group__1__Impl rule__UntypedDataDescriptionRule__Group__2
             {
             pushFollow(FOLLOW_18);
             rule__UntypedDataDescriptionRule__Group__1__Impl();
@@ -10549,23 +10718,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:2995:1: rule__UntypedDataDescriptionRule__Group__1__Impl : ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3051:1: rule__UntypedDataDescriptionRule__Group__1__Impl : ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) ) ;
     public final void rule__UntypedDataDescriptionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:2999:1: ( ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3000:1: ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3055:1: ( ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3056:1: ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3000:1: ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:3001:2: ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3056:1: ( ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3057:2: ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getRepresentationAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3002:2: ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 )
-            // InternalDataDescriptionLanguage.g:3002:3: rule__UntypedDataDescriptionRule__RepresentationAssignment_1
+            // InternalDataDescriptionLanguage.g:3058:2: ( rule__UntypedDataDescriptionRule__RepresentationAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3058:3: rule__UntypedDataDescriptionRule__RepresentationAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UntypedDataDescriptionRule__RepresentationAssignment_1();
@@ -10600,14 +10769,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__2"
-    // InternalDataDescriptionLanguage.g:3010:1: rule__UntypedDataDescriptionRule__Group__2 : rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:3066:1: rule__UntypedDataDescriptionRule__Group__2 : rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3 ;
     public final void rule__UntypedDataDescriptionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3014:1: ( rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:3015:2: rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3
+            // InternalDataDescriptionLanguage.g:3070:1: ( rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:3071:2: rule__UntypedDataDescriptionRule__Group__2__Impl rule__UntypedDataDescriptionRule__Group__3
             {
             pushFollow(FOLLOW_15);
             rule__UntypedDataDescriptionRule__Group__2__Impl();
@@ -10638,17 +10807,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:3022:1: rule__UntypedDataDescriptionRule__Group__2__Impl : ( 'data' ) ;
+    // InternalDataDescriptionLanguage.g:3078:1: rule__UntypedDataDescriptionRule__Group__2__Impl : ( 'data' ) ;
     public final void rule__UntypedDataDescriptionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3026:1: ( ( 'data' ) )
-            // InternalDataDescriptionLanguage.g:3027:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:3082:1: ( ( 'data' ) )
+            // InternalDataDescriptionLanguage.g:3083:1: ( 'data' )
             {
-            // InternalDataDescriptionLanguage.g:3027:1: ( 'data' )
-            // InternalDataDescriptionLanguage.g:3028:2: 'data'
+            // InternalDataDescriptionLanguage.g:3083:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:3084:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getDataKeyword_2()); 
@@ -10679,14 +10848,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__3"
-    // InternalDataDescriptionLanguage.g:3037:1: rule__UntypedDataDescriptionRule__Group__3 : rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4 ;
+    // InternalDataDescriptionLanguage.g:3093:1: rule__UntypedDataDescriptionRule__Group__3 : rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4 ;
     public final void rule__UntypedDataDescriptionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3041:1: ( rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4 )
-            // InternalDataDescriptionLanguage.g:3042:2: rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4
+            // InternalDataDescriptionLanguage.g:3097:1: ( rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:3098:2: rule__UntypedDataDescriptionRule__Group__3__Impl rule__UntypedDataDescriptionRule__Group__4
             {
             pushFollow(FOLLOW_20);
             rule__UntypedDataDescriptionRule__Group__3__Impl();
@@ -10717,23 +10886,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:3049:1: rule__UntypedDataDescriptionRule__Group__3__Impl : ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) ) ;
+    // InternalDataDescriptionLanguage.g:3105:1: rule__UntypedDataDescriptionRule__Group__3__Impl : ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) ) ;
     public final void rule__UntypedDataDescriptionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3053:1: ( ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) ) )
-            // InternalDataDescriptionLanguage.g:3054:1: ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) )
+            // InternalDataDescriptionLanguage.g:3109:1: ( ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) ) )
+            // InternalDataDescriptionLanguage.g:3110:1: ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) )
             {
-            // InternalDataDescriptionLanguage.g:3054:1: ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) )
-            // InternalDataDescriptionLanguage.g:3055:2: ( rule__UntypedDataDescriptionRule__NameAssignment_3 )
+            // InternalDataDescriptionLanguage.g:3110:1: ( ( rule__UntypedDataDescriptionRule__NameAssignment_3 ) )
+            // InternalDataDescriptionLanguage.g:3111:2: ( rule__UntypedDataDescriptionRule__NameAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getNameAssignment_3()); 
             }
-            // InternalDataDescriptionLanguage.g:3056:2: ( rule__UntypedDataDescriptionRule__NameAssignment_3 )
-            // InternalDataDescriptionLanguage.g:3056:3: rule__UntypedDataDescriptionRule__NameAssignment_3
+            // InternalDataDescriptionLanguage.g:3112:2: ( rule__UntypedDataDescriptionRule__NameAssignment_3 )
+            // InternalDataDescriptionLanguage.g:3112:3: rule__UntypedDataDescriptionRule__NameAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__UntypedDataDescriptionRule__NameAssignment_3();
@@ -10768,14 +10937,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__4"
-    // InternalDataDescriptionLanguage.g:3064:1: rule__UntypedDataDescriptionRule__Group__4 : rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5 ;
+    // InternalDataDescriptionLanguage.g:3120:1: rule__UntypedDataDescriptionRule__Group__4 : rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5 ;
     public final void rule__UntypedDataDescriptionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3068:1: ( rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5 )
-            // InternalDataDescriptionLanguage.g:3069:2: rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5
+            // InternalDataDescriptionLanguage.g:3124:1: ( rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5 )
+            // InternalDataDescriptionLanguage.g:3125:2: rule__UntypedDataDescriptionRule__Group__4__Impl rule__UntypedDataDescriptionRule__Group__5
             {
             pushFollow(FOLLOW_20);
             rule__UntypedDataDescriptionRule__Group__4__Impl();
@@ -10806,22 +10975,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__4__Impl"
-    // InternalDataDescriptionLanguage.g:3076:1: rule__UntypedDataDescriptionRule__Group__4__Impl : ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:3132:1: rule__UntypedDataDescriptionRule__Group__4__Impl : ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? ) ;
     public final void rule__UntypedDataDescriptionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3080:1: ( ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? ) )
-            // InternalDataDescriptionLanguage.g:3081:1: ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:3136:1: ( ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? ) )
+            // InternalDataDescriptionLanguage.g:3137:1: ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:3081:1: ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? )
-            // InternalDataDescriptionLanguage.g:3082:2: ( rule__UntypedDataDescriptionRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:3137:1: ( ( rule__UntypedDataDescriptionRule__Group_4__0 )? )
+            // InternalDataDescriptionLanguage.g:3138:2: ( rule__UntypedDataDescriptionRule__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getGroup_4()); 
             }
-            // InternalDataDescriptionLanguage.g:3083:2: ( rule__UntypedDataDescriptionRule__Group_4__0 )?
+            // InternalDataDescriptionLanguage.g:3139:2: ( rule__UntypedDataDescriptionRule__Group_4__0 )?
             int alt28=2;
             int LA28_0 = input.LA(1);
 
@@ -10830,7 +10999,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt28) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3083:3: rule__UntypedDataDescriptionRule__Group_4__0
+                    // InternalDataDescriptionLanguage.g:3139:3: rule__UntypedDataDescriptionRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__UntypedDataDescriptionRule__Group_4__0();
@@ -10868,14 +11037,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__5"
-    // InternalDataDescriptionLanguage.g:3091:1: rule__UntypedDataDescriptionRule__Group__5 : rule__UntypedDataDescriptionRule__Group__5__Impl ;
+    // InternalDataDescriptionLanguage.g:3147:1: rule__UntypedDataDescriptionRule__Group__5 : rule__UntypedDataDescriptionRule__Group__5__Impl ;
     public final void rule__UntypedDataDescriptionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3095:1: ( rule__UntypedDataDescriptionRule__Group__5__Impl )
-            // InternalDataDescriptionLanguage.g:3096:2: rule__UntypedDataDescriptionRule__Group__5__Impl
+            // InternalDataDescriptionLanguage.g:3151:1: ( rule__UntypedDataDescriptionRule__Group__5__Impl )
+            // InternalDataDescriptionLanguage.g:3152:2: rule__UntypedDataDescriptionRule__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UntypedDataDescriptionRule__Group__5__Impl();
@@ -10901,17 +11070,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group__5__Impl"
-    // InternalDataDescriptionLanguage.g:3102:1: rule__UntypedDataDescriptionRule__Group__5__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:3158:1: rule__UntypedDataDescriptionRule__Group__5__Impl : ( ';' ) ;
     public final void rule__UntypedDataDescriptionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3106:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:3107:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:3162:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:3163:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:3107:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:3108:2: ';'
+            // InternalDataDescriptionLanguage.g:3163:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:3164:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getSemicolonKeyword_5()); 
@@ -10942,14 +11111,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__0"
-    // InternalDataDescriptionLanguage.g:3118:1: rule__UntypedDataDescriptionRule__Group_4__0 : rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1 ;
+    // InternalDataDescriptionLanguage.g:3174:1: rule__UntypedDataDescriptionRule__Group_4__0 : rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1 ;
     public final void rule__UntypedDataDescriptionRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3122:1: ( rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1 )
-            // InternalDataDescriptionLanguage.g:3123:2: rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1
+            // InternalDataDescriptionLanguage.g:3178:1: ( rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1 )
+            // InternalDataDescriptionLanguage.g:3179:2: rule__UntypedDataDescriptionRule__Group_4__0__Impl rule__UntypedDataDescriptionRule__Group_4__1
             {
             pushFollow(FOLLOW_17);
             rule__UntypedDataDescriptionRule__Group_4__0__Impl();
@@ -10980,17 +11149,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__0__Impl"
-    // InternalDataDescriptionLanguage.g:3130:1: rule__UntypedDataDescriptionRule__Group_4__0__Impl : ( 'with' ) ;
+    // InternalDataDescriptionLanguage.g:3186:1: rule__UntypedDataDescriptionRule__Group_4__0__Impl : ( 'with' ) ;
     public final void rule__UntypedDataDescriptionRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3134:1: ( ( 'with' ) )
-            // InternalDataDescriptionLanguage.g:3135:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:3190:1: ( ( 'with' ) )
+            // InternalDataDescriptionLanguage.g:3191:1: ( 'with' )
             {
-            // InternalDataDescriptionLanguage.g:3135:1: ( 'with' )
-            // InternalDataDescriptionLanguage.g:3136:2: 'with'
+            // InternalDataDescriptionLanguage.g:3191:1: ( 'with' )
+            // InternalDataDescriptionLanguage.g:3192:2: 'with'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getWithKeyword_4_0()); 
@@ -11021,14 +11190,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__1"
-    // InternalDataDescriptionLanguage.g:3145:1: rule__UntypedDataDescriptionRule__Group_4__1 : rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2 ;
+    // InternalDataDescriptionLanguage.g:3201:1: rule__UntypedDataDescriptionRule__Group_4__1 : rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2 ;
     public final void rule__UntypedDataDescriptionRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3149:1: ( rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2 )
-            // InternalDataDescriptionLanguage.g:3150:2: rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2
+            // InternalDataDescriptionLanguage.g:3205:1: ( rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2 )
+            // InternalDataDescriptionLanguage.g:3206:2: rule__UntypedDataDescriptionRule__Group_4__1__Impl rule__UntypedDataDescriptionRule__Group_4__2
             {
             pushFollow(FOLLOW_5);
             rule__UntypedDataDescriptionRule__Group_4__1__Impl();
@@ -11059,17 +11228,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__1__Impl"
-    // InternalDataDescriptionLanguage.g:3157:1: rule__UntypedDataDescriptionRule__Group_4__1__Impl : ( 'constraints' ) ;
+    // InternalDataDescriptionLanguage.g:3213:1: rule__UntypedDataDescriptionRule__Group_4__1__Impl : ( 'constraints' ) ;
     public final void rule__UntypedDataDescriptionRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3161:1: ( ( 'constraints' ) )
-            // InternalDataDescriptionLanguage.g:3162:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:3217:1: ( ( 'constraints' ) )
+            // InternalDataDescriptionLanguage.g:3218:1: ( 'constraints' )
             {
-            // InternalDataDescriptionLanguage.g:3162:1: ( 'constraints' )
-            // InternalDataDescriptionLanguage.g:3163:2: 'constraints'
+            // InternalDataDescriptionLanguage.g:3218:1: ( 'constraints' )
+            // InternalDataDescriptionLanguage.g:3219:2: 'constraints'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getConstraintsKeyword_4_1()); 
@@ -11100,14 +11269,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__2"
-    // InternalDataDescriptionLanguage.g:3172:1: rule__UntypedDataDescriptionRule__Group_4__2 : rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3 ;
+    // InternalDataDescriptionLanguage.g:3228:1: rule__UntypedDataDescriptionRule__Group_4__2 : rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3 ;
     public final void rule__UntypedDataDescriptionRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3176:1: ( rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3 )
-            // InternalDataDescriptionLanguage.g:3177:2: rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3
+            // InternalDataDescriptionLanguage.g:3232:1: ( rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3 )
+            // InternalDataDescriptionLanguage.g:3233:2: rule__UntypedDataDescriptionRule__Group_4__2__Impl rule__UntypedDataDescriptionRule__Group_4__3
             {
             pushFollow(FOLLOW_10);
             rule__UntypedDataDescriptionRule__Group_4__2__Impl();
@@ -11138,17 +11307,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__2__Impl"
-    // InternalDataDescriptionLanguage.g:3184:1: rule__UntypedDataDescriptionRule__Group_4__2__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:3240:1: rule__UntypedDataDescriptionRule__Group_4__2__Impl : ( ':' ) ;
     public final void rule__UntypedDataDescriptionRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3188:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:3189:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:3244:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:3245:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:3189:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:3190:2: ':'
+            // InternalDataDescriptionLanguage.g:3245:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:3246:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getColonKeyword_4_2()); 
@@ -11179,14 +11348,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__3"
-    // InternalDataDescriptionLanguage.g:3199:1: rule__UntypedDataDescriptionRule__Group_4__3 : rule__UntypedDataDescriptionRule__Group_4__3__Impl ;
+    // InternalDataDescriptionLanguage.g:3255:1: rule__UntypedDataDescriptionRule__Group_4__3 : rule__UntypedDataDescriptionRule__Group_4__3__Impl ;
     public final void rule__UntypedDataDescriptionRule__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3203:1: ( rule__UntypedDataDescriptionRule__Group_4__3__Impl )
-            // InternalDataDescriptionLanguage.g:3204:2: rule__UntypedDataDescriptionRule__Group_4__3__Impl
+            // InternalDataDescriptionLanguage.g:3259:1: ( rule__UntypedDataDescriptionRule__Group_4__3__Impl )
+            // InternalDataDescriptionLanguage.g:3260:2: rule__UntypedDataDescriptionRule__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UntypedDataDescriptionRule__Group_4__3__Impl();
@@ -11212,35 +11381,35 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__Group_4__3__Impl"
-    // InternalDataDescriptionLanguage.g:3210:1: rule__UntypedDataDescriptionRule__Group_4__3__Impl : ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* ) ;
+    // InternalDataDescriptionLanguage.g:3266:1: rule__UntypedDataDescriptionRule__Group_4__3__Impl : ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* ) ;
     public final void rule__UntypedDataDescriptionRule__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3214:1: ( ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* ) )
-            // InternalDataDescriptionLanguage.g:3215:1: ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* )
+            // InternalDataDescriptionLanguage.g:3270:1: ( ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* ) )
+            // InternalDataDescriptionLanguage.g:3271:1: ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* )
             {
-            // InternalDataDescriptionLanguage.g:3215:1: ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* )
-            // InternalDataDescriptionLanguage.g:3216:2: ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )*
+            // InternalDataDescriptionLanguage.g:3271:1: ( ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )* )
+            // InternalDataDescriptionLanguage.g:3272:2: ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getConstraintsAssignment_4_3()); 
             }
-            // InternalDataDescriptionLanguage.g:3217:2: ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )*
+            // InternalDataDescriptionLanguage.g:3273:2: ( rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 )*
             loop29:
             do {
                 int alt29=2;
                 int LA29_0 = input.LA(1);
 
-                if ( ((LA29_0>=RULE_QUOTED_ID && LA29_0<=RULE_INT)||LA29_0==15||(LA29_0>=30 && LA29_0<=31)||LA29_0==65||LA29_0==70||(LA29_0>=83 && LA29_0<=84)) ) {
+                if ( ((LA29_0>=RULE_QUOTED_ID && LA29_0<=RULE_INT)||LA29_0==15||(LA29_0>=30 && LA29_0<=31)||LA29_0==65||LA29_0==70||(LA29_0>=86 && LA29_0<=87)) ) {
                     alt29=1;
                 }
 
 
                 switch (alt29) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3217:3: rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3
+            	    // InternalDataDescriptionLanguage.g:3273:3: rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3();
@@ -11281,14 +11450,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StatementRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3226:1: rule__StatementRule__Group__0 : rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3282:1: rule__StatementRule__Group__0 : rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1 ;
     public final void rule__StatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3230:1: ( rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3231:2: rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1
+            // InternalDataDescriptionLanguage.g:3286:1: ( rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3287:2: rule__StatementRule__Group__0__Impl rule__StatementRule__Group__1
             {
             pushFollow(FOLLOW_13);
             rule__StatementRule__Group__0__Impl();
@@ -11319,17 +11488,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StatementRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3238:1: rule__StatementRule__Group__0__Impl : ( ruleExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:3294:1: rule__StatementRule__Group__0__Impl : ( ruleExpressionRule ) ;
     public final void rule__StatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3242:1: ( ( ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:3243:1: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:3298:1: ( ( ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:3299:1: ( ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:3243:1: ( ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:3244:2: ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:3299:1: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:3300:2: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStatementRuleAccess().getExpressionRuleParserRuleCall_0()); 
@@ -11364,14 +11533,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StatementRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3253:1: rule__StatementRule__Group__1 : rule__StatementRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3309:1: rule__StatementRule__Group__1 : rule__StatementRule__Group__1__Impl ;
     public final void rule__StatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3257:1: ( rule__StatementRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3258:2: rule__StatementRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3313:1: ( rule__StatementRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3314:2: rule__StatementRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StatementRule__Group__1__Impl();
@@ -11397,17 +11566,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StatementRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3264:1: rule__StatementRule__Group__1__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:3320:1: rule__StatementRule__Group__1__Impl : ( ';' ) ;
     public final void rule__StatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3268:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:3269:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:3324:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:3325:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:3269:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:3270:2: ';'
+            // InternalDataDescriptionLanguage.g:3325:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:3326:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStatementRuleAccess().getSemicolonKeyword_1()); 
@@ -11438,14 +11607,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SelfReferenceRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3280:1: rule__SelfReferenceRule__Group__0 : rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3336:1: rule__SelfReferenceRule__Group__0 : rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1 ;
     public final void rule__SelfReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3284:1: ( rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3285:2: rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1
+            // InternalDataDescriptionLanguage.g:3340:1: ( rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3341:2: rule__SelfReferenceRule__Group__0__Impl rule__SelfReferenceRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__SelfReferenceRule__Group__0__Impl();
@@ -11476,23 +11645,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SelfReferenceRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3292:1: rule__SelfReferenceRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:3348:1: rule__SelfReferenceRule__Group__0__Impl : ( () ) ;
     public final void rule__SelfReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3296:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:3297:1: ( () )
+            // InternalDataDescriptionLanguage.g:3352:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:3353:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:3297:1: ( () )
-            // InternalDataDescriptionLanguage.g:3298:2: ()
+            // InternalDataDescriptionLanguage.g:3353:1: ( () )
+            // InternalDataDescriptionLanguage.g:3354:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSelfReferenceRuleAccess().getSelfReferenceAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3299:2: ()
-            // InternalDataDescriptionLanguage.g:3299:3: 
+            // InternalDataDescriptionLanguage.g:3355:2: ()
+            // InternalDataDescriptionLanguage.g:3355:3: 
             {
             }
 
@@ -11517,14 +11686,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SelfReferenceRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3307:1: rule__SelfReferenceRule__Group__1 : rule__SelfReferenceRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3363:1: rule__SelfReferenceRule__Group__1 : rule__SelfReferenceRule__Group__1__Impl ;
     public final void rule__SelfReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3311:1: ( rule__SelfReferenceRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3312:2: rule__SelfReferenceRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3367:1: ( rule__SelfReferenceRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3368:2: rule__SelfReferenceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SelfReferenceRule__Group__1__Impl();
@@ -11550,17 +11719,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SelfReferenceRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3318:1: rule__SelfReferenceRule__Group__1__Impl : ( 'value' ) ;
+    // InternalDataDescriptionLanguage.g:3374:1: rule__SelfReferenceRule__Group__1__Impl : ( 'value' ) ;
     public final void rule__SelfReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3322:1: ( ( 'value' ) )
-            // InternalDataDescriptionLanguage.g:3323:1: ( 'value' )
+            // InternalDataDescriptionLanguage.g:3378:1: ( ( 'value' ) )
+            // InternalDataDescriptionLanguage.g:3379:1: ( 'value' )
             {
-            // InternalDataDescriptionLanguage.g:3323:1: ( 'value' )
-            // InternalDataDescriptionLanguage.g:3324:2: 'value'
+            // InternalDataDescriptionLanguage.g:3379:1: ( 'value' )
+            // InternalDataDescriptionLanguage.g:3380:2: 'value'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSelfReferenceRuleAccess().getValueKeyword_1()); 
@@ -11591,14 +11760,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3334:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3390:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
     public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3338:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3339:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3394:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3395:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_21);
             rule__OrExpressionRule__Group__0__Impl();
@@ -11629,23 +11798,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3346:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3402:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3350:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3351:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3406:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3407:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3351:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3352:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3407:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3408:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3353:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3353:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+            // InternalDataDescriptionLanguage.g:3409:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3409:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_0();
@@ -11680,14 +11849,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3361:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3417:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
     public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3365:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3366:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3421:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3422:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__1__Impl();
@@ -11713,22 +11882,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3372:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:3428:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
     public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3376:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:3377:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3432:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:3433:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:3377:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:3378:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3433:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3434:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3379:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3435:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop30:
             do {
                 int alt30=2;
@@ -11741,7 +11910,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt30) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3379:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:3435:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_22);
             	    rule__OrExpressionRule__Group_1__0();
@@ -11782,14 +11951,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:3388:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:3444:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
     public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3392:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:3393:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:3448:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:3449:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__OrExpressionRule__Group_1__0__Impl();
@@ -11820,17 +11989,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:3400:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    // InternalDataDescriptionLanguage.g:3456:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
     public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3404:1: ( ( 'OR' ) )
-            // InternalDataDescriptionLanguage.g:3405:1: ( 'OR' )
+            // InternalDataDescriptionLanguage.g:3460:1: ( ( 'OR' ) )
+            // InternalDataDescriptionLanguage.g:3461:1: ( 'OR' )
             {
-            // InternalDataDescriptionLanguage.g:3405:1: ( 'OR' )
-            // InternalDataDescriptionLanguage.g:3406:2: 'OR'
+            // InternalDataDescriptionLanguage.g:3461:1: ( 'OR' )
+            // InternalDataDescriptionLanguage.g:3462:2: 'OR'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
@@ -11861,14 +12030,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:3415:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3471:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
     public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3419:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:3420:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:3475:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:3476:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group_1__1__Impl();
@@ -11894,23 +12063,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:3426:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3482:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3430:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3431:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3486:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3487:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3431:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:3432:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3487:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3488:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3433:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:3433:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDataDescriptionLanguage.g:3489:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3489:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_1_1();
@@ -11945,14 +12114,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3442:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3498:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
     public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3446:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3447:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3502:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3503:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__XorExpressionRule__Group__0__Impl();
@@ -11983,23 +12152,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3454:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3510:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3458:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3459:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3514:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3515:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3459:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3460:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3515:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3516:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3461:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3461:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+            // InternalDataDescriptionLanguage.g:3517:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3517:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_0();
@@ -12034,14 +12203,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3469:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3525:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
     public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3473:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3474:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3529:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3530:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__1__Impl();
@@ -12067,22 +12236,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3480:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:3536:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
     public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3484:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:3485:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3540:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:3541:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:3485:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:3486:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3541:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3542:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3487:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3543:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop31:
             do {
                 int alt31=2;
@@ -12095,7 +12264,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt31) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3487:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:3543:3: rule__XorExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_24);
             	    rule__XorExpressionRule__Group_1__0();
@@ -12136,14 +12305,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:3496:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:3552:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
     public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3500:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:3501:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:3556:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:3557:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__XorExpressionRule__Group_1__0__Impl();
@@ -12174,17 +12343,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:3508:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    // InternalDataDescriptionLanguage.g:3564:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
     public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3512:1: ( ( 'XOR' ) )
-            // InternalDataDescriptionLanguage.g:3513:1: ( 'XOR' )
+            // InternalDataDescriptionLanguage.g:3568:1: ( ( 'XOR' ) )
+            // InternalDataDescriptionLanguage.g:3569:1: ( 'XOR' )
             {
-            // InternalDataDescriptionLanguage.g:3513:1: ( 'XOR' )
-            // InternalDataDescriptionLanguage.g:3514:2: 'XOR'
+            // InternalDataDescriptionLanguage.g:3569:1: ( 'XOR' )
+            // InternalDataDescriptionLanguage.g:3570:2: 'XOR'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
@@ -12215,14 +12384,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:3523:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3579:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
     public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3527:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:3528:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:3583:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:3584:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group_1__1__Impl();
@@ -12248,23 +12417,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:3534:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3590:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3538:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3539:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3594:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3595:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3539:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:3540:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3595:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3596:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3541:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:3541:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDataDescriptionLanguage.g:3597:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3597:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_1_1();
@@ -12299,14 +12468,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3550:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3606:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
     public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3554:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3555:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3610:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3611:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_25);
             rule__AndExpressionRule__Group__0__Impl();
@@ -12337,23 +12506,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3562:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3618:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3566:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3567:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3622:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3623:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3567:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3568:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3623:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3624:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3569:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3569:3: rule__AndExpressionRule__SubExpressionsAssignment_0
+            // InternalDataDescriptionLanguage.g:3625:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3625:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_0();
@@ -12388,14 +12557,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3577:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3633:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
     public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3581:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3582:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3637:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3638:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__1__Impl();
@@ -12421,22 +12590,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3588:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:3644:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
     public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3592:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:3593:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3648:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:3649:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:3593:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:3594:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3649:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3650:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3595:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3651:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop32:
             do {
                 int alt32=2;
@@ -12449,7 +12618,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt32) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3595:3: rule__AndExpressionRule__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:3651:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_26);
             	    rule__AndExpressionRule__Group_1__0();
@@ -12490,14 +12659,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:3604:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:3660:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
     public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3608:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:3609:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:3664:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:3665:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__AndExpressionRule__Group_1__0__Impl();
@@ -12528,17 +12697,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:3616:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    // InternalDataDescriptionLanguage.g:3672:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
     public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3620:1: ( ( 'AND' ) )
-            // InternalDataDescriptionLanguage.g:3621:1: ( 'AND' )
+            // InternalDataDescriptionLanguage.g:3676:1: ( ( 'AND' ) )
+            // InternalDataDescriptionLanguage.g:3677:1: ( 'AND' )
             {
-            // InternalDataDescriptionLanguage.g:3621:1: ( 'AND' )
-            // InternalDataDescriptionLanguage.g:3622:2: 'AND'
+            // InternalDataDescriptionLanguage.g:3677:1: ( 'AND' )
+            // InternalDataDescriptionLanguage.g:3678:2: 'AND'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
@@ -12569,14 +12738,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:3631:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3687:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
     public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3635:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:3636:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:3691:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:3692:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group_1__1__Impl();
@@ -12602,23 +12771,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:3642:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3698:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3646:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3647:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3702:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3703:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3647:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:3648:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3703:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3704:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3649:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:3649:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDataDescriptionLanguage.g:3705:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3705:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_1_1();
@@ -12653,14 +12822,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3658:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3714:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
     public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3662:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3663:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3718:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3719:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__NotExpressionRule__Group__0__Impl();
@@ -12691,31 +12860,31 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3670:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    // InternalDataDescriptionLanguage.g:3726:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
     public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3674:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalDataDescriptionLanguage.g:3675:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalDataDescriptionLanguage.g:3730:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalDataDescriptionLanguage.g:3731:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalDataDescriptionLanguage.g:3675:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalDataDescriptionLanguage.g:3676:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalDataDescriptionLanguage.g:3731:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalDataDescriptionLanguage.g:3732:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3677:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalDataDescriptionLanguage.g:3733:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             int alt33=2;
             int LA33_0 = input.LA(1);
 
-            if ( (LA33_0==83) ) {
+            if ( (LA33_0==86) ) {
                 alt33=1;
             }
             switch (alt33) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3677:3: rule__NotExpressionRule__NegatedAssignment_0
+                    // InternalDataDescriptionLanguage.g:3733:3: rule__NotExpressionRule__NegatedAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__NotExpressionRule__NegatedAssignment_0();
@@ -12753,14 +12922,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3685:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3741:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
     public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3689:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3690:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3745:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3746:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__1__Impl();
@@ -12786,23 +12955,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3696:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3752:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
     public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3700:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3701:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3756:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3757:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3701:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:3702:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3757:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3758:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3703:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalDataDescriptionLanguage.g:3703:3: rule__NotExpressionRule__OperandAssignment_1
+            // InternalDataDescriptionLanguage.g:3759:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3759:3: rule__NotExpressionRule__OperandAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__OperandAssignment_1();
@@ -12837,14 +13006,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3712:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3768:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
     public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3716:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3717:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3772:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3773:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_27);
             rule__ComparisonExpressionRule__Group__0__Impl();
@@ -12875,23 +13044,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3724:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3780:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3728:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3729:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3784:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3785:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3729:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3730:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3785:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3786:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3731:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3731:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            // InternalDataDescriptionLanguage.g:3787:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3787:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__LeftOperandAssignment_0();
@@ -12926,14 +13095,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3739:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3795:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
     public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3743:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3744:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3799:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3800:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__1__Impl();
@@ -12959,22 +13128,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3750:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    // InternalDataDescriptionLanguage.g:3806:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
     public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3754:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalDataDescriptionLanguage.g:3755:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalDataDescriptionLanguage.g:3810:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalDataDescriptionLanguage.g:3811:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalDataDescriptionLanguage.g:3755:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalDataDescriptionLanguage.g:3756:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalDataDescriptionLanguage.g:3811:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalDataDescriptionLanguage.g:3812:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3757:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalDataDescriptionLanguage.g:3813:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             loop34:
             do {
                 int alt34=2;
@@ -12987,7 +13156,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt34) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3757:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalDataDescriptionLanguage.g:3813:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
             	    {
             	    pushFollow(FOLLOW_28);
             	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
@@ -13028,14 +13197,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3766:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3822:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
     public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3770:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3771:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3826:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3827:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__PartialComparisonExpressionRule__Group__0__Impl();
@@ -13066,23 +13235,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3778:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3834:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3782:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3783:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3838:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3839:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3783:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3784:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3839:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3840:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3785:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3785:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            // InternalDataDescriptionLanguage.g:3841:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3841:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__OperatorAssignment_0();
@@ -13117,14 +13286,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3793:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3849:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
     public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3797:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3798:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3853:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3854:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__1__Impl();
@@ -13150,23 +13319,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3804:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3860:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3808:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3809:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3864:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3865:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3809:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:3810:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3865:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:3866:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3811:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalDataDescriptionLanguage.g:3811:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+            // InternalDataDescriptionLanguage.g:3867:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:3867:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
@@ -13201,14 +13370,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3820:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3876:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3824:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3825:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3880:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3881:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_29);
             rule__AddOrSubtractExpressionRule__Group__0__Impl();
@@ -13239,23 +13408,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3832:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3888:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3836:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3837:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3892:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3893:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3837:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3838:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3893:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:3894:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3839:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3839:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+            // InternalDataDescriptionLanguage.g:3895:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:3895:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
@@ -13290,14 +13459,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3847:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3903:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3851:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3852:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:3907:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:3908:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__1__Impl();
@@ -13323,22 +13492,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3858:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:3914:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3862:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:3863:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3918:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:3919:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:3863:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:3864:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3919:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:3920:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3865:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:3921:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop35:
             do {
                 int alt35=2;
@@ -13351,7 +13520,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt35) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3865:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:3921:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_30);
             	    rule__AddOrSubtractExpressionRule__Group_1__0();
@@ -13392,14 +13561,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:3874:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:3930:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3878:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:3879:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:3934:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:3935:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
@@ -13430,23 +13599,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:3886:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3942:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3890:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3891:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDataDescriptionLanguage.g:3946:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalDataDescriptionLanguage.g:3947:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3891:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalDataDescriptionLanguage.g:3892:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDataDescriptionLanguage.g:3947:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDataDescriptionLanguage.g:3948:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3893:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalDataDescriptionLanguage.g:3893:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+            // InternalDataDescriptionLanguage.g:3949:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDataDescriptionLanguage.g:3949:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
@@ -13481,14 +13650,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:3901:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:3957:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3905:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:3906:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:3961:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:3962:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
@@ -13514,23 +13683,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:3912:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:3968:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3916:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:3917:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3972:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:3973:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:3917:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:3918:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3973:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:3974:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3919:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:3919:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+            // InternalDataDescriptionLanguage.g:3975:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:3975:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
@@ -13565,14 +13734,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:3928:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:3984:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3932:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:3933:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:3988:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:3989:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
@@ -13603,23 +13772,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:3940:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:3996:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3944:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3945:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4000:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4001:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3945:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:3946:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4001:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4002:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:3947:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalDataDescriptionLanguage.g:3947:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+            // InternalDataDescriptionLanguage.g:4003:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4003:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
@@ -13654,14 +13823,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:3955:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4011:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3959:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:3960:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4015:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4016:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
@@ -13687,22 +13856,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:3966:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:4022:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3970:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:3971:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:4026:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:4027:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:3971:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:3972:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:4027:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:4028:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:3973:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:4029:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop36:
             do {
                 int alt36=2;
@@ -13715,7 +13884,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt36) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3973:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:4029:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_32);
             	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
@@ -13756,14 +13925,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:3982:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:4038:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3986:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:3987:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:4042:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:4043:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
@@ -13794,23 +13963,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:3994:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4050:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:3998:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalDataDescriptionLanguage.g:3999:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDataDescriptionLanguage.g:4054:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4055:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:3999:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalDataDescriptionLanguage.g:4000:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDataDescriptionLanguage.g:4055:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDataDescriptionLanguage.g:4056:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4001:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalDataDescriptionLanguage.g:4001:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalDataDescriptionLanguage.g:4057:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDataDescriptionLanguage.g:4057:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
@@ -13845,14 +14014,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:4009:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4065:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4013:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:4014:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:4069:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:4070:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
@@ -13878,23 +14047,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:4020:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4076:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4024:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4025:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4080:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4081:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4025:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:4026:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:4081:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4082:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4027:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:4027:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+            // InternalDataDescriptionLanguage.g:4083:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:4083:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
@@ -13929,14 +14098,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4036:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4092:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
     public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4040:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4041:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:4096:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4097:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_33);
             rule__PowerOfExpressionRule__Group__0__Impl();
@@ -13967,23 +14136,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4048:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4104:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4052:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4053:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4108:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4109:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:4053:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:4054:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4109:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4110:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4055:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalDataDescriptionLanguage.g:4055:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalDataDescriptionLanguage.g:4111:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4111:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__LeftOperandAssignment_0();
@@ -14018,14 +14187,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4063:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4119:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4067:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4068:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4123:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4124:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__1__Impl();
@@ -14051,22 +14220,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4074:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:4130:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
     public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4078:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalDataDescriptionLanguage.g:4079:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalDataDescriptionLanguage.g:4134:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalDataDescriptionLanguage.g:4135:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:4079:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalDataDescriptionLanguage.g:4080:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalDataDescriptionLanguage.g:4135:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalDataDescriptionLanguage.g:4136:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4081:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalDataDescriptionLanguage.g:4137:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             int alt37=2;
             int LA37_0 = input.LA(1);
 
@@ -14075,7 +14244,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt37) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:4081:3: rule__PowerOfExpressionRule__Group_1__0
+                    // InternalDataDescriptionLanguage.g:4137:3: rule__PowerOfExpressionRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PowerOfExpressionRule__Group_1__0();
@@ -14113,14 +14282,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalDataDescriptionLanguage.g:4090:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:4146:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
     public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4094:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:4095:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalDataDescriptionLanguage.g:4150:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:4151:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__PowerOfExpressionRule__Group_1__0__Impl();
@@ -14151,17 +14320,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:4102:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    // InternalDataDescriptionLanguage.g:4158:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
     public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4106:1: ( ( '^' ) )
-            // InternalDataDescriptionLanguage.g:4107:1: ( '^' )
+            // InternalDataDescriptionLanguage.g:4162:1: ( ( '^' ) )
+            // InternalDataDescriptionLanguage.g:4163:1: ( '^' )
             {
-            // InternalDataDescriptionLanguage.g:4107:1: ( '^' )
-            // InternalDataDescriptionLanguage.g:4108:2: '^'
+            // InternalDataDescriptionLanguage.g:4163:1: ( '^' )
+            // InternalDataDescriptionLanguage.g:4164:2: '^'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
@@ -14192,14 +14361,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalDataDescriptionLanguage.g:4117:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4173:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4121:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:4122:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:4177:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:4178:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group_1__1__Impl();
@@ -14225,23 +14394,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:4128:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4184:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
     public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4132:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4133:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4188:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4189:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4133:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalDataDescriptionLanguage.g:4134:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:4189:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4190:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4135:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalDataDescriptionLanguage.g:4135:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+            // InternalDataDescriptionLanguage.g:4191:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalDataDescriptionLanguage.g:4191:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
@@ -14276,14 +14445,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4144:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4200:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4148:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4149:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalDataDescriptionLanguage.g:4204:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4205:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
@@ -14314,22 +14483,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4156:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    // InternalDataDescriptionLanguage.g:4212:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4160:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalDataDescriptionLanguage.g:4161:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalDataDescriptionLanguage.g:4216:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalDataDescriptionLanguage.g:4217:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-            // InternalDataDescriptionLanguage.g:4161:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalDataDescriptionLanguage.g:4162:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalDataDescriptionLanguage.g:4217:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalDataDescriptionLanguage.g:4218:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4163:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalDataDescriptionLanguage.g:4219:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             loop38:
             do {
                 int alt38=2;
@@ -14342,7 +14511,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt38) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:4163:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    // InternalDataDescriptionLanguage.g:4219:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
             	    {
             	    pushFollow(FOLLOW_30);
             	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
@@ -14383,14 +14552,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4171:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4227:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4175:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4176:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4231:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4232:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
@@ -14416,23 +14585,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4182:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4238:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4186:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4187:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:4242:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4243:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4187:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:4188:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:4243:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:4244:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4189:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalDataDescriptionLanguage.g:4189:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            // InternalDataDescriptionLanguage.g:4245:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:4245:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
@@ -14467,14 +14636,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4198:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4254:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
     public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4202:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4203:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalDataDescriptionLanguage.g:4258:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4259:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__ParanthesesRule__Group__0__Impl();
@@ -14505,17 +14674,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4210:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    // InternalDataDescriptionLanguage.g:4266:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
     public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4214:1: ( ( '(' ) )
-            // InternalDataDescriptionLanguage.g:4215:1: ( '(' )
+            // InternalDataDescriptionLanguage.g:4270:1: ( ( '(' ) )
+            // InternalDataDescriptionLanguage.g:4271:1: ( '(' )
             {
-            // InternalDataDescriptionLanguage.g:4215:1: ( '(' )
-            // InternalDataDescriptionLanguage.g:4216:2: '('
+            // InternalDataDescriptionLanguage.g:4271:1: ( '(' )
+            // InternalDataDescriptionLanguage.g:4272:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
@@ -14546,14 +14715,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4225:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:4281:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
     public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4229:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:4230:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalDataDescriptionLanguage.g:4285:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:4286:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
             pushFollow(FOLLOW_34);
             rule__ParanthesesRule__Group__1__Impl();
@@ -14584,23 +14753,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4237:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4293:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4241:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4242:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:4297:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4298:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4242:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:4243:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:4298:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:4299:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4244:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalDataDescriptionLanguage.g:4244:3: rule__ParanthesesRule__SubExpressionAssignment_1
+            // InternalDataDescriptionLanguage.g:4300:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalDataDescriptionLanguage.g:4300:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__SubExpressionAssignment_1();
@@ -14635,14 +14804,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalDataDescriptionLanguage.g:4252:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    // InternalDataDescriptionLanguage.g:4308:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
     public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4256:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalDataDescriptionLanguage.g:4257:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalDataDescriptionLanguage.g:4312:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalDataDescriptionLanguage.g:4313:2: rule__ParanthesesRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__2__Impl();
@@ -14668,17 +14837,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:4263:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    // InternalDataDescriptionLanguage.g:4319:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
     public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4267:1: ( ( ')' ) )
-            // InternalDataDescriptionLanguage.g:4268:1: ( ')' )
+            // InternalDataDescriptionLanguage.g:4323:1: ( ( ')' ) )
+            // InternalDataDescriptionLanguage.g:4324:1: ( ')' )
             {
-            // InternalDataDescriptionLanguage.g:4268:1: ( ')' )
-            // InternalDataDescriptionLanguage.g:4269:2: ')'
+            // InternalDataDescriptionLanguage.g:4324:1: ( ')' )
+            // InternalDataDescriptionLanguage.g:4325:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
@@ -14709,14 +14878,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4279:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4335:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
     public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4283:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4284:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalDataDescriptionLanguage.g:4339:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4340:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
             pushFollow(FOLLOW_35);
             rule__CallRule__Group__0__Impl();
@@ -14747,23 +14916,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4291:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4347:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
     public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4295:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4296:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4351:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4352:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:4296:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:4297:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4352:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4353:2: ( rule__CallRule__FunctionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4298:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalDataDescriptionLanguage.g:4298:3: rule__CallRule__FunctionAssignment_0
+            // InternalDataDescriptionLanguage.g:4354:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4354:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__FunctionAssignment_0();
@@ -14798,14 +14967,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4306:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:4362:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
     public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4310:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:4311:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalDataDescriptionLanguage.g:4366:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:4367:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
             pushFollow(FOLLOW_36);
             rule__CallRule__Group__1__Impl();
@@ -14836,17 +15005,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4318:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    // InternalDataDescriptionLanguage.g:4374:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
     public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4322:1: ( ( '(' ) )
-            // InternalDataDescriptionLanguage.g:4323:1: ( '(' )
+            // InternalDataDescriptionLanguage.g:4378:1: ( ( '(' ) )
+            // InternalDataDescriptionLanguage.g:4379:1: ( '(' )
             {
-            // InternalDataDescriptionLanguage.g:4323:1: ( '(' )
-            // InternalDataDescriptionLanguage.g:4324:2: '('
+            // InternalDataDescriptionLanguage.g:4379:1: ( '(' )
+            // InternalDataDescriptionLanguage.g:4380:2: '('
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
@@ -14877,14 +15046,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__2"
-    // InternalDataDescriptionLanguage.g:4333:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:4389:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
     public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4337:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:4338:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalDataDescriptionLanguage.g:4393:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:4394:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_36);
             rule__CallRule__Group__2__Impl();
@@ -14915,31 +15084,31 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:4345:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:4401:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
     public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4349:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalDataDescriptionLanguage.g:4350:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalDataDescriptionLanguage.g:4405:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalDataDescriptionLanguage.g:4406:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:4350:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalDataDescriptionLanguage.g:4351:2: ( rule__CallRule__Group_2__0 )?
+            // InternalDataDescriptionLanguage.g:4406:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalDataDescriptionLanguage.g:4407:2: ( rule__CallRule__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getGroup_2()); 
             }
-            // InternalDataDescriptionLanguage.g:4352:2: ( rule__CallRule__Group_2__0 )?
+            // InternalDataDescriptionLanguage.g:4408:2: ( rule__CallRule__Group_2__0 )?
             int alt39=2;
             int LA39_0 = input.LA(1);
 
-            if ( ((LA39_0>=RULE_QUOTED_ID && LA39_0<=RULE_INT)||LA39_0==15||(LA39_0>=30 && LA39_0<=31)||LA39_0==65||LA39_0==70||(LA39_0>=83 && LA39_0<=84)) ) {
+            if ( ((LA39_0>=RULE_QUOTED_ID && LA39_0<=RULE_INT)||LA39_0==15||(LA39_0>=30 && LA39_0<=31)||LA39_0==65||LA39_0==70||(LA39_0>=86 && LA39_0<=87)) ) {
                 alt39=1;
             }
             switch (alt39) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:4352:3: rule__CallRule__Group_2__0
+                    // InternalDataDescriptionLanguage.g:4408:3: rule__CallRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CallRule__Group_2__0();
@@ -14977,14 +15146,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__3"
-    // InternalDataDescriptionLanguage.g:4360:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    // InternalDataDescriptionLanguage.g:4416:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
     public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4364:1: ( rule__CallRule__Group__3__Impl )
-            // InternalDataDescriptionLanguage.g:4365:2: rule__CallRule__Group__3__Impl
+            // InternalDataDescriptionLanguage.g:4420:1: ( rule__CallRule__Group__3__Impl )
+            // InternalDataDescriptionLanguage.g:4421:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__3__Impl();
@@ -15010,17 +15179,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:4371:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    // InternalDataDescriptionLanguage.g:4427:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
     public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4375:1: ( ( ')' ) )
-            // InternalDataDescriptionLanguage.g:4376:1: ( ')' )
+            // InternalDataDescriptionLanguage.g:4431:1: ( ( ')' ) )
+            // InternalDataDescriptionLanguage.g:4432:1: ( ')' )
             {
-            // InternalDataDescriptionLanguage.g:4376:1: ( ')' )
-            // InternalDataDescriptionLanguage.g:4377:2: ')'
+            // InternalDataDescriptionLanguage.g:4432:1: ( ')' )
+            // InternalDataDescriptionLanguage.g:4433:2: ')'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
@@ -15051,14 +15220,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalDataDescriptionLanguage.g:4387:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    // InternalDataDescriptionLanguage.g:4443:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
     public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4391:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalDataDescriptionLanguage.g:4392:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
+            // InternalDataDescriptionLanguage.g:4447:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalDataDescriptionLanguage.g:4448:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
             pushFollow(FOLLOW_37);
             rule__CallRule__Group_2__0__Impl();
@@ -15089,23 +15258,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalDataDescriptionLanguage.g:4399:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4455:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
     public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4403:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4404:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalDataDescriptionLanguage.g:4459:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4460:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:4404:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalDataDescriptionLanguage.g:4405:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalDataDescriptionLanguage.g:4460:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalDataDescriptionLanguage.g:4461:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4406:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalDataDescriptionLanguage.g:4406:3: rule__CallRule__ParametersAssignment_2_0
+            // InternalDataDescriptionLanguage.g:4462:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalDataDescriptionLanguage.g:4462:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_0();
@@ -15140,14 +15309,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalDataDescriptionLanguage.g:4414:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4470:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
     public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4418:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalDataDescriptionLanguage.g:4419:2: rule__CallRule__Group_2__1__Impl
+            // InternalDataDescriptionLanguage.g:4474:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalDataDescriptionLanguage.g:4475:2: rule__CallRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2__1__Impl();
@@ -15173,22 +15342,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalDataDescriptionLanguage.g:4425:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:4481:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
     public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4429:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:4430:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalDataDescriptionLanguage.g:4485:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:4486:1: ( ( rule__CallRule__Group_2_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:4430:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalDataDescriptionLanguage.g:4431:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalDataDescriptionLanguage.g:4486:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalDataDescriptionLanguage.g:4487:2: ( rule__CallRule__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4432:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalDataDescriptionLanguage.g:4488:2: ( rule__CallRule__Group_2_1__0 )*
             loop40:
             do {
                 int alt40=2;
@@ -15201,7 +15370,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
                 switch (alt40) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:4432:3: rule__CallRule__Group_2_1__0
+            	    // InternalDataDescriptionLanguage.g:4488:3: rule__CallRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_38);
             	    rule__CallRule__Group_2_1__0();
@@ -15242,14 +15411,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalDataDescriptionLanguage.g:4441:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    // InternalDataDescriptionLanguage.g:4497:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
     public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4445:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalDataDescriptionLanguage.g:4446:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalDataDescriptionLanguage.g:4501:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalDataDescriptionLanguage.g:4502:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
             {
             pushFollow(FOLLOW_10);
             rule__CallRule__Group_2_1__0__Impl();
@@ -15280,17 +15449,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:4453:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalDataDescriptionLanguage.g:4509:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4457:1: ( ( ',' ) )
-            // InternalDataDescriptionLanguage.g:4458:1: ( ',' )
+            // InternalDataDescriptionLanguage.g:4513:1: ( ( ',' ) )
+            // InternalDataDescriptionLanguage.g:4514:1: ( ',' )
             {
-            // InternalDataDescriptionLanguage.g:4458:1: ( ',' )
-            // InternalDataDescriptionLanguage.g:4459:2: ','
+            // InternalDataDescriptionLanguage.g:4514:1: ( ',' )
+            // InternalDataDescriptionLanguage.g:4515:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
@@ -15321,14 +15490,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalDataDescriptionLanguage.g:4468:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4524:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
     public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4472:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:4473:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalDataDescriptionLanguage.g:4528:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:4529:2: rule__CallRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2_1__1__Impl();
@@ -15354,23 +15523,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:4479:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4535:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
     public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4483:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4484:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4539:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4540:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4484:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalDataDescriptionLanguage.g:4485:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalDataDescriptionLanguage.g:4540:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalDataDescriptionLanguage.g:4541:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4486:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalDataDescriptionLanguage.g:4486:3: rule__CallRule__ParametersAssignment_2_1_1
+            // InternalDataDescriptionLanguage.g:4542:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalDataDescriptionLanguage.g:4542:3: rule__CallRule__ParametersAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_1_1();
@@ -15405,14 +15574,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4495:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4551:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
     public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4499:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4500:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalDataDescriptionLanguage.g:4555:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4556:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__DoubleLiteralRule__Group__0__Impl();
@@ -15443,23 +15612,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4507:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4563:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
     public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4511:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4512:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4567:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4568:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:4512:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:4513:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4568:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4569:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4514:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalDataDescriptionLanguage.g:4514:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            // InternalDataDescriptionLanguage.g:4570:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4570:3: rule__DoubleLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__LiteralAssignment_0();
@@ -15494,14 +15663,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4522:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4578:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
     public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4526:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4527:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4582:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4583:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__Group__1__Impl();
@@ -15527,22 +15696,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4533:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    // InternalDataDescriptionLanguage.g:4589:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
     public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4537:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalDataDescriptionLanguage.g:4538:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalDataDescriptionLanguage.g:4593:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalDataDescriptionLanguage.g:4594:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalDataDescriptionLanguage.g:4538:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalDataDescriptionLanguage.g:4539:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalDataDescriptionLanguage.g:4594:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalDataDescriptionLanguage.g:4595:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4540:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalDataDescriptionLanguage.g:4596:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             int alt41=2;
             int LA41_0 = input.LA(1);
 
@@ -15551,7 +15720,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt41) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:4540:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalDataDescriptionLanguage.g:4596:3: rule__DoubleLiteralRule__FactorAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__DoubleLiteralRule__FactorAssignment_1();
@@ -15589,14 +15758,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4549:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4605:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
     public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4553:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4554:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalDataDescriptionLanguage.g:4609:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4610:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__IntegerLiteralRule__Group__0__Impl();
@@ -15627,23 +15796,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4561:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:4617:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
     public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4565:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4566:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4621:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4622:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:4566:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:4567:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4622:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4623:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4568:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalDataDescriptionLanguage.g:4568:3: rule__IntegerLiteralRule__LiteralAssignment_0
+            // InternalDataDescriptionLanguage.g:4624:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4624:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__LiteralAssignment_0();
@@ -15678,14 +15847,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4576:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4632:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
     public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4580:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4581:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4636:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4637:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__1__Impl();
@@ -15711,22 +15880,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4587:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    // InternalDataDescriptionLanguage.g:4643:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
     public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4591:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalDataDescriptionLanguage.g:4592:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalDataDescriptionLanguage.g:4647:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalDataDescriptionLanguage.g:4648:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalDataDescriptionLanguage.g:4592:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalDataDescriptionLanguage.g:4593:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalDataDescriptionLanguage.g:4648:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalDataDescriptionLanguage.g:4649:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4594:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalDataDescriptionLanguage.g:4650:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             int alt42=2;
             int LA42_0 = input.LA(1);
 
@@ -15735,7 +15904,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             }
             switch (alt42) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:4594:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    // InternalDataDescriptionLanguage.g:4650:3: rule__IntegerLiteralRule__FactorAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__IntegerLiteralRule__FactorAssignment_1();
@@ -15773,14 +15942,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4603:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:4659:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
     public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4607:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4608:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalDataDescriptionLanguage.g:4663:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4664:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
             pushFollow(FOLLOW_40);
             rule__BooleanLiteralRule__Group__0__Impl();
@@ -15811,23 +15980,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4615:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:4671:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4619:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:4620:1: ( () )
+            // InternalDataDescriptionLanguage.g:4675:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:4676:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:4620:1: ( () )
-            // InternalDataDescriptionLanguage.g:4621:2: ()
+            // InternalDataDescriptionLanguage.g:4676:1: ( () )
+            // InternalDataDescriptionLanguage.g:4677:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4622:2: ()
-            // InternalDataDescriptionLanguage.g:4622:3: 
+            // InternalDataDescriptionLanguage.g:4678:2: ()
+            // InternalDataDescriptionLanguage.g:4678:3: 
             {
             }
 
@@ -15852,14 +16021,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4630:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:4686:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
     public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4634:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4635:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:4690:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:4691:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__1__Impl();
@@ -15885,23 +16054,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4641:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:4697:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
     public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4645:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4646:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalDataDescriptionLanguage.g:4701:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4702:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4646:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalDataDescriptionLanguage.g:4647:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalDataDescriptionLanguage.g:4702:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalDataDescriptionLanguage.g:4703:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4648:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalDataDescriptionLanguage.g:4648:3: rule__BooleanLiteralRule__Alternatives_1
+            // InternalDataDescriptionLanguage.g:4704:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalDataDescriptionLanguage.g:4704:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Alternatives_1();
@@ -15935,23 +16104,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4657:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
-    public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalDataDescriptionLanguage.g:4713:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4661:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4662:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalDataDescriptionLanguage.g:4717:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4718:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_5);
-            rule__AttributeDefinitionRule__Group__0__Impl();
+            pushFollow(FOLLOW_14);
+            rule__TypeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__AttributeDefinitionRule__Group__1();
+            rule__TypeDefinitionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15970,33 +16139,824 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AttributeDefinitionRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4669:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
-    public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalDataDescriptionLanguage.g:4725:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4673:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:4674:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4729:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalDataDescriptionLanguage.g:4730:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-            // InternalDataDescriptionLanguage.g:4674:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:4675:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4730:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalDataDescriptionLanguage.g:4731:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4676:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalDataDescriptionLanguage.g:4676:3: rule__AttributeDefinitionRule__NameAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__AttributeDefinitionRule__NameAssignment_0();
+            // InternalDataDescriptionLanguage.g:4732:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( (LA43_0==88) ) {
+                alt43=1;
+            }
+            switch (alt43) {
+                case 1 :
+                    // InternalDataDescriptionLanguage.g:4732:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalDataDescriptionLanguage.g:4740:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4744:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:4745:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
+            {
+            pushFollow(FOLLOW_15);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalDataDescriptionLanguage.g:4752:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4756:1: ( ( 'type' ) )
+            // InternalDataDescriptionLanguage.g:4757:1: ( 'type' )
+            {
+            // InternalDataDescriptionLanguage.g:4757:1: ( 'type' )
+            // InternalDataDescriptionLanguage.g:4758:2: 'type'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            }
+            match(input,61,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalDataDescriptionLanguage.g:4767:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4771:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:4772:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
+            {
+            pushFollow(FOLLOW_41);
+            rule__TypeDefinitionRule__Group__2__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__3();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalDataDescriptionLanguage.g:4779:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4783:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalDataDescriptionLanguage.g:4784:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            {
+            // InternalDataDescriptionLanguage.g:4784:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:4785:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            }
+            // InternalDataDescriptionLanguage.g:4786:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalDataDescriptionLanguage.g:4786:3: rule__TypeDefinitionRule__NameAssignment_2
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__NameAssignment_2();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalDataDescriptionLanguage.g:4794:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4798:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:4799:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
+            {
+            pushFollow(FOLLOW_41);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__4();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalDataDescriptionLanguage.g:4806:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4810:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalDataDescriptionLanguage.g:4811:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            {
+            // InternalDataDescriptionLanguage.g:4811:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:4812:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            }
+            // InternalDataDescriptionLanguage.g:4813:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( (LA44_0==75) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // InternalDataDescriptionLanguage.g:4813:3: rule__TypeDefinitionRule__Group_3__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__Group_3__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalDataDescriptionLanguage.g:4821:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4825:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalDataDescriptionLanguage.g:4826:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
+            {
+            pushFollow(FOLLOW_42);
+            rule__TypeDefinitionRule__Group__4__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__5();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalDataDescriptionLanguage.g:4833:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4837:1: ( ( '{' ) )
+            // InternalDataDescriptionLanguage.g:4838:1: ( '{' )
+            {
+            // InternalDataDescriptionLanguage.g:4838:1: ( '{' )
+            // InternalDataDescriptionLanguage.g:4839:2: '{'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            }
+            match(input,73,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalDataDescriptionLanguage.g:4848:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4852:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalDataDescriptionLanguage.g:4853:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
+            {
+            pushFollow(FOLLOW_42);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__6();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalDataDescriptionLanguage.g:4860:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4864:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalDataDescriptionLanguage.g:4865:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalDataDescriptionLanguage.g:4865:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalDataDescriptionLanguage.g:4866:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            }
+            // InternalDataDescriptionLanguage.g:4867:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop45:
+            do {
+                int alt45=2;
+                int LA45_0 = input.LA(1);
+
+                if ( ((LA45_0>=RULE_QUOTED_ID && LA45_0<=RULE_ID)) ) {
+                    alt45=1;
+                }
+
+
+                switch (alt45) {
+            	case 1 :
+            	    // InternalDataDescriptionLanguage.g:4867:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_43);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop45;
+                }
+            } while (true);
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalDataDescriptionLanguage.g:4875:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4879:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalDataDescriptionLanguage.g:4880:2: rule__TypeDefinitionRule__Group__6__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__6__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalDataDescriptionLanguage.g:4886:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4890:1: ( ( '}' ) )
+            // InternalDataDescriptionLanguage.g:4891:1: ( '}' )
+            {
+            // InternalDataDescriptionLanguage.g:4891:1: ( '}' )
+            // InternalDataDescriptionLanguage.g:4892:2: '}'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            }
+            match(input,74,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalDataDescriptionLanguage.g:4902:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4906:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalDataDescriptionLanguage.g:4907:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
+            {
+            pushFollow(FOLLOW_15);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group_3__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalDataDescriptionLanguage.g:4914:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4918:1: ( ( 'extends' ) )
+            // InternalDataDescriptionLanguage.g:4919:1: ( 'extends' )
+            {
+            // InternalDataDescriptionLanguage.g:4919:1: ( 'extends' )
+            // InternalDataDescriptionLanguage.g:4920:2: 'extends'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            }
+            match(input,75,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalDataDescriptionLanguage.g:4929:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4933:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalDataDescriptionLanguage.g:4934:2: rule__TypeDefinitionRule__Group_3__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__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__TypeDefinitionRule__Group_3__1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalDataDescriptionLanguage.g:4940:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4944:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalDataDescriptionLanguage.g:4945:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            {
+            // InternalDataDescriptionLanguage.g:4945:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalDataDescriptionLanguage.g:4946:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            }
+            // InternalDataDescriptionLanguage.g:4947:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalDataDescriptionLanguage.g:4947:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
+
+
+    // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
+    // InternalDataDescriptionLanguage.g:4956:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4960:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:4961:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__AttributeDefinitionRule__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+            pushFollow(FOLLOW_2);
+            rule__AttributeDefinitionRule__Group__1();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__AttributeDefinitionRule__Group__0"
+
+
+    // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
+    // InternalDataDescriptionLanguage.g:4968:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:4972:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:4973:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            {
+            // InternalDataDescriptionLanguage.g:4973:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:4974:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
+            }
+            // InternalDataDescriptionLanguage.g:4975:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalDataDescriptionLanguage.g:4975:3: rule__AttributeDefinitionRule__NameAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__AttributeDefinitionRule__NameAssignment_0();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
@@ -16025,16 +16985,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4684:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:4983:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4688:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:4689:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalDataDescriptionLanguage.g:4987:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:4988:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             rule__AttributeDefinitionRule__Group__1__Impl();
 
             state._fsp--;
@@ -16063,17 +17023,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4696:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalDataDescriptionLanguage.g:4995:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4700:1: ( ( ':' ) )
-            // InternalDataDescriptionLanguage.g:4701:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:4999:1: ( ( ':' ) )
+            // InternalDataDescriptionLanguage.g:5000:1: ( ':' )
             {
-            // InternalDataDescriptionLanguage.g:4701:1: ( ':' )
-            // InternalDataDescriptionLanguage.g:4702:2: ':'
+            // InternalDataDescriptionLanguage.g:5000:1: ( ':' )
+            // InternalDataDescriptionLanguage.g:5001:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
@@ -16104,16 +17064,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalDataDescriptionLanguage.g:4711:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:5010:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4715:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:4716:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalDataDescriptionLanguage.g:5014:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:5015:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_45);
             rule__AttributeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
@@ -16142,23 +17102,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:4723:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalDataDescriptionLanguage.g:5022:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4727:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalDataDescriptionLanguage.g:4728:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:5026:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalDataDescriptionLanguage.g:5027:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalDataDescriptionLanguage.g:4728:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalDataDescriptionLanguage.g:4729:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalDataDescriptionLanguage.g:5027:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:5028:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
             }
-            // InternalDataDescriptionLanguage.g:4730:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalDataDescriptionLanguage.g:4730:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalDataDescriptionLanguage.g:5029:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalDataDescriptionLanguage.g:5029:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -16193,16 +17153,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalDataDescriptionLanguage.g:4738:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalDataDescriptionLanguage.g:5037:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4742:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalDataDescriptionLanguage.g:4743:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalDataDescriptionLanguage.g:5041:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalDataDescriptionLanguage.g:5042:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_45);
             rule__AttributeDefinitionRule__Group__3__Impl();
 
             state._fsp--;
@@ -16231,31 +17191,31 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:4750:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalDataDescriptionLanguage.g:5049:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4754:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalDataDescriptionLanguage.g:4755:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:5053:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalDataDescriptionLanguage.g:5054:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalDataDescriptionLanguage.g:4755:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalDataDescriptionLanguage.g:4756:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalDataDescriptionLanguage.g:5054:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalDataDescriptionLanguage.g:5055:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
             }
-            // InternalDataDescriptionLanguage.g:4757:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:5056:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA43_0==73) ) {
-                alt43=1;
+            if ( (LA46_0==76) ) {
+                alt46=1;
             }
-            switch (alt43) {
+            switch (alt46) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:4757:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalDataDescriptionLanguage.g:5056:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -16293,14 +17253,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalDataDescriptionLanguage.g:4765:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalDataDescriptionLanguage.g:5064:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4769:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalDataDescriptionLanguage.g:4770:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalDataDescriptionLanguage.g:5068:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalDataDescriptionLanguage.g:5069:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -16326,17 +17286,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalDataDescriptionLanguage.g:4776:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalDataDescriptionLanguage.g:5075:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4780:1: ( ( ';' ) )
-            // InternalDataDescriptionLanguage.g:4781:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:5079:1: ( ( ';' ) )
+            // InternalDataDescriptionLanguage.g:5080:1: ( ';' )
             {
-            // InternalDataDescriptionLanguage.g:4781:1: ( ';' )
-            // InternalDataDescriptionLanguage.g:4782:2: ';'
+            // InternalDataDescriptionLanguage.g:5080:1: ( ';' )
+            // InternalDataDescriptionLanguage.g:5081:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
@@ -16367,14 +17327,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalDataDescriptionLanguage.g:4792:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalDataDescriptionLanguage.g:5091:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4796:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalDataDescriptionLanguage.g:4797:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalDataDescriptionLanguage.g:5095:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalDataDescriptionLanguage.g:5096:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
             pushFollow(FOLLOW_10);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
@@ -16405,22 +17365,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalDataDescriptionLanguage.g:4804:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalDataDescriptionLanguage.g:5103:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4808:1: ( ( ':=' ) )
-            // InternalDataDescriptionLanguage.g:4809:1: ( ':=' )
+            // InternalDataDescriptionLanguage.g:5107:1: ( ( ':=' ) )
+            // InternalDataDescriptionLanguage.g:5108:1: ( ':=' )
             {
-            // InternalDataDescriptionLanguage.g:4809:1: ( ':=' )
-            // InternalDataDescriptionLanguage.g:4810:2: ':='
+            // InternalDataDescriptionLanguage.g:5108:1: ( ':=' )
+            // InternalDataDescriptionLanguage.g:5109:2: ':='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
             }
-            match(input,73,FOLLOW_2); if (state.failed) return ;
+            match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
             }
@@ -16446,14 +17406,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalDataDescriptionLanguage.g:4819:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5118:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4823:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalDataDescriptionLanguage.g:4824:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalDataDescriptionLanguage.g:5122:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalDataDescriptionLanguage.g:5123:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -16479,23 +17439,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalDataDescriptionLanguage.g:4830:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:5129:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4834:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalDataDescriptionLanguage.g:4835:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalDataDescriptionLanguage.g:5133:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalDataDescriptionLanguage.g:5134:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:4835:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalDataDescriptionLanguage.g:4836:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalDataDescriptionLanguage.g:5134:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalDataDescriptionLanguage.g:5135:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
             }
-            // InternalDataDescriptionLanguage.g:4837:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalDataDescriptionLanguage.g:4837:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalDataDescriptionLanguage.g:5136:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalDataDescriptionLanguage.g:5136:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -16530,16 +17490,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4846:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5145:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4850:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4851:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5149:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5150:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_46);
             rule__LiteralTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -16568,23 +17528,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4858:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5157:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4862:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:4863:1: ( () )
+            // InternalDataDescriptionLanguage.g:5161:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5162:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:4863:1: ( () )
-            // InternalDataDescriptionLanguage.g:4864:2: ()
+            // InternalDataDescriptionLanguage.g:5162:1: ( () )
+            // InternalDataDescriptionLanguage.g:5163:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4865:2: ()
-            // InternalDataDescriptionLanguage.g:4865:3: 
+            // InternalDataDescriptionLanguage.g:5164:2: ()
+            // InternalDataDescriptionLanguage.g:5164:3: 
             {
             }
 
@@ -16609,14 +17569,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4873:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5172:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4877:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:4878:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5176:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5177:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -16642,22 +17602,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4884:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalDataDescriptionLanguage.g:5183:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4888:1: ( ( 'literal' ) )
-            // InternalDataDescriptionLanguage.g:4889:1: ( 'literal' )
+            // InternalDataDescriptionLanguage.g:5187:1: ( ( 'literal' ) )
+            // InternalDataDescriptionLanguage.g:5188:1: ( 'literal' )
             {
-            // InternalDataDescriptionLanguage.g:4889:1: ( 'literal' )
-            // InternalDataDescriptionLanguage.g:4890:2: 'literal'
+            // InternalDataDescriptionLanguage.g:5188:1: ( 'literal' )
+            // InternalDataDescriptionLanguage.g:5189:2: 'literal'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
             }
@@ -16683,16 +17643,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:4900:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5199:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4904:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:4905:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5203:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5204:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_47);
             rule__InstanceTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -16721,23 +17681,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:4912:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5211:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4916:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:4917:1: ( () )
+            // InternalDataDescriptionLanguage.g:5215:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5216:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:4917:1: ( () )
-            // InternalDataDescriptionLanguage.g:4918:2: ()
+            // InternalDataDescriptionLanguage.g:5216:1: ( () )
+            // InternalDataDescriptionLanguage.g:5217:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:4919:2: ()
-            // InternalDataDescriptionLanguage.g:4919:3: 
+            // InternalDataDescriptionLanguage.g:5218:2: ()
+            // InternalDataDescriptionLanguage.g:5218:3: 
             {
             }
 
@@ -16762,14 +17722,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:4927:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalDataDescriptionLanguage.g:5226:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4931:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalDataDescriptionLanguage.g:4932:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalDataDescriptionLanguage.g:5230:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalDataDescriptionLanguage.g:5231:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_15);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -16800,22 +17760,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:4939:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalDataDescriptionLanguage.g:5238:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4943:1: ( ( 'instance' ) )
-            // InternalDataDescriptionLanguage.g:4944:1: ( 'instance' )
+            // InternalDataDescriptionLanguage.g:5242:1: ( ( 'instance' ) )
+            // InternalDataDescriptionLanguage.g:5243:1: ( 'instance' )
             {
-            // InternalDataDescriptionLanguage.g:4944:1: ( 'instance' )
-            // InternalDataDescriptionLanguage.g:4945:2: 'instance'
+            // InternalDataDescriptionLanguage.g:5243:1: ( 'instance' )
+            // InternalDataDescriptionLanguage.g:5244:2: 'instance'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
             }
-            match(input,75,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
             }
@@ -16841,16 +17801,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalDataDescriptionLanguage.g:4954:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalDataDescriptionLanguage.g:5253:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4958:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalDataDescriptionLanguage.g:4959:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalDataDescriptionLanguage.g:5257:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalDataDescriptionLanguage.g:5258:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_48);
             rule__InstanceTypeRule__Group__2__Impl();
 
             state._fsp--;
@@ -16879,23 +17839,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalDataDescriptionLanguage.g:4966:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalDataDescriptionLanguage.g:5265:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4970:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalDataDescriptionLanguage.g:4971:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:5269:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalDataDescriptionLanguage.g:5270:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalDataDescriptionLanguage.g:4971:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalDataDescriptionLanguage.g:4972:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalDataDescriptionLanguage.g:5270:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalDataDescriptionLanguage.g:5271:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
             }
-            // InternalDataDescriptionLanguage.g:4973:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalDataDescriptionLanguage.g:4973:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalDataDescriptionLanguage.g:5272:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalDataDescriptionLanguage.g:5272:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -16930,14 +17890,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalDataDescriptionLanguage.g:4981:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalDataDescriptionLanguage.g:5280:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4985:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalDataDescriptionLanguage.g:4986:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalDataDescriptionLanguage.g:5284:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalDataDescriptionLanguage.g:5285:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -16963,37 +17923,37 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalDataDescriptionLanguage.g:4992:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:5291:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:4996:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalDataDescriptionLanguage.g:4997:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalDataDescriptionLanguage.g:5295:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalDataDescriptionLanguage.g:5296:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:4997:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalDataDescriptionLanguage.g:4998:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalDataDescriptionLanguage.g:5296:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalDataDescriptionLanguage.g:5297:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
             }
-            // InternalDataDescriptionLanguage.g:4999:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop44:
+            // InternalDataDescriptionLanguage.g:5298:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop47:
             do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
+                int alt47=2;
+                int LA47_0 = input.LA(1);
 
-                if ( (LA44_0==76) ) {
-                    alt44=1;
+                if ( (LA47_0==79) ) {
+                    alt47=1;
                 }
 
 
-                switch (alt44) {
+                switch (alt47) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:4999:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalDataDescriptionLanguage.g:5298:3: rule__InstanceTypeRule__Group_3__0
             	    {
-            	    pushFollow(FOLLOW_46);
+            	    pushFollow(FOLLOW_49);
             	    rule__InstanceTypeRule__Group_3__0();
 
             	    state._fsp--;
@@ -17003,7 +17963,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             	    break;
 
             	default :
-            	    break loop44;
+            	    break loop47;
                 }
             } while (true);
 
@@ -17032,14 +17992,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalDataDescriptionLanguage.g:5008:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalDataDescriptionLanguage.g:5307:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5012:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalDataDescriptionLanguage.g:5013:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalDataDescriptionLanguage.g:5311:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalDataDescriptionLanguage.g:5312:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_15);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -17070,22 +18030,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalDataDescriptionLanguage.g:5020:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalDataDescriptionLanguage.g:5319:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5024:1: ( ( '|' ) )
-            // InternalDataDescriptionLanguage.g:5025:1: ( '|' )
+            // InternalDataDescriptionLanguage.g:5323:1: ( ( '|' ) )
+            // InternalDataDescriptionLanguage.g:5324:1: ( '|' )
             {
-            // InternalDataDescriptionLanguage.g:5025:1: ( '|' )
-            // InternalDataDescriptionLanguage.g:5026:2: '|'
+            // InternalDataDescriptionLanguage.g:5324:1: ( '|' )
+            // InternalDataDescriptionLanguage.g:5325:2: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
             }
-            match(input,76,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
             }
@@ -17111,14 +18071,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalDataDescriptionLanguage.g:5035:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5334:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5039:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalDataDescriptionLanguage.g:5040:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalDataDescriptionLanguage.g:5338:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalDataDescriptionLanguage.g:5339:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -17144,23 +18104,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalDataDescriptionLanguage.g:5046:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:5345:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5050:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalDataDescriptionLanguage.g:5051:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalDataDescriptionLanguage.g:5349:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalDataDescriptionLanguage.g:5350:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:5051:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalDataDescriptionLanguage.g:5052:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalDataDescriptionLanguage.g:5350:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalDataDescriptionLanguage.g:5351:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
             }
-            // InternalDataDescriptionLanguage.g:5053:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalDataDescriptionLanguage.g:5053:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalDataDescriptionLanguage.g:5352:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalDataDescriptionLanguage.g:5352:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -17195,16 +18155,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5062:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5361:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5066:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5067:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5365:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5366:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_50);
             rule__StringTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17233,23 +18193,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5074:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5373:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5078:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5079:1: ( () )
+            // InternalDataDescriptionLanguage.g:5377:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5378:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5079:1: ( () )
-            // InternalDataDescriptionLanguage.g:5080:2: ()
+            // InternalDataDescriptionLanguage.g:5378:1: ( () )
+            // InternalDataDescriptionLanguage.g:5379:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5081:2: ()
-            // InternalDataDescriptionLanguage.g:5081:3: 
+            // InternalDataDescriptionLanguage.g:5380:2: ()
+            // InternalDataDescriptionLanguage.g:5380:3: 
             {
             }
 
@@ -17274,14 +18234,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5089:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5388:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5093:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5094:2: rule__StringTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5392:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5393:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -17307,17 +18267,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5100:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalDataDescriptionLanguage.g:5399:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5104:1: ( ( 'string' ) )
-            // InternalDataDescriptionLanguage.g:5105:1: ( 'string' )
+            // InternalDataDescriptionLanguage.g:5403:1: ( ( 'string' ) )
+            // InternalDataDescriptionLanguage.g:5404:1: ( 'string' )
             {
-            // InternalDataDescriptionLanguage.g:5105:1: ( 'string' )
-            // InternalDataDescriptionLanguage.g:5106:2: 'string'
+            // InternalDataDescriptionLanguage.g:5404:1: ( 'string' )
+            // InternalDataDescriptionLanguage.g:5405:2: 'string'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
@@ -17348,16 +18308,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5116:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5415:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5120:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5121:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5419:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5420:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_51);
             rule__ExpressionTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17386,23 +18346,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5128:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5427:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5132:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5133:1: ( () )
+            // InternalDataDescriptionLanguage.g:5431:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5432:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5133:1: ( () )
-            // InternalDataDescriptionLanguage.g:5134:2: ()
+            // InternalDataDescriptionLanguage.g:5432:1: ( () )
+            // InternalDataDescriptionLanguage.g:5433:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5135:2: ()
-            // InternalDataDescriptionLanguage.g:5135:3: 
+            // InternalDataDescriptionLanguage.g:5434:2: ()
+            // InternalDataDescriptionLanguage.g:5434:3: 
             {
             }
 
@@ -17427,14 +18387,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5143:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5442:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5147:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5148:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5446:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5447:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -17460,22 +18420,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5154:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalDataDescriptionLanguage.g:5453:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5158:1: ( ( 'expression' ) )
-            // InternalDataDescriptionLanguage.g:5159:1: ( 'expression' )
+            // InternalDataDescriptionLanguage.g:5457:1: ( ( 'expression' ) )
+            // InternalDataDescriptionLanguage.g:5458:1: ( 'expression' )
             {
-            // InternalDataDescriptionLanguage.g:5159:1: ( 'expression' )
-            // InternalDataDescriptionLanguage.g:5160:2: 'expression'
+            // InternalDataDescriptionLanguage.g:5458:1: ( 'expression' )
+            // InternalDataDescriptionLanguage.g:5459:2: 'expression'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
             }
@@ -17501,16 +18461,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5170:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5469:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5174:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5175:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5473:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5474:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_52);
             rule__IntTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17539,23 +18499,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5182:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5481:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5186:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5187:1: ( () )
+            // InternalDataDescriptionLanguage.g:5485:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5486:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5187:1: ( () )
-            // InternalDataDescriptionLanguage.g:5188:2: ()
+            // InternalDataDescriptionLanguage.g:5486:1: ( () )
+            // InternalDataDescriptionLanguage.g:5487:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5189:2: ()
-            // InternalDataDescriptionLanguage.g:5189:3: 
+            // InternalDataDescriptionLanguage.g:5488:2: ()
+            // InternalDataDescriptionLanguage.g:5488:3: 
             {
             }
 
@@ -17580,14 +18540,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5197:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5496:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5201:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5202:2: rule__IntTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5500:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5501:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -17613,22 +18573,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5208:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalDataDescriptionLanguage.g:5507:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5212:1: ( ( 'int' ) )
-            // InternalDataDescriptionLanguage.g:5213:1: ( 'int' )
+            // InternalDataDescriptionLanguage.g:5511:1: ( ( 'int' ) )
+            // InternalDataDescriptionLanguage.g:5512:1: ( 'int' )
             {
-            // InternalDataDescriptionLanguage.g:5213:1: ( 'int' )
-            // InternalDataDescriptionLanguage.g:5214:2: 'int'
+            // InternalDataDescriptionLanguage.g:5512:1: ( 'int' )
+            // InternalDataDescriptionLanguage.g:5513:2: 'int'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
             }
-            match(input,78,FOLLOW_2); if (state.failed) return ;
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
             }
@@ -17654,16 +18614,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5224:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5523:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5228:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5229:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5527:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5528:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_53);
             rule__FloatTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17692,23 +18652,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5236:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5535:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5240:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5241:1: ( () )
+            // InternalDataDescriptionLanguage.g:5539:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5540:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5241:1: ( () )
-            // InternalDataDescriptionLanguage.g:5242:2: ()
+            // InternalDataDescriptionLanguage.g:5540:1: ( () )
+            // InternalDataDescriptionLanguage.g:5541:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5243:2: ()
-            // InternalDataDescriptionLanguage.g:5243:3: 
+            // InternalDataDescriptionLanguage.g:5542:2: ()
+            // InternalDataDescriptionLanguage.g:5542:3: 
             {
             }
 
@@ -17733,14 +18693,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5251:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5550:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5255:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5256:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5554:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5555:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -17766,22 +18726,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5262:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalDataDescriptionLanguage.g:5561:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5266:1: ( ( 'float' ) )
-            // InternalDataDescriptionLanguage.g:5267:1: ( 'float' )
+            // InternalDataDescriptionLanguage.g:5565:1: ( ( 'float' ) )
+            // InternalDataDescriptionLanguage.g:5566:1: ( 'float' )
             {
-            // InternalDataDescriptionLanguage.g:5267:1: ( 'float' )
-            // InternalDataDescriptionLanguage.g:5268:2: 'float'
+            // InternalDataDescriptionLanguage.g:5566:1: ( 'float' )
+            // InternalDataDescriptionLanguage.g:5567:2: 'float'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,82,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
             }
@@ -17807,16 +18767,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5278:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5577:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5282:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5283:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5581:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5582:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
-            pushFollow(FOLLOW_51);
+            pushFollow(FOLLOW_54);
             rule__BooleanTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17845,23 +18805,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5290:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5589:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5294:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5295:1: ( () )
+            // InternalDataDescriptionLanguage.g:5593:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5594:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5295:1: ( () )
-            // InternalDataDescriptionLanguage.g:5296:2: ()
+            // InternalDataDescriptionLanguage.g:5594:1: ( () )
+            // InternalDataDescriptionLanguage.g:5595:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5297:2: ()
-            // InternalDataDescriptionLanguage.g:5297:3: 
+            // InternalDataDescriptionLanguage.g:5596:2: ()
+            // InternalDataDescriptionLanguage.g:5596:3: 
             {
             }
 
@@ -17886,14 +18846,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5305:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5604:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5309:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5310:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5608:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5609:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -17919,17 +18879,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5316:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalDataDescriptionLanguage.g:5615:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5320:1: ( ( 'boolean' ) )
-            // InternalDataDescriptionLanguage.g:5321:1: ( 'boolean' )
+            // InternalDataDescriptionLanguage.g:5619:1: ( ( 'boolean' ) )
+            // InternalDataDescriptionLanguage.g:5620:1: ( 'boolean' )
             {
-            // InternalDataDescriptionLanguage.g:5321:1: ( 'boolean' )
-            // InternalDataDescriptionLanguage.g:5322:2: 'boolean'
+            // InternalDataDescriptionLanguage.g:5620:1: ( 'boolean' )
+            // InternalDataDescriptionLanguage.g:5621:2: 'boolean'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
@@ -17960,16 +18920,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5332:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5631:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5336:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5337:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5635:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5636:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_55);
             rule__VoidTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -17998,23 +18958,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5344:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5643:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5348:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5349:1: ( () )
+            // InternalDataDescriptionLanguage.g:5647:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5648:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5349:1: ( () )
-            // InternalDataDescriptionLanguage.g:5350:2: ()
+            // InternalDataDescriptionLanguage.g:5648:1: ( () )
+            // InternalDataDescriptionLanguage.g:5649:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5351:2: ()
-            // InternalDataDescriptionLanguage.g:5351:3: 
+            // InternalDataDescriptionLanguage.g:5650:2: ()
+            // InternalDataDescriptionLanguage.g:5650:3: 
             {
             }
 
@@ -18039,14 +18999,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5359:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5658:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5363:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5364:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5662:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5663:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -18072,22 +19032,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5370:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalDataDescriptionLanguage.g:5669:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5374:1: ( ( 'void' ) )
-            // InternalDataDescriptionLanguage.g:5375:1: ( 'void' )
+            // InternalDataDescriptionLanguage.g:5673:1: ( ( 'void' ) )
+            // InternalDataDescriptionLanguage.g:5674:1: ( 'void' )
             {
-            // InternalDataDescriptionLanguage.g:5375:1: ( 'void' )
-            // InternalDataDescriptionLanguage.g:5376:2: 'void'
+            // InternalDataDescriptionLanguage.g:5674:1: ( 'void' )
+            // InternalDataDescriptionLanguage.g:5675:2: 'void'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,83,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
             }
@@ -18113,16 +19073,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5386:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5685:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5390:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5391:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5689:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5690:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             rule__DataTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -18151,23 +19111,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5398:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDataDescriptionLanguage.g:5697:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5402:1: ( ( () ) )
-            // InternalDataDescriptionLanguage.g:5403:1: ( () )
+            // InternalDataDescriptionLanguage.g:5701:1: ( ( () ) )
+            // InternalDataDescriptionLanguage.g:5702:1: ( () )
             {
-            // InternalDataDescriptionLanguage.g:5403:1: ( () )
-            // InternalDataDescriptionLanguage.g:5404:2: ()
+            // InternalDataDescriptionLanguage.g:5702:1: ( () )
+            // InternalDataDescriptionLanguage.g:5703:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5405:2: ()
-            // InternalDataDescriptionLanguage.g:5405:3: 
+            // InternalDataDescriptionLanguage.g:5704:2: ()
+            // InternalDataDescriptionLanguage.g:5704:3: 
             {
             }
 
@@ -18192,14 +19152,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5413:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5712:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5417:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5418:2: rule__DataTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5716:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5717:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -18225,17 +19185,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5424:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalDataDescriptionLanguage.g:5723:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5428:1: ( ( 'data' ) )
-            // InternalDataDescriptionLanguage.g:5429:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:5727:1: ( ( 'data' ) )
+            // InternalDataDescriptionLanguage.g:5728:1: ( 'data' )
             {
-            // InternalDataDescriptionLanguage.g:5429:1: ( 'data' )
-            // InternalDataDescriptionLanguage.g:5430:2: 'data'
+            // InternalDataDescriptionLanguage.g:5728:1: ( 'data' )
+            // InternalDataDescriptionLanguage.g:5729:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
@@ -18266,16 +19226,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5440:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5739:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5444:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5445:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalDataDescriptionLanguage.g:5743:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5744:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_44);
             rule__ArrayTypeRule__Group__0__Impl();
 
             state._fsp--;
@@ -18304,22 +19264,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5452:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalDataDescriptionLanguage.g:5751:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5456:1: ( ( 'array' ) )
-            // InternalDataDescriptionLanguage.g:5457:1: ( 'array' )
+            // InternalDataDescriptionLanguage.g:5755:1: ( ( 'array' ) )
+            // InternalDataDescriptionLanguage.g:5756:1: ( 'array' )
             {
-            // InternalDataDescriptionLanguage.g:5457:1: ( 'array' )
-            // InternalDataDescriptionLanguage.g:5458:2: 'array'
+            // InternalDataDescriptionLanguage.g:5756:1: ( 'array' )
+            // InternalDataDescriptionLanguage.g:5757:2: 'array'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,84,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
             }
@@ -18345,14 +19305,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5467:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5766:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5471:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5472:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5770:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5771:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -18378,23 +19338,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5478:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:5777:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5482:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:5483:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:5781:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:5782:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:5483:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:5484:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalDataDescriptionLanguage.g:5782:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:5783:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:5485:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalDataDescriptionLanguage.g:5485:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalDataDescriptionLanguage.g:5784:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalDataDescriptionLanguage.g:5784:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -18429,14 +19389,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalDataDescriptionLanguage.g:5494:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5793:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5498:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalDataDescriptionLanguage.g:5499:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalDataDescriptionLanguage.g:5797:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalDataDescriptionLanguage.g:5798:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__ParameterRule__Group__0__Impl();
@@ -18467,23 +19427,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5506:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalDataDescriptionLanguage.g:5805:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5510:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalDataDescriptionLanguage.g:5511:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:5809:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalDataDescriptionLanguage.g:5810:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalDataDescriptionLanguage.g:5511:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalDataDescriptionLanguage.g:5512:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalDataDescriptionLanguage.g:5810:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalDataDescriptionLanguage.g:5811:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5513:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalDataDescriptionLanguage.g:5513:3: rule__ParameterRule__TypeAssignment_0
+            // InternalDataDescriptionLanguage.g:5812:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalDataDescriptionLanguage.g:5812:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -18518,14 +19478,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalDataDescriptionLanguage.g:5521:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5820:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5525:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5526:2: rule__ParameterRule__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5824:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5825:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -18551,23 +19511,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5532:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalDataDescriptionLanguage.g:5831:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5536:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalDataDescriptionLanguage.g:5537:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:5835:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalDataDescriptionLanguage.g:5836:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalDataDescriptionLanguage.g:5537:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalDataDescriptionLanguage.g:5538:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalDataDescriptionLanguage.g:5836:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalDataDescriptionLanguage.g:5837:2: ( rule__ParameterRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
             }
-            // InternalDataDescriptionLanguage.g:5539:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalDataDescriptionLanguage.g:5539:3: rule__ParameterRule__NameAssignment_1
+            // InternalDataDescriptionLanguage.g:5838:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalDataDescriptionLanguage.g:5838:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -18602,16 +19562,16 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalDataDescriptionLanguage.g:5548:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalDataDescriptionLanguage.g:5847: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 {
-            // InternalDataDescriptionLanguage.g:5552:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalDataDescriptionLanguage.g:5553:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalDataDescriptionLanguage.g:5851:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalDataDescriptionLanguage.g:5852:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_53);
+            pushFollow(FOLLOW_56);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -18640,17 +19600,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalDataDescriptionLanguage.g:5560:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:5859:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5564:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5565:1: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:5863:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:5864:1: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:5565:1: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5566:2: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:5864:1: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:5865:2: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
@@ -18685,14 +19645,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalDataDescriptionLanguage.g:5575:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5874:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5579:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalDataDescriptionLanguage.g:5580:2: rule__QualifiedName__Group__1__Impl
+            // InternalDataDescriptionLanguage.g:5878:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalDataDescriptionLanguage.g:5879:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -18718,37 +19678,37 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalDataDescriptionLanguage.g:5586:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalDataDescriptionLanguage.g:5885: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 {
-            // InternalDataDescriptionLanguage.g:5590:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalDataDescriptionLanguage.g:5591:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:5889:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalDataDescriptionLanguage.g:5890:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalDataDescriptionLanguage.g:5591:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalDataDescriptionLanguage.g:5592:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalDataDescriptionLanguage.g:5890:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalDataDescriptionLanguage.g:5891:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalDataDescriptionLanguage.g:5593:2: ( rule__QualifiedName__Group_1__0 )*
-            loop45:
+            // InternalDataDescriptionLanguage.g:5892:2: ( rule__QualifiedName__Group_1__0 )*
+            loop48:
             do {
-                int alt45=2;
-                int LA45_0 = input.LA(1);
+                int alt48=2;
+                int LA48_0 = input.LA(1);
 
-                if ( (LA45_0==82) ) {
-                    alt45=1;
+                if ( (LA48_0==85) ) {
+                    alt48=1;
                 }
 
 
-                switch (alt45) {
+                switch (alt48) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:5593:3: rule__QualifiedName__Group_1__0
+            	    // InternalDataDescriptionLanguage.g:5892:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_54);
+            	    pushFollow(FOLLOW_57);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -18758,7 +19718,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             	    break;
 
             	default :
-            	    break loop45;
+            	    break loop48;
                 }
             } while (true);
 
@@ -18787,14 +19747,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalDataDescriptionLanguage.g:5602:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalDataDescriptionLanguage.g:5901: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 {
-            // InternalDataDescriptionLanguage.g:5606:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalDataDescriptionLanguage.g:5607:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalDataDescriptionLanguage.g:5905:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalDataDescriptionLanguage.g:5906:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_15);
             rule__QualifiedName__Group_1__0__Impl();
@@ -18825,22 +19785,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalDataDescriptionLanguage.g:5614:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalDataDescriptionLanguage.g:5913:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5618:1: ( ( '.' ) )
-            // InternalDataDescriptionLanguage.g:5619:1: ( '.' )
+            // InternalDataDescriptionLanguage.g:5917:1: ( ( '.' ) )
+            // InternalDataDescriptionLanguage.g:5918:1: ( '.' )
             {
-            // InternalDataDescriptionLanguage.g:5619:1: ( '.' )
-            // InternalDataDescriptionLanguage.g:5620:2: '.'
+            // InternalDataDescriptionLanguage.g:5918:1: ( '.' )
+            // InternalDataDescriptionLanguage.g:5919:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            match(input,82,FOLLOW_2); if (state.failed) return ;
+            match(input,85,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
@@ -18866,14 +19826,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalDataDescriptionLanguage.g:5629:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalDataDescriptionLanguage.g:5928: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 {
-            // InternalDataDescriptionLanguage.g:5633:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalDataDescriptionLanguage.g:5634:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalDataDescriptionLanguage.g:5932:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalDataDescriptionLanguage.g:5933:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -18899,17 +19859,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalDataDescriptionLanguage.g:5640:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:5939:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5644:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5645:1: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:5943:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:5944:1: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:5645:1: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5646:2: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:5944:1: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:5945:2: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
@@ -18944,17 +19904,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__UsesAssignment_1"
-    // InternalDataDescriptionLanguage.g:5656:1: rule__DataDescriptionModelRule__UsesAssignment_1 : ( ruleUseRule ) ;
+    // InternalDataDescriptionLanguage.g:5955:1: rule__DataDescriptionModelRule__UsesAssignment_1 : ( ruleUseRule ) ;
     public final void rule__DataDescriptionModelRule__UsesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5660:1: ( ( ruleUseRule ) )
-            // InternalDataDescriptionLanguage.g:5661:2: ( ruleUseRule )
+            // InternalDataDescriptionLanguage.g:5959:1: ( ( ruleUseRule ) )
+            // InternalDataDescriptionLanguage.g:5960:2: ( ruleUseRule )
             {
-            // InternalDataDescriptionLanguage.g:5661:2: ( ruleUseRule )
-            // InternalDataDescriptionLanguage.g:5662:3: ruleUseRule
+            // InternalDataDescriptionLanguage.g:5960:2: ( ruleUseRule )
+            // InternalDataDescriptionLanguage.g:5961:3: ruleUseRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getUsesUseRuleParserRuleCall_1_0()); 
@@ -18989,17 +19949,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__TypesAssignment_2_2"
-    // InternalDataDescriptionLanguage.g:5671:1: rule__DataDescriptionModelRule__TypesAssignment_2_2 : ( ruleDataTypeDefinitionRule ) ;
+    // InternalDataDescriptionLanguage.g:5970:1: rule__DataDescriptionModelRule__TypesAssignment_2_2 : ( ruleDataTypeDefinitionRule ) ;
     public final void rule__DataDescriptionModelRule__TypesAssignment_2_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5675:1: ( ( ruleDataTypeDefinitionRule ) )
-            // InternalDataDescriptionLanguage.g:5676:2: ( ruleDataTypeDefinitionRule )
+            // InternalDataDescriptionLanguage.g:5974:1: ( ( ruleDataTypeDefinitionRule ) )
+            // InternalDataDescriptionLanguage.g:5975:2: ( ruleDataTypeDefinitionRule )
             {
-            // InternalDataDescriptionLanguage.g:5676:2: ( ruleDataTypeDefinitionRule )
-            // InternalDataDescriptionLanguage.g:5677:3: ruleDataTypeDefinitionRule
+            // InternalDataDescriptionLanguage.g:5975:2: ( ruleDataTypeDefinitionRule )
+            // InternalDataDescriptionLanguage.g:5976:3: ruleDataTypeDefinitionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getTypesDataTypeDefinitionRuleParserRuleCall_2_2_0()); 
@@ -19034,17 +19994,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__DescriptionsAssignment_3_2"
-    // InternalDataDescriptionLanguage.g:5686:1: rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 : ( ruleDataDescriptionRule ) ;
+    // InternalDataDescriptionLanguage.g:5985:1: rule__DataDescriptionModelRule__DescriptionsAssignment_3_2 : ( ruleDataDescriptionRule ) ;
     public final void rule__DataDescriptionModelRule__DescriptionsAssignment_3_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5690:1: ( ( ruleDataDescriptionRule ) )
-            // InternalDataDescriptionLanguage.g:5691:2: ( ruleDataDescriptionRule )
+            // InternalDataDescriptionLanguage.g:5989:1: ( ( ruleDataDescriptionRule ) )
+            // InternalDataDescriptionLanguage.g:5990:2: ( ruleDataDescriptionRule )
             {
-            // InternalDataDescriptionLanguage.g:5691:2: ( ruleDataDescriptionRule )
-            // InternalDataDescriptionLanguage.g:5692:3: ruleDataDescriptionRule
+            // InternalDataDescriptionLanguage.g:5990:2: ( ruleDataDescriptionRule )
+            // InternalDataDescriptionLanguage.g:5991:3: ruleDataDescriptionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getDescriptionsDataDescriptionRuleParserRuleCall_3_2_0()); 
@@ -19079,17 +20039,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataDescriptionModelRule__ConstraintsAssignment_4_2"
-    // InternalDataDescriptionLanguage.g:5701:1: rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 : ( ruleStatementRule ) ;
+    // InternalDataDescriptionLanguage.g:6000:1: rule__DataDescriptionModelRule__ConstraintsAssignment_4_2 : ( ruleStatementRule ) ;
     public final void rule__DataDescriptionModelRule__ConstraintsAssignment_4_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5705:1: ( ( ruleStatementRule ) )
-            // InternalDataDescriptionLanguage.g:5706:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6004:1: ( ( ruleStatementRule ) )
+            // InternalDataDescriptionLanguage.g:6005:2: ( ruleStatementRule )
             {
-            // InternalDataDescriptionLanguage.g:5706:2: ( ruleStatementRule )
-            // InternalDataDescriptionLanguage.g:5707:3: ruleStatementRule
+            // InternalDataDescriptionLanguage.g:6005:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6006:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataDescriptionModelRuleAccess().getConstraintsStatementRuleParserRuleCall_4_2_0()); 
@@ -19124,17 +20084,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__ImportURIAssignment_1"
-    // InternalDataDescriptionLanguage.g:5716:1: rule__UseRule__ImportURIAssignment_1 : ( RULE_STRING ) ;
+    // InternalDataDescriptionLanguage.g:6015:1: rule__UseRule__ImportURIAssignment_1 : ( RULE_STRING ) ;
     public final void rule__UseRule__ImportURIAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5720:1: ( ( RULE_STRING ) )
-            // InternalDataDescriptionLanguage.g:5721:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6019:1: ( ( RULE_STRING ) )
+            // InternalDataDescriptionLanguage.g:6020:2: ( RULE_STRING )
             {
-            // InternalDataDescriptionLanguage.g:5721:2: ( RULE_STRING )
-            // InternalDataDescriptionLanguage.g:5722:3: RULE_STRING
+            // InternalDataDescriptionLanguage.g:6020:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6021:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
@@ -19165,17 +20125,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__ScaleAssignment_0"
-    // InternalDataDescriptionLanguage.g:5731:1: rule__DataTypeDefinitionRule__ScaleAssignment_0 : ( ruleScaleType ) ;
+    // InternalDataDescriptionLanguage.g:6030:1: rule__DataTypeDefinitionRule__ScaleAssignment_0 : ( ruleScaleType ) ;
     public final void rule__DataTypeDefinitionRule__ScaleAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5735:1: ( ( ruleScaleType ) )
-            // InternalDataDescriptionLanguage.g:5736:2: ( ruleScaleType )
+            // InternalDataDescriptionLanguage.g:6034:1: ( ( ruleScaleType ) )
+            // InternalDataDescriptionLanguage.g:6035:2: ( ruleScaleType )
             {
-            // InternalDataDescriptionLanguage.g:5736:2: ( ruleScaleType )
-            // InternalDataDescriptionLanguage.g:5737:3: ruleScaleType
+            // InternalDataDescriptionLanguage.g:6035:2: ( ruleScaleType )
+            // InternalDataDescriptionLanguage.g:6036:3: ruleScaleType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getScaleScaleTypeEnumRuleCall_0_0()); 
@@ -19210,17 +20170,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__NameAssignment_2"
-    // InternalDataDescriptionLanguage.g:5746:1: rule__DataTypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:6045:1: rule__DataTypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
     public final void rule__DataTypeDefinitionRule__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5750:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5751:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6049:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6050:2: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:5751:2: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5752:3: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6050:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6051:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
@@ -19255,17 +20215,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__DescriptionAssignment_3_2"
-    // InternalDataDescriptionLanguage.g:5761:1: rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 : ( RULE_STRING ) ;
+    // InternalDataDescriptionLanguage.g:6060:1: rule__DataTypeDefinitionRule__DescriptionAssignment_3_2 : ( RULE_STRING ) ;
     public final void rule__DataTypeDefinitionRule__DescriptionAssignment_3_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5765:1: ( ( RULE_STRING ) )
-            // InternalDataDescriptionLanguage.g:5766:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6064:1: ( ( RULE_STRING ) )
+            // InternalDataDescriptionLanguage.g:6065:2: ( RULE_STRING )
             {
-            // InternalDataDescriptionLanguage.g:5766:2: ( RULE_STRING )
-            // InternalDataDescriptionLanguage.g:5767:3: RULE_STRING
+            // InternalDataDescriptionLanguage.g:6065:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6066:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getDescriptionSTRINGTerminalRuleCall_3_2_0()); 
@@ -19296,17 +20256,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3"
-    // InternalDataDescriptionLanguage.g:5776:1: rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 : ( ruleStatementRule ) ;
+    // InternalDataDescriptionLanguage.g:6075:1: rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3 : ( ruleStatementRule ) ;
     public final void rule__DataTypeDefinitionRule__ConstraintsAssignment_4_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5780:1: ( ( ruleStatementRule ) )
-            // InternalDataDescriptionLanguage.g:5781:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6079:1: ( ( ruleStatementRule ) )
+            // InternalDataDescriptionLanguage.g:6080:2: ( ruleStatementRule )
             {
-            // InternalDataDescriptionLanguage.g:5781:2: ( ruleStatementRule )
-            // InternalDataDescriptionLanguage.g:5782:3: ruleStatementRule
+            // InternalDataDescriptionLanguage.g:6080:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6081:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeDefinitionRuleAccess().getConstraintsStatementRuleParserRuleCall_4_3_0()); 
@@ -19341,17 +20301,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__RepresentationAssignment_0"
-    // InternalDataDescriptionLanguage.g:5791:1: rule__TypedDataDescriptionRule__RepresentationAssignment_0 : ( ruleRepresentationType ) ;
+    // InternalDataDescriptionLanguage.g:6090:1: rule__TypedDataDescriptionRule__RepresentationAssignment_0 : ( ruleRepresentationType ) ;
     public final void rule__TypedDataDescriptionRule__RepresentationAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5795:1: ( ( ruleRepresentationType ) )
-            // InternalDataDescriptionLanguage.g:5796:2: ( ruleRepresentationType )
+            // InternalDataDescriptionLanguage.g:6094:1: ( ( ruleRepresentationType ) )
+            // InternalDataDescriptionLanguage.g:6095:2: ( ruleRepresentationType )
             {
-            // InternalDataDescriptionLanguage.g:5796:2: ( ruleRepresentationType )
-            // InternalDataDescriptionLanguage.g:5797:3: ruleRepresentationType
+            // InternalDataDescriptionLanguage.g:6095:2: ( ruleRepresentationType )
+            // InternalDataDescriptionLanguage.g:6096:3: ruleRepresentationType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getRepresentationRepresentationTypeEnumRuleCall_0_0()); 
@@ -19386,17 +20346,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__NameAssignment_2"
-    // InternalDataDescriptionLanguage.g:5806:1: rule__TypedDataDescriptionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:6105:1: rule__TypedDataDescriptionRule__NameAssignment_2 : ( ruleStringOrId ) ;
     public final void rule__TypedDataDescriptionRule__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5810:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5811:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6109:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6110:2: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:5811:2: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5812:3: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6110:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6111:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
@@ -19431,23 +20391,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__TypeAssignment_5"
-    // InternalDataDescriptionLanguage.g:5821:1: rule__TypedDataDescriptionRule__TypeAssignment_5 : ( ( ruleStringOrId ) ) ;
+    // InternalDataDescriptionLanguage.g:6120:1: rule__TypedDataDescriptionRule__TypeAssignment_5 : ( ( ruleStringOrId ) ) ;
     public final void rule__TypedDataDescriptionRule__TypeAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5825:1: ( ( ( ruleStringOrId ) ) )
-            // InternalDataDescriptionLanguage.g:5826:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6124:1: ( ( ( ruleStringOrId ) ) )
+            // InternalDataDescriptionLanguage.g:6125:2: ( ( ruleStringOrId ) )
             {
-            // InternalDataDescriptionLanguage.g:5826:2: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5827:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6125:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6126:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getTypeDataTypeDefinitionCrossReference_5_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5828:3: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5829:4: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6127:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6128:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getTypeDataTypeDefinitionStringOrIdParserRuleCall_5_0_1()); 
@@ -19488,17 +20448,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3"
-    // InternalDataDescriptionLanguage.g:5840:1: rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 : ( ruleStatementRule ) ;
+    // InternalDataDescriptionLanguage.g:6139:1: rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3 : ( ruleStatementRule ) ;
     public final void rule__TypedDataDescriptionRule__ConstraintsAssignment_6_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5844:1: ( ( ruleStatementRule ) )
-            // InternalDataDescriptionLanguage.g:5845:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6143:1: ( ( ruleStatementRule ) )
+            // InternalDataDescriptionLanguage.g:6144:2: ( ruleStatementRule )
             {
-            // InternalDataDescriptionLanguage.g:5845:2: ( ruleStatementRule )
-            // InternalDataDescriptionLanguage.g:5846:3: ruleStatementRule
+            // InternalDataDescriptionLanguage.g:6144:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6145:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypedDataDescriptionRuleAccess().getConstraintsStatementRuleParserRuleCall_6_3_0()); 
@@ -19533,17 +20493,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__ScaleAssignment_0"
-    // InternalDataDescriptionLanguage.g:5855:1: rule__UntypedDataDescriptionRule__ScaleAssignment_0 : ( ruleScaleType ) ;
+    // InternalDataDescriptionLanguage.g:6154:1: rule__UntypedDataDescriptionRule__ScaleAssignment_0 : ( ruleScaleType ) ;
     public final void rule__UntypedDataDescriptionRule__ScaleAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5859:1: ( ( ruleScaleType ) )
-            // InternalDataDescriptionLanguage.g:5860:2: ( ruleScaleType )
+            // InternalDataDescriptionLanguage.g:6158:1: ( ( ruleScaleType ) )
+            // InternalDataDescriptionLanguage.g:6159:2: ( ruleScaleType )
             {
-            // InternalDataDescriptionLanguage.g:5860:2: ( ruleScaleType )
-            // InternalDataDescriptionLanguage.g:5861:3: ruleScaleType
+            // InternalDataDescriptionLanguage.g:6159:2: ( ruleScaleType )
+            // InternalDataDescriptionLanguage.g:6160:3: ruleScaleType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getScaleScaleTypeEnumRuleCall_0_0()); 
@@ -19578,17 +20538,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__RepresentationAssignment_1"
-    // InternalDataDescriptionLanguage.g:5870:1: rule__UntypedDataDescriptionRule__RepresentationAssignment_1 : ( ruleRepresentationType ) ;
+    // InternalDataDescriptionLanguage.g:6169:1: rule__UntypedDataDescriptionRule__RepresentationAssignment_1 : ( ruleRepresentationType ) ;
     public final void rule__UntypedDataDescriptionRule__RepresentationAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5874:1: ( ( ruleRepresentationType ) )
-            // InternalDataDescriptionLanguage.g:5875:2: ( ruleRepresentationType )
+            // InternalDataDescriptionLanguage.g:6173:1: ( ( ruleRepresentationType ) )
+            // InternalDataDescriptionLanguage.g:6174:2: ( ruleRepresentationType )
             {
-            // InternalDataDescriptionLanguage.g:5875:2: ( ruleRepresentationType )
-            // InternalDataDescriptionLanguage.g:5876:3: ruleRepresentationType
+            // InternalDataDescriptionLanguage.g:6174:2: ( ruleRepresentationType )
+            // InternalDataDescriptionLanguage.g:6175:3: ruleRepresentationType
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getRepresentationRepresentationTypeEnumRuleCall_1_0()); 
@@ -19623,17 +20583,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__NameAssignment_3"
-    // InternalDataDescriptionLanguage.g:5885:1: rule__UntypedDataDescriptionRule__NameAssignment_3 : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:6184:1: rule__UntypedDataDescriptionRule__NameAssignment_3 : ( ruleStringOrId ) ;
     public final void rule__UntypedDataDescriptionRule__NameAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5889:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5890:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6188:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6189:2: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:5890:2: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5891:3: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6189:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6190:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getNameStringOrIdParserRuleCall_3_0()); 
@@ -19668,17 +20628,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3"
-    // InternalDataDescriptionLanguage.g:5900:1: rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 : ( ruleStatementRule ) ;
+    // InternalDataDescriptionLanguage.g:6199:1: rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3 : ( ruleStatementRule ) ;
     public final void rule__UntypedDataDescriptionRule__ConstraintsAssignment_4_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5904:1: ( ( ruleStatementRule ) )
-            // InternalDataDescriptionLanguage.g:5905:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6203:1: ( ( ruleStatementRule ) )
+            // InternalDataDescriptionLanguage.g:6204:2: ( ruleStatementRule )
             {
-            // InternalDataDescriptionLanguage.g:5905:2: ( ruleStatementRule )
-            // InternalDataDescriptionLanguage.g:5906:3: ruleStatementRule
+            // InternalDataDescriptionLanguage.g:6204:2: ( ruleStatementRule )
+            // InternalDataDescriptionLanguage.g:6205:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUntypedDataDescriptionRuleAccess().getConstraintsStatementRuleParserRuleCall_4_3_0()); 
@@ -19713,23 +20673,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__DefinitionAssignment"
-    // InternalDataDescriptionLanguage.g:5915:1: rule__DataReferenceRule__DefinitionAssignment : ( ( ruleStringOrId ) ) ;
+    // InternalDataDescriptionLanguage.g:6214:1: rule__DataReferenceRule__DefinitionAssignment : ( ( ruleStringOrId ) ) ;
     public final void rule__DataReferenceRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5919:1: ( ( ( ruleStringOrId ) ) )
-            // InternalDataDescriptionLanguage.g:5920:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6218:1: ( ( ( ruleStringOrId ) ) )
+            // InternalDataDescriptionLanguage.g:6219:2: ( ( ruleStringOrId ) )
             {
-            // InternalDataDescriptionLanguage.g:5920:2: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:5921:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6219:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6220:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionCrossReference_0()); 
             }
-            // InternalDataDescriptionLanguage.g:5922:3: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:5923:4: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6221:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6222:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionStringOrIdParserRuleCall_0_1()); 
@@ -19770,17 +20730,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalDataDescriptionLanguage.g:5934:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6233:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5938:1: ( ( ruleXorExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:5939:2: ( ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:6237:1: ( ( ruleXorExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6238:2: ( ruleXorExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:5939:2: ( ruleXorExpressionRule )
-            // InternalDataDescriptionLanguage.g:5940:3: ruleXorExpressionRule
+            // InternalDataDescriptionLanguage.g:6238:2: ( ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:6239:3: ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
@@ -19815,17 +20775,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:5949:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6248:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5953:1: ( ( ruleXorExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:5954:2: ( ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:6252:1: ( ( ruleXorExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6253:2: ( ruleXorExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:5954:2: ( ruleXorExpressionRule )
-            // InternalDataDescriptionLanguage.g:5955:3: ruleXorExpressionRule
+            // InternalDataDescriptionLanguage.g:6253:2: ( ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:6254:3: ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
@@ -19860,17 +20820,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalDataDescriptionLanguage.g:5964:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6263:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5968:1: ( ( ruleAndExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:5969:2: ( ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:6267:1: ( ( ruleAndExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6268:2: ( ruleAndExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:5969:2: ( ruleAndExpressionRule )
-            // InternalDataDescriptionLanguage.g:5970:3: ruleAndExpressionRule
+            // InternalDataDescriptionLanguage.g:6268:2: ( ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:6269:3: ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
@@ -19905,17 +20865,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:5979:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6278:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5983:1: ( ( ruleAndExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:5984:2: ( ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:6282:1: ( ( ruleAndExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6283:2: ( ruleAndExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:5984:2: ( ruleAndExpressionRule )
-            // InternalDataDescriptionLanguage.g:5985:3: ruleAndExpressionRule
+            // InternalDataDescriptionLanguage.g:6283:2: ( ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:6284:3: ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
@@ -19950,17 +20910,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalDataDescriptionLanguage.g:5994:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6293:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:5998:1: ( ( ruleNotExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:5999:2: ( ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:6297:1: ( ( ruleNotExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6298:2: ( ruleNotExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:5999:2: ( ruleNotExpressionRule )
-            // InternalDataDescriptionLanguage.g:6000:3: ruleNotExpressionRule
+            // InternalDataDescriptionLanguage.g:6298:2: ( ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:6299:3: ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
@@ -19995,17 +20955,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:6009:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6308:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6013:1: ( ( ruleNotExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6014:2: ( ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:6312:1: ( ( ruleNotExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6313:2: ( ruleNotExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6014:2: ( ruleNotExpressionRule )
-            // InternalDataDescriptionLanguage.g:6015:3: ruleNotExpressionRule
+            // InternalDataDescriptionLanguage.g:6313:2: ( ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:6314:3: ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
@@ -20040,28 +21000,28 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalDataDescriptionLanguage.g:6024:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalDataDescriptionLanguage.g:6323:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6028:1: ( ( ( '!' ) ) )
-            // InternalDataDescriptionLanguage.g:6029:2: ( ( '!' ) )
+            // InternalDataDescriptionLanguage.g:6327:1: ( ( ( '!' ) ) )
+            // InternalDataDescriptionLanguage.g:6328:2: ( ( '!' ) )
             {
-            // InternalDataDescriptionLanguage.g:6029:2: ( ( '!' ) )
-            // InternalDataDescriptionLanguage.g:6030:3: ( '!' )
+            // InternalDataDescriptionLanguage.g:6328:2: ( ( '!' ) )
+            // InternalDataDescriptionLanguage.g:6329:3: ( '!' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
-            // InternalDataDescriptionLanguage.g:6031:3: ( '!' )
-            // InternalDataDescriptionLanguage.g:6032:4: '!'
+            // InternalDataDescriptionLanguage.g:6330:3: ( '!' )
+            // InternalDataDescriptionLanguage.g:6331:4: '!'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
-            match(input,83,FOLLOW_2); if (state.failed) return ;
+            match(input,86,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
@@ -20093,17 +21053,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalDataDescriptionLanguage.g:6043:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6342:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6047:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6048:2: ( ruleComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:6346:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6347:2: ( ruleComparisonExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6048:2: ( ruleComparisonExpressionRule )
-            // InternalDataDescriptionLanguage.g:6049:3: ruleComparisonExpressionRule
+            // InternalDataDescriptionLanguage.g:6347:2: ( ruleComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:6348:3: ruleComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
@@ -20138,17 +21098,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalDataDescriptionLanguage.g:6058:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6357:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6062:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6063:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6361:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6362:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6063:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:6064:3: ruleAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:6362:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6363:3: ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
@@ -20183,17 +21143,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalDataDescriptionLanguage.g:6073:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6372:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6077:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6078:2: ( rulePartialComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:6376:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6377:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6078:2: ( rulePartialComparisonExpressionRule )
-            // InternalDataDescriptionLanguage.g:6079:3: rulePartialComparisonExpressionRule
+            // InternalDataDescriptionLanguage.g:6377:2: ( rulePartialComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:6378:3: rulePartialComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
@@ -20228,17 +21188,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalDataDescriptionLanguage.g:6088:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalDataDescriptionLanguage.g:6387:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6092:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalDataDescriptionLanguage.g:6093:2: ( ruleComparisonOperatorRule )
+            // InternalDataDescriptionLanguage.g:6391:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalDataDescriptionLanguage.g:6392:2: ( ruleComparisonOperatorRule )
             {
-            // InternalDataDescriptionLanguage.g:6093:2: ( ruleComparisonOperatorRule )
-            // InternalDataDescriptionLanguage.g:6094:3: ruleComparisonOperatorRule
+            // InternalDataDescriptionLanguage.g:6392:2: ( ruleComparisonOperatorRule )
+            // InternalDataDescriptionLanguage.g:6393:3: ruleComparisonOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
@@ -20273,17 +21233,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalDataDescriptionLanguage.g:6103:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6402:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6107:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6108:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6406:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6407:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6108:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:6109:3: ruleAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:6407:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6408:3: ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
@@ -20318,17 +21278,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalDataDescriptionLanguage.g:6118:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6417:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6122:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6123:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:6421:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6422:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6123:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalDataDescriptionLanguage.g:6124:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalDataDescriptionLanguage.g:6422:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:6423:3: ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
@@ -20363,17 +21323,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalDataDescriptionLanguage.g:6133:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalDataDescriptionLanguage.g:6432:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6137:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalDataDescriptionLanguage.g:6138:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDataDescriptionLanguage.g:6436:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalDataDescriptionLanguage.g:6437:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalDataDescriptionLanguage.g:6138:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalDataDescriptionLanguage.g:6139:3: ruleAddOrSubtractOperatorRule
+            // InternalDataDescriptionLanguage.g:6437:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDataDescriptionLanguage.g:6438:3: ruleAddOrSubtractOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
@@ -20408,17 +21368,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:6148:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6447:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6152:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6153:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:6451:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6452:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6153:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalDataDescriptionLanguage.g:6154:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalDataDescriptionLanguage.g:6452:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:6453:3: ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
@@ -20453,17 +21413,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalDataDescriptionLanguage.g:6163:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6462:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6167:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6168:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6466:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6467:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6168:2: ( rulePowerOfExpressionRule )
-            // InternalDataDescriptionLanguage.g:6169:3: rulePowerOfExpressionRule
+            // InternalDataDescriptionLanguage.g:6467:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6468:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
@@ -20498,17 +21458,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalDataDescriptionLanguage.g:6178:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalDataDescriptionLanguage.g:6477:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6182:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalDataDescriptionLanguage.g:6183:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalDataDescriptionLanguage.g:6481:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalDataDescriptionLanguage.g:6482:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalDataDescriptionLanguage.g:6183:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalDataDescriptionLanguage.g:6184:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalDataDescriptionLanguage.g:6482:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalDataDescriptionLanguage.g:6483:3: ruleMultiplyDivideModuloOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
@@ -20543,17 +21503,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:6193:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6492:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6197:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6198:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6496:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6497:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6198:2: ( rulePowerOfExpressionRule )
-            // InternalDataDescriptionLanguage.g:6199:3: rulePowerOfExpressionRule
+            // InternalDataDescriptionLanguage.g:6497:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6498:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
@@ -20588,17 +21548,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalDataDescriptionLanguage.g:6208:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6507:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6212:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6213:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6511:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6512:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6213:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:6214:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:6512:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:6513:3: ruleUnaryAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
@@ -20633,17 +21593,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalDataDescriptionLanguage.g:6223:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6522:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6227:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6228:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6526:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6527:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6228:2: ( rulePowerOfExpressionRule )
-            // InternalDataDescriptionLanguage.g:6229:3: rulePowerOfExpressionRule
+            // InternalDataDescriptionLanguage.g:6527:2: ( rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:6528:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
@@ -20678,17 +21638,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalDataDescriptionLanguage.g:6238:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalDataDescriptionLanguage.g:6537:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6242:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalDataDescriptionLanguage.g:6243:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDataDescriptionLanguage.g:6541:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalDataDescriptionLanguage.g:6542:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalDataDescriptionLanguage.g:6243:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalDataDescriptionLanguage.g:6244:3: ruleAddOrSubtractOperatorRule
+            // InternalDataDescriptionLanguage.g:6542:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDataDescriptionLanguage.g:6543:3: ruleAddOrSubtractOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
@@ -20723,17 +21683,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalDataDescriptionLanguage.g:6253:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalDataDescriptionLanguage.g:6552:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6257:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalDataDescriptionLanguage.g:6258:2: ( ruleLiteralOrReferenceRule )
+            // InternalDataDescriptionLanguage.g:6556:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:6557:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalDataDescriptionLanguage.g:6258:2: ( ruleLiteralOrReferenceRule )
-            // InternalDataDescriptionLanguage.g:6259:3: ruleLiteralOrReferenceRule
+            // InternalDataDescriptionLanguage.g:6557:2: ( ruleLiteralOrReferenceRule )
+            // InternalDataDescriptionLanguage.g:6558:3: ruleLiteralOrReferenceRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
@@ -20768,17 +21728,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalDataDescriptionLanguage.g:6268:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6567:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6272:1: ( ( ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6273:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6571:1: ( ( ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6572:2: ( ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6273:2: ( ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:6274:3: ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:6572:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6573:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
@@ -20813,17 +21773,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalDataDescriptionLanguage.g:6283:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalDataDescriptionLanguage.g:6582:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6287:1: ( ( ruleFunctionNameRule ) )
-            // InternalDataDescriptionLanguage.g:6288:2: ( ruleFunctionNameRule )
+            // InternalDataDescriptionLanguage.g:6586:1: ( ( ruleFunctionNameRule ) )
+            // InternalDataDescriptionLanguage.g:6587:2: ( ruleFunctionNameRule )
             {
-            // InternalDataDescriptionLanguage.g:6288:2: ( ruleFunctionNameRule )
-            // InternalDataDescriptionLanguage.g:6289:3: ruleFunctionNameRule
+            // InternalDataDescriptionLanguage.g:6587:2: ( ruleFunctionNameRule )
+            // InternalDataDescriptionLanguage.g:6588:3: ruleFunctionNameRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
@@ -20858,17 +21818,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalDataDescriptionLanguage.g:6298:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6597:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6302:1: ( ( ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6303:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6601:1: ( ( ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6602:2: ( ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6303:2: ( ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:6304:3: ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:6602:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6603:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
@@ -20903,17 +21863,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalDataDescriptionLanguage.g:6313:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6612:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6317:1: ( ( ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6318:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6616:1: ( ( ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6617:2: ( ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6318:2: ( ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:6319:3: ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:6617:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6618:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
@@ -20947,18 +21907,75 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalDataDescriptionLanguage.g:6627:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:6631:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:6632:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalDataDescriptionLanguage.g:6632:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6633:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            }
+            // InternalDataDescriptionLanguage.g:6634:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6635:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalDataDescriptionLanguage.g:6328:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalDataDescriptionLanguage.g:6646:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6332:1: ( ( RULE_DOUBLE ) )
-            // InternalDataDescriptionLanguage.g:6333:2: ( RULE_DOUBLE )
+            // InternalDataDescriptionLanguage.g:6650:1: ( ( RULE_DOUBLE ) )
+            // InternalDataDescriptionLanguage.g:6651:2: ( RULE_DOUBLE )
             {
-            // InternalDataDescriptionLanguage.g:6333:2: ( RULE_DOUBLE )
-            // InternalDataDescriptionLanguage.g:6334:3: RULE_DOUBLE
+            // InternalDataDescriptionLanguage.g:6651:2: ( RULE_DOUBLE )
+            // InternalDataDescriptionLanguage.g:6652:3: RULE_DOUBLE
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
@@ -20989,17 +22006,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalDataDescriptionLanguage.g:6343:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalDataDescriptionLanguage.g:6661:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6347:1: ( ( ruleFactorRule ) )
-            // InternalDataDescriptionLanguage.g:6348:2: ( ruleFactorRule )
+            // InternalDataDescriptionLanguage.g:6665:1: ( ( ruleFactorRule ) )
+            // InternalDataDescriptionLanguage.g:6666:2: ( ruleFactorRule )
             {
-            // InternalDataDescriptionLanguage.g:6348:2: ( ruleFactorRule )
-            // InternalDataDescriptionLanguage.g:6349:3: ruleFactorRule
+            // InternalDataDescriptionLanguage.g:6666:2: ( ruleFactorRule )
+            // InternalDataDescriptionLanguage.g:6667:3: ruleFactorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
@@ -21034,17 +22051,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalDataDescriptionLanguage.g:6358:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalDataDescriptionLanguage.g:6676:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6362:1: ( ( RULE_INT ) )
-            // InternalDataDescriptionLanguage.g:6363:2: ( RULE_INT )
+            // InternalDataDescriptionLanguage.g:6680:1: ( ( RULE_INT ) )
+            // InternalDataDescriptionLanguage.g:6681:2: ( RULE_INT )
             {
-            // InternalDataDescriptionLanguage.g:6363:2: ( RULE_INT )
-            // InternalDataDescriptionLanguage.g:6364:3: RULE_INT
+            // InternalDataDescriptionLanguage.g:6681:2: ( RULE_INT )
+            // InternalDataDescriptionLanguage.g:6682:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
@@ -21075,17 +22092,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalDataDescriptionLanguage.g:6373:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalDataDescriptionLanguage.g:6691:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6377:1: ( ( ruleFactorRule ) )
-            // InternalDataDescriptionLanguage.g:6378:2: ( ruleFactorRule )
+            // InternalDataDescriptionLanguage.g:6695:1: ( ( ruleFactorRule ) )
+            // InternalDataDescriptionLanguage.g:6696:2: ( ruleFactorRule )
             {
-            // InternalDataDescriptionLanguage.g:6378:2: ( ruleFactorRule )
-            // InternalDataDescriptionLanguage.g:6379:3: ruleFactorRule
+            // InternalDataDescriptionLanguage.g:6696:2: ( ruleFactorRule )
+            // InternalDataDescriptionLanguage.g:6697:3: ruleFactorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
@@ -21120,17 +22137,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalDataDescriptionLanguage.g:6388:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalDataDescriptionLanguage.g:6706:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6392:1: ( ( RULE_STRING ) )
-            // InternalDataDescriptionLanguage.g:6393:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6710:1: ( ( RULE_STRING ) )
+            // InternalDataDescriptionLanguage.g:6711:2: ( RULE_STRING )
             {
-            // InternalDataDescriptionLanguage.g:6393:2: ( RULE_STRING )
-            // InternalDataDescriptionLanguage.g:6394:3: RULE_STRING
+            // InternalDataDescriptionLanguage.g:6711:2: ( RULE_STRING )
+            // InternalDataDescriptionLanguage.g:6712:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
@@ -21161,28 +22178,28 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalDataDescriptionLanguage.g:6403:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalDataDescriptionLanguage.g:6721:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6407:1: ( ( ( 'true' ) ) )
-            // InternalDataDescriptionLanguage.g:6408:2: ( ( 'true' ) )
+            // InternalDataDescriptionLanguage.g:6725:1: ( ( ( 'true' ) ) )
+            // InternalDataDescriptionLanguage.g:6726:2: ( ( 'true' ) )
             {
-            // InternalDataDescriptionLanguage.g:6408:2: ( ( 'true' ) )
-            // InternalDataDescriptionLanguage.g:6409:3: ( 'true' )
+            // InternalDataDescriptionLanguage.g:6726:2: ( ( 'true' ) )
+            // InternalDataDescriptionLanguage.g:6727:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
-            // InternalDataDescriptionLanguage.g:6410:3: ( 'true' )
-            // InternalDataDescriptionLanguage.g:6411:4: 'true'
+            // InternalDataDescriptionLanguage.g:6728:3: ( 'true' )
+            // InternalDataDescriptionLanguage.g:6729:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
-            match(input,84,FOLLOW_2); if (state.failed) return ;
+            match(input,87,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
@@ -21213,18 +22230,218 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalDataDescriptionLanguage.g:6740:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:6744:1: ( ( ( 'abstract' ) ) )
+            // InternalDataDescriptionLanguage.g:6745:2: ( ( 'abstract' ) )
+            {
+            // InternalDataDescriptionLanguage.g:6745:2: ( ( 'abstract' ) )
+            // InternalDataDescriptionLanguage.g:6746:3: ( 'abstract' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+            // InternalDataDescriptionLanguage.g:6747:3: ( 'abstract' )
+            // InternalDataDescriptionLanguage.g:6748:4: 'abstract'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+            match(input,88,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalDataDescriptionLanguage.g:6759:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:6763:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6764:2: ( ruleStringOrId )
+            {
+            // InternalDataDescriptionLanguage.g:6764:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6765:3: ruleStringOrId
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalDataDescriptionLanguage.g:6774:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:6778:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:6779:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalDataDescriptionLanguage.g:6779:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6780:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            }
+            // InternalDataDescriptionLanguage.g:6781:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6782:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalDataDescriptionLanguage.g:6793:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDataDescriptionLanguage.g:6797:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalDataDescriptionLanguage.g:6798:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalDataDescriptionLanguage.g:6798:2: ( ruleAttributeDefinitionRule )
+            // InternalDataDescriptionLanguage.g:6799:3: ruleAttributeDefinitionRule
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalDataDescriptionLanguage.g:6422:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:6808:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6426:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:6427:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6812:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6813:2: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:6427:2: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:6428:3: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6813:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6814:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
@@ -21259,17 +22476,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalDataDescriptionLanguage.g:6437:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalDataDescriptionLanguage.g:6823:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6441:1: ( ( ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:6442:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6827:1: ( ( ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:6828:2: ( ruleTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:6442:2: ( ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:6443:3: ruleTypeRule
+            // InternalDataDescriptionLanguage.g:6828:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6829:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
@@ -21304,17 +22521,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalDataDescriptionLanguage.g:6452:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalDataDescriptionLanguage.g:6838:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6456:1: ( ( ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:6457:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6842:1: ( ( ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:6843:2: ( ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:6457:2: ( ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:6458:3: ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:6843:2: ( ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:6844:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
@@ -21349,23 +22566,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalDataDescriptionLanguage.g:6467:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalDataDescriptionLanguage.g:6853:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6471:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDataDescriptionLanguage.g:6472:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6857:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:6858:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDataDescriptionLanguage.g:6472:2: ( ( ruleQualifiedName ) )
-            // InternalDataDescriptionLanguage.g:6473:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6858:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6859:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
             }
-            // InternalDataDescriptionLanguage.g:6474:3: ( ruleQualifiedName )
-            // InternalDataDescriptionLanguage.g:6475:4: ruleQualifiedName
+            // InternalDataDescriptionLanguage.g:6860:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6861:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
@@ -21406,23 +22623,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalDataDescriptionLanguage.g:6486:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalDataDescriptionLanguage.g:6872:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6490:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDataDescriptionLanguage.g:6491:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6876:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:6877:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDataDescriptionLanguage.g:6491:2: ( ( ruleQualifiedName ) )
-            // InternalDataDescriptionLanguage.g:6492:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6877:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6878:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
             }
-            // InternalDataDescriptionLanguage.g:6493:3: ( ruleQualifiedName )
-            // InternalDataDescriptionLanguage.g:6494:4: ruleQualifiedName
+            // InternalDataDescriptionLanguage.g:6879:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6880:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
@@ -21463,17 +22680,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalDataDescriptionLanguage.g:6505:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalDataDescriptionLanguage.g:6891:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6509:1: ( ( ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:6510:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6895:1: ( ( ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:6896:2: ( ruleTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:6510:2: ( ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:6511:3: ruleTypeRule
+            // InternalDataDescriptionLanguage.g:6896:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6897:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
@@ -21508,17 +22725,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalDataDescriptionLanguage.g:6520:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalDataDescriptionLanguage.g:6906:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6524:1: ( ( ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:6525:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6910:1: ( ( ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:6911:2: ( ruleTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:6525:2: ( ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:6526:3: ruleTypeRule
+            // InternalDataDescriptionLanguage.g:6911:2: ( ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:6912:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
@@ -21553,17 +22770,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalDataDescriptionLanguage.g:6535:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalDataDescriptionLanguage.g:6921:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6539:1: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:6540:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6925:1: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:6926:2: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:6540:2: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:6541:3: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:6926:2: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:6927:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
@@ -21598,23 +22815,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalDataDescriptionLanguage.g:6550:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalDataDescriptionLanguage.g:6936:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDataDescriptionLanguage.g:6554:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDataDescriptionLanguage.g:6555:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6940:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:6941:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDataDescriptionLanguage.g:6555:2: ( ( ruleQualifiedName ) )
-            // InternalDataDescriptionLanguage.g:6556:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6941:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:6942:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
             }
-            // InternalDataDescriptionLanguage.g:6557:3: ( ruleQualifiedName )
-            // InternalDataDescriptionLanguage.g:6558:4: ruleQualifiedName
+            // InternalDataDescriptionLanguage.g:6943:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:6944:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
@@ -21653,10 +22870,88 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     }
     // $ANTLR end "rule__FunctionNameRule__DefinitionAssignment"
 
+    // $ANTLR start synpred2_InternalDataDescriptionLanguage
+    public final void synpred2_InternalDataDescriptionLanguage_fragment() throws RecognitionException {   
+        // InternalDataDescriptionLanguage.g:1376:2: ( ( ruleConstantReferenceRule ) )
+        // InternalDataDescriptionLanguage.g:1376:2: ( ruleConstantReferenceRule )
+        {
+        // InternalDataDescriptionLanguage.g:1376:2: ( ruleConstantReferenceRule )
+        // InternalDataDescriptionLanguage.g:1377:3: ruleConstantReferenceRule
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0()); 
+        }
+        pushFollow(FOLLOW_2);
+        ruleConstantReferenceRule();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred2_InternalDataDescriptionLanguage
+
+    // $ANTLR start synpred3_InternalDataDescriptionLanguage
+    public final void synpred3_InternalDataDescriptionLanguage_fragment() throws RecognitionException {   
+        // InternalDataDescriptionLanguage.g:1382:2: ( ( ruleDataReferenceRule ) )
+        // InternalDataDescriptionLanguage.g:1382:2: ( ruleDataReferenceRule )
+        {
+        // InternalDataDescriptionLanguage.g:1382:2: ( ruleDataReferenceRule )
+        // InternalDataDescriptionLanguage.g:1383:3: ruleDataReferenceRule
+        {
+        if ( state.backtracking==0 ) {
+           before(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
+        }
+        pushFollow(FOLLOW_2);
+        ruleDataReferenceRule();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+
+
+        }
+    }
+    // $ANTLR end synpred3_InternalDataDescriptionLanguage
+
     // Delegated rules
 
+    public final boolean synpred3_InternalDataDescriptionLanguage() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred3_InternalDataDescriptionLanguage_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 synpred2_InternalDataDescriptionLanguage() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred2_InternalDataDescriptionLanguage_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+
 
     protected DFA1 dfa1 = new DFA1(this);
+    protected DFA3 dfa3 = new DFA3(this);
     static final String dfa_1s = "\12\uffff";
     static final String dfa_2s = "\1\20\4\71\1\uffff\1\4\2\74\1\uffff";
     static final String dfa_3s = "\1\27\4\71\1\uffff\1\5\2\100\1\uffff";
@@ -21696,7 +22991,46 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
             this.transition = dfa_6;
         }
         public String getDescription() {
-            return "1300:1: rule__DataDescriptionRule__Alternatives : ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) );";
+            return "1350:1: rule__DataDescriptionRule__Alternatives : ( ( ruleTypedDataDescriptionRule ) | ( ruleUntypedDataDescriptionRule ) );";
+        }
+    }
+    static final String dfa_7s = "\1\uffff\2\5\5\uffff\2\5";
+    static final String dfa_8s = "\1\4\2\30\3\uffff\1\4\1\uffff\2\30";
+    static final String dfa_9s = "\1\127\2\125\3\uffff\1\5\1\uffff\2\125";
+    static final String dfa_10s = "\3\uffff\1\2\1\3\1\4\1\uffff\1\1\2\uffff";
+    static final String[] dfa_11s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\61\uffff\1\5\4\uffff\1\4\20\uffff\1\3",
+            "\13\5\31\uffff\1\5\5\uffff\4\5\1\7\2\5\14\uffff\1\6",
+            "\13\5\31\uffff\1\5\5\uffff\4\5\1\7\2\5\14\uffff\1\6",
+            "",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "\13\5\31\uffff\1\5\5\uffff\4\5\1\7\2\5\14\uffff\1\6",
+            "\13\5\31\uffff\1\5\5\uffff\4\5\1\7\2\5\14\uffff\1\6"
+    };
+    static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
+    static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
+    static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+    static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
+    static final short[][] dfa_11 = unpackEncodedStringArray(dfa_11s);
+
+    class DFA3 extends DFA {
+
+        public DFA3(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 3;
+            this.eot = dfa_1;
+            this.eof = dfa_7;
+            this.min = dfa_8;
+            this.max = dfa_9;
+            this.accept = dfa_10;
+            this.special = dfa_5;
+            this.transition = dfa_11;
+        }
+        public String getDescription() {
+            return "1398:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
         }
     }
  
@@ -21710,8 +23044,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00000000000F0002L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000FF0000L});
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000FF0002L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000000C00081F0L,0x0000000000180042L});
-    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000000C00081F2L,0x0000000000180042L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00000000C00081F0L,0x0000000000C00042L});
+    public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x00000000C00081F2L,0x0000000000C00042L});
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000000040L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x1000000000000000L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x2000000000000000L});
@@ -21736,24 +23070,27 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalConte
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
     public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x00000000C00081F0L,0x00000000001800C2L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x00000000C00081F0L,0x0000000000C000C2L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
     public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
     public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x007FFFF800000000L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00000000000081C0L,0x0000000000100000L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0200000000C00000L,0x000000000003EC00L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000800000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000400000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00000000000081C0L,0x0000000000800000L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000A00L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000030L,0x0000000000000400L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000032L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0200000000C00000L,0x00000000001F6000L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x1000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000800000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
     public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000002L,0x0000000000040000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000400000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000200000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000002L,0x0000000000200000L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtextbin b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtextbin
index d3d050e5911bb7ebfc44d7725100960991406cba..97f016b63a5dab933b2b9b0052cb45610be94627 100644
GIT binary patch
delta 4668
zcmZu#X<$=T7Um{-Y119rkd{K(r4+`X<BSZ8<es1oiXa6P+-4r_12TrBCMm)QWI%C4
z5O^T&8{mS93yO-OqN0e7jw_;q;0`(hijIP!-?{I;hQjoR=H2t1?|kRnbMHHkC1)=k
z|IpKhIAP6tBT$z0$=RaVkaI+lr+qY;NN3DMrrw%prL07QRo@)9yz)}v^+d*b<z*gk
z8*fE8d=yOh<Xll=6gFBDV~JQMmQ46PgY)F&qOBpX(9Tz~b1>&T)WKE)Ed25+Xo##8
z{3owwJ@f3>gQ3D};4J40pGPjR_Xdw2a4krDW#RBpGh?=hMD&IKC;B3ezE}}>rEQ<r
zzAC$fqpWkHEafQIA?tRdt@y+iGAH9@+U<HBuN4IGZV-8fSKcVf4SACbh4Pz)-|$a0
z<IR?eVHBB(L^5M?LDC+1%h{rxCopoVl}g1L9fX1jd8^3tc!q%SHV}9&5b}29Q=E!T
znw%NgWTnhRqpIf}EPtNkBjlazR0pT!_8pbw1uHn8m7>(s)qXA1vBJsYE{NluyW8Vy
z<Lzv34%L)G{XN1keDYpVX2@0c#?Y~)_i@-dByc~kJzx*6>=7Con+lbFxteWZ*dAot
zL$LMj|1huh)Z!n3)<Dvcnf818VB^=c68fks^f4CNXDu6-f$;I89iL#^TsOlf?T;%%
z1?xDmr?637?BlAcOP$1?)`_jR>#BOzJfpVb*%rP`GNlUk9J_9?r&M(;d0sobz?BHv
z3p-R)pb{^l5_xhXXZDiEXyfe)L$K4SDa*`QsWFqygkQdlT)ig^hTcsKd&S;YRa>!{
z3vd$FUgfpd*tMEnt53eD*^K+;zuC?{ue1FPws&HC)!2mPApXO&T^aHwL*BCIb?908
zHoFbN+B>}VuKjF>9wXjk;2;3`Pi{euCF$k~Cr@iiS?RQU(%$E~WgU$BU%Az-`v;)#
z$q_?^{LntGy0Y6xjJ`<Y<Te+!onhlf)(iPD!@BNZ*o7`^rwjXp1u^PVMv2et_0^%!
zQ*uKj8(9{aD_2J5MHWSt%XH)(`MEtaSegAomp+Svf5|&C2Z_vyY>jM>d@4_uV`PDx
zEWg4Amyem=Wa)bWnK?VXOMCC;`=f0*+!_PQud(_0@*7dYM<`%UNM}-JL&onNf=2u=
zv}Rk@5cXRv7#V~Sat}&rB+Mz6YL&g5EUpH*kMrcS_#L46*0hY3XiN+FJ<tW|X0$mA
zP%iuVg89LfhfC~7=1`ZI{2!b>mk9ZjD3N?h3(ZU>6`RnUvGfu7nG10MNmokOa%AQQ
zHT5s{d7V0Ce?^*pd8n1>-?V6I!{G)95^U!5SRi>|CNE+HShFf8`5aO*xSV-TIfak>
zI0%K5#}4^$C>;&8iAg!PK)&`XSX@()E#&h?MY#T`*j*QbN}wVS<%cJC4V5xo8R&|J
zB{Dg#w%Vl~ODG73wGk@H6>kOe23-(%+Jn~@OJo#jNEBaSP$gJPPKhVY!+5K-O9$pH
z3Wr<FV6Ilo9hte43j=cvnEex(Msas$!CmZqHNikvjp}BXb`B2juH1XDdr#K@_haCm
zKOvcnTV_HL^kRZqXe%2Y!wq7_b6NM+esy+J=U}#vBJ9hAe{c;TJeCRLj;kUJGhshY
zR;E(s^c>xB+Ut0oY>OGm{!x*iz`2?1CFoD+i+~lkrdWv#H((as@n@#?auh))^6&l#
z({`Ae02-`Zq`&A$12|GCZx_!94g$djBA7vgIFrFH5{xGydLX8uf`&jqQEoi2H+HGW
z?iPL`1Xf3eqWXTJq44y~5Oi{D7w6p2DL8a=suM^u!(UwnmB=to<TNBwd{#2nm`mbx
zEp0d_Q5X)xnpI|GaE2<^2+m-n3quBHLWeOGEQ)v(6W4>dJa_fx=tpb6F-(t3sx<~N
z#;O=+ag4JyHaiAE#vw?d)pD7uP~$n&Ih+HJIk_O`YRB_*4z3mS=PUXPnEr1r3haO9
z6dFOoy!=O|zTIeo7>8?oz+gcQsB@_r+st?@t%enKdo*%k&t)fzcVr;@3!2EkXX2MU
zKwhe){*+JkR7RE5g-)Y$s2@$T<J~%DCkr)sL>`5@7}Vv{Kj7&@3kbRp5p%axoYO@g
z(iC2HFJww^cwESo<cPI`nq27@0aw^$rf_xRjOo5eF-sanD>;)bSvEO0UdB;E&0IEI
z3(C%BD4VM4c5y2`(_B5%Tj}|y)}yL$iQB9*SX^I0Gmp@e<vECEIik33SqAnN^e_HD
z*OF#KY{(s@kGT73jw4!L36YmVq@ON>qrZU%bU{39=L&c^qTu~0=!%@+QHXw}R!mpH
zRc-av066oh+TnQ&;2jo}j;xNXjjW68j~tBbiR_Z&BhSEzuEFR{^F5-CQESgOI@`Ot
zmj&n30<7kF{Z>OVh4<*Jykff6F6mK|T?o-~zLyrE(!P*0r4O~z4XIcYkHBXn8?89<
zS*-H0xmlOE9+0q<-{5tI(VW)rNV<;8w+v;<ADh;%uj{qL4IIKB4#NP(8^P$K>`jpD
zgS()ck!V3|N>ehG8CyS0C3_23X*}ZG3Y6Q;w>drKqua6Q&)_YY7IX&#@G`yA5#%hZ
z!IqY@q7}Sx?%_LZ<4X8riB@WbciH`WcFf)lWqEWD*FD`}#+~=_z09%-qk6$;UgHz)
zrTets{TNVvXww!G@_PVpXM<K_D5M85OZxB))?yBiNKT0*Fm%#G(4C)fo{;CmfM@BE
zqwphBjShYd<CD%4@Q*V6V+_YvT8=(yy7;xg2O9Jv93E$fCysI$)tt=4@SgG0lfte)
zrd@U&{8YCJdMekUXwauo2X(~PyW7A`hu1_)%LsZFE4&%c!Sis7+S3hsPX#^iFc|a#
z2fH|ynJnl<CTmDm;K-y*j1Sn_jhgKxTlA^y`!estCcZO9<0DPI9GxrU72b<k-pKi=
z{buZ-mtM68_UdrrYwYe^go4zJ?>@ZlX7C2bS643ah|kjBw6Ez^Rqz%EdmF(j?0$8@
z%6B-#e0-Q9#JkvDFTKZrE%ryfYRcYsjI>oBBzs4%iUI&XfR+G#XfLb_jpQMowxNm2
z>n;8kK*iPF?R3+2&G0dI6ZZ3H4Cr>Kw%W<t_=&xswoAKDSv)>|;zH18y!^TSTy6K@
z7g)|m0j){6GzERhmakyxP(#k_<ELE=X_<s*H$%R*`}OXY{RWo9hC=xBP_9e#ZL5CR
zgOpT1>;=M`#G7ItL-|+=`i`OeQ|<isJO=F7N#2Dq;0Nt1=ts8|cm_ARI=%1{exnx-
zYlWY&!n<>TTcO)QuI47b34h^rwXO6kFCM~{RgX<%?47-;0>3#CqiyUFb)CCM1)uJy
z$NBWg9q_1^9ajkv^<k^ppBpv!c^jVnEJ<}oH1F`#qxnE^>d}B!A1z?05+5zZ&sO52
zMJ#fFh!#V9Xh^h#`B{CmlnuHm`MFH@Wwh;49PKnmIddEnt#CO|gJraew$TcDo3_v)
P+9YSldHAOik5~K-1RyD#

delta 4465
zcmZ`-YhV=B70%t=*<|w|0rCzBNgy;3+AXxzf;{G)1T7T_hM-W3c1b3%ve^y08y*!H
zp@0tx7zd;%YFlkZQA9vqLIqTOfr?rc6%eIbMFbUJMbz)iBiTUB56Il}o$q|-+;i`o
z$%+ZfuUx-F5d$~wRD4+}ZaGh6D003rF*h&mPr~hz3xvld7aDr*z`=`L?j%o^-(M4m
z2kNvYEvkhZG~tmqh%QQ6qt+A*2jjs=*y|daEN>KD6?v0M;FdQV$8!tx#b8#q3;vOR
z<|s=<x~tn*E!5ObR@WNR+;XYyw#<&#34(aHh-Aer+eCLo-s(WXX$Y_4ogN6aYGw>2
zJrE8@;sKTvbIIkp=;rd(PS>K*V55aFVM4AD$u8G$Fy00N*VRI<L_QhO;N&Us+7>Mu
z2sfG;{e|T(wtR$K#ZLX;bUVPQ5yr(M(U{j=h2-zx>{g3RSJ`E)p?I(*G^-{!-Dt}1
znr$U`CseEB-SRG%C&}H@IFMhGjkN9-isF%f6<Lb>n@dS@SHe)5ZxeXs-&tKh<arMx
z?ls!-`)B@x*Zf%fC$HUywcf_5{1kl+uUFXl-4BI6Q(?H#7WhD?T-G|dJotZdd5EDa
z5n|o>G!L_Fp;MCeq6?QKts!E}DCm;<2p3@kwz$;TRZx^^WxmnQe3P-QprYhab0asm
z6QhD=skgA}R^!`(9=>h1!*-*rut(R&P@-hHgOlCKB`Py|7UdLQ64e56Em}V%5cbM{
zA$9k#p%DBy!*&_h7glEP=6Vdn+8$nef?bQ)wP?h&)<DQBpJY4xJjM3CY%gYe!MLzy
zA)aR1GKM_EkY|m;qKeGt*lh^bp69iF#^|Ennfn<y1VH|gFBtQRa{Io>b<(XR=U@4f
zQ}qMz@W|0MLcVP5D#|Z^h0)V&oP5=R{hMLqYwLu3jbUZ4Gi<5@d&7Yp<oJwwlTrS+
z7^T@L^%_-Er>fJ`S#pEis_N=Wb)j6XE>_#rdt^*qBi}aW<mBsz?3(Ln%ERUs9pSU~
zPW!TuM-ip{tf>dp!|HqTQduuk<rMiY_Pl%jtQM`N{YtPl|2>=F7|yl3tKZ)lgJAzb
zuoS7k&y6%(@dYNu;?Y1u-0L2WL-hedwlATy|HZQsM;IYLL<cG1K(l6c&qtgx?iqQU
zYr+TnV?a~1nQ;vVK*$r^<*`;ASr%Zre8RWYNn2k2G2xY`m}E28O@0b**L6aEW-Kkv
z^L`G4JZ-EkF7|z4JA7#zC@$8&f_Sg|x|5V|94Y@}j=@5nVKa+1!+y(LXHhO6E3u07
zolW{Z7b)2)lJHOxIzNpB9LNQS%(3xkFg&^4joiBBM;`Xe@cTOe@K$&i$%|d2WCte%
zr9f3OY78dMlzdE|3i|Ys;dlpkn(dO#)Tw^IZ3J(I$=ii_^-Ko^qAU=5g5kKy+Lc+m
zfwjxUp-3Qsx4Z3;&AjP;f4dpXIVN*1Gv_%l5a)x~+r%^`bpcZsf;x-zNF<~M!X2uM
zY_}fF-o@{y4gmOzP5u(*@96-+Ukd(|Nfy$KP{t9;Il`zQ?wCNRBS0_PueTXM_xlqN
zh)`ih=))0y;vf;Bk|TsHE;B-3j?j<GBcsv4tPcJv+pE7_o^~_He`=EdjH?k~FF_T4
zw3bf`Y0X+VZe8>Ab5Ntd%rFBu%s^vlX|DbYoA{SZoXPtciwE#3=g{E(6}T0;fQ4V^
zAR+wM2<8jgP(gzbF1_QWZ$})AgG3iuUJ~bsh9InYj%cWTLy>nFm|U}s4@xU^hL8g>
zbyl;^8k8gBib$}rqZ%V@DHpToG{4`mLhvPKF@D2>M>;47{w=~N(?MeLUdp_qz}tPq
z%$BGYi(xFNH};qLe3#iiqm3hF`FgEMHipSAcMKq_16i8Z?rBnvWy*S%$`etC)N!`o
z6}D8z3aM9`?Bkhzf`bD4?^tRhNJJ4c<A<)YFE9E%Z0^BB1x+;C%JT+Y&DFY!5!b-r
zy2wKRfq$Qa-{om}mda@$xo8xnQa3838mgy$6flmK_s}O<LDfyr(f}<f)Cf-x_EC_Q
zcsEfK;&AWKWL|bISDM1%ak)~EBUTE!*3mf?xU`l)6xT2giro((E>SZ#_ZYV5Y%=dT
z3R_AjVt2P`XET(wm{pqANl(<#6YHcWZtLMPP^;5o(^*`9K{L+LRKw#L&9p?Z$1Dc+
z74%2`pKD3Y>N<6^x?Mf3o>5P#AIb?TPZV?=#$cN55=ly>F;D4feAGKDX93N@YO>p_
zHAJF#4b4r?pt(k7MTw6uW4XXh*Bcj9l<4!2j+f^1rduO542ZPAnwON;m}XaNAq!iC
zYNd>eS+4`S!DhM<W%79aei%@oo51Lyn<2~tZ$XQZXKJvyB@&H~s~gGh7BVO72?(>K
z$;k~5ORe4V&@wD~<2dj!LANkqu%I?ekhN@1vUDpeGN35WY2tHU>a^SzxWX9Jr-yzU
zge4OX(B4=>AY{Jgh$m-Sg>g7_EU)oFantR#-yN8NJ-GbaO-OGwUUmxIiJ^+_!Yt;=
zPB8mNN1B6S3~h8bWT%9!C#1%MvrarYcgEL78!bE!&?yn?33wi(>0XBCB+^$096S%#
zz6Sdd4m@Miedjq`-WrJqap!tzjnLsS&3@*NgxCFGvBng7pi}3rMODm`^q{jR4*`lR
zHP#Rfw(wVrpmkW`op~6Zi57E**MmS}hXp-iF(`EH297o(7@s0&BeON&+XpigUd7nw
zO*Y%3);=d1t=-<t8?}W`>sWj@nQs#7ux=IT=ecfmA~t86c{sNlLn;d|e2f{bD@f3e
z#D|?uQha)>tBoGF<L@$-R2HP}=3sjeEZZ1Rm6QJjhgg7bMTB?~`|qZw7_iqkR9TYs
zv}L4c_!Q*%{l?MC>{I}sg%%$@XS7x2j-lrnzYlHJy-wpB9(!Vb{8|0B-==th`wcsO
zJ_dX*nvM4oZ}b6US>MubFSB}lUWA08S9tkVV|U+PIXsJ}ps3np+*g8LW6SHX6qeXi
zhL_%8Nc$u~2O09FF`!?${uV3=Qy2W-<|yX%Plr17$YG>p_Q(+++!0*T?=Y0lt)Qa}
z<zLNic$eS2JYn;_vjVTxW45m#jMY2`EA&1)*IVtu<8)#N2;za7n+?-6f5#;nt@hx-
z8tnnW#~EtwJAKTHCyYK-rM^$>=qHWZs-C^*lzA6?%51|EuY=FnV-;9F=Y7-ZG(Ydd
z^A{}7D#MqZ%J3BsW*NSAGWmv~Rw6uFCu$XRhSedFZ+|S2vmDV(<U0{@GU3xI=zF_w
rtCP;9triw-wd+S{tKAMQcoxwr+D8WMp}lm1w#eCXKK|a}a*H1Tw|V*Z

diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.g b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.g
index 465790ab..c34c8950 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.g
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.g
@@ -712,11 +712,11 @@ ruleValueReferenceRule returns [EObject current=null]
 			/* */
 		}
 		{
-			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0());
+			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0());
 		}
-		this_DataReferenceRule_0=ruleDataReferenceRule
+		this_ConstantReferenceRule_0=ruleConstantReferenceRule
 		{
-			$current = $this_DataReferenceRule_0.current;
+			$current = $this_ConstantReferenceRule_0.current;
 			afterParserOrEnumRuleCall();
 		}
 		    |
@@ -724,11 +724,23 @@ ruleValueReferenceRule returns [EObject current=null]
 			/* */
 		}
 		{
-			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1());
+			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1());
 		}
-		this_SelfReferenceRule_1=ruleSelfReferenceRule
+		this_DataReferenceRule_1=ruleDataReferenceRule
 		{
-			$current = $this_SelfReferenceRule_1.current;
+			$current = $this_DataReferenceRule_1.current;
+			afterParserOrEnumRuleCall();
+		}
+		    |
+		{
+			/* */
+		}
+		{
+			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2());
+		}
+		this_SelfReferenceRule_2=ruleSelfReferenceRule
+		{
+			$current = $this_SelfReferenceRule_2.current;
 			afterParserOrEnumRuleCall();
 		}
 	)
@@ -1666,6 +1678,42 @@ ruleCallRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			{
+				/* */
+			}
+			{
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
+			}
+		)
+	)
+;
+
 // Entry rule entryRuleLiteralRule
 entryRuleLiteralRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getLiteralRuleRule()); }
@@ -1959,6 +2007,114 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						/* */
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.tokens b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.tokens
index 9143ea3f..220ab396 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguage.tokens
@@ -1,73 +1,77 @@
 '!'=29
-'!='=57
-'%'=64
+'!='=61
+'%'=68
 '('=31
 ')'=32
-'*'=62
-'+'=60
+'*'=66
+'+'=64
 ','=33
-'-'=61
-'.'=47
-'/'=63
+'-'=65
+'.'=51
+'/'=67
 ':'=16
-':='=36
+':='=40
 ';'=20
-'<'=58
-'<='=59
-'='=56
-'>'=55
-'>='=54
+'<'=62
+'<='=63
+'='=60
+'>'=59
+'>='=58
 'AND'=28
-'E'=67
-'G'=70
-'M'=71
+'E'=71
+'G'=74
+'M'=75
 'OR'=26
-'P'=68
-'T'=69
+'P'=72
+'T'=73
 'XOR'=27
-'Y'=65
-'Z'=66
-'\u00B5'=78
+'Y'=69
+'Z'=70
+'\u00B5'=82
 '^'=30
-'a'=82
-'array'=46
-'boolean'=44
-'c'=76
-'cardinal'=50
+'a'=86
+'abstract'=36
+'array'=50
+'boolean'=48
+'c'=80
+'cardinal'=54
 'constraints'=18
-'d'=75
-'da'=74
+'d'=79
+'da'=78
 'data'=17
 'description'=22
-'expression'=41
-'f'=81
+'expression'=45
+'extends'=37
+'f'=85
 'false'=35
-'float'=43
-'h'=73
-'instance'=38
-'int'=42
-'integer'=53
-'k'=72
-'literal'=37
-'m'=77
-'n'=79
-'nominal'=48
+'float'=47
+'h'=77
+'instance'=42
+'int'=46
+'integer'=57
+'k'=76
+'literal'=41
+'m'=81
+'n'=83
+'nominal'=52
 'of'=24
-'ordinal'=49
-'p'=80
-'quotient'=51
-'real'=52
-'string'=40
+'ordinal'=53
+'p'=84
+'quotient'=55
+'real'=56
+'string'=44
 'true'=34
 'type'=21
 'types'=15
 'use'=19
 'value'=25
-'void'=45
+'void'=49
 'with'=23
-'y'=84
-'z'=83
-'|'=39
+'y'=88
+'z'=87
+'{'=38
+'|'=43
+'}'=39
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
 RULE_DOUBLE=5
@@ -149,3 +153,7 @@ T__81=81
 T__82=82
 T__83=83
 T__84=84
+T__85=85
+T__86=86
+T__87=87
+T__88=88
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageLexer.java b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageLexer.java
index 21e35564..9a586985 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageLexer.java
@@ -86,14 +86,18 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     public static final int T__48=48;
     public static final int T__49=49;
     public static final int T__44=44;
+    public static final int T__88=88;
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
     public static final int T__84=84;
     public static final int T__41=41;
+    public static final int T__85=85;
     public static final int T__42=42;
+    public static final int T__86=86;
     public static final int T__43=43;
+    public static final int T__87=87;
 
     // delegates
     // delegators
@@ -547,10 +551,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:32:7: ( ':=' )
-            // InternalDataDescriptionLanguage.g:32:9: ':='
+            // InternalDataDescriptionLanguage.g:32:7: ( 'abstract' )
+            // InternalDataDescriptionLanguage.g:32:9: 'abstract'
             {
-            match(":="); 
+            match("abstract"); 
 
 
             }
@@ -568,10 +572,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:33:7: ( 'literal' )
-            // InternalDataDescriptionLanguage.g:33:9: 'literal'
+            // InternalDataDescriptionLanguage.g:33:7: ( 'extends' )
+            // InternalDataDescriptionLanguage.g:33:9: 'extends'
             {
-            match("literal"); 
+            match("extends"); 
 
 
             }
@@ -589,11 +593,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:34:7: ( 'instance' )
-            // InternalDataDescriptionLanguage.g:34:9: 'instance'
+            // InternalDataDescriptionLanguage.g:34:7: ( '{' )
+            // InternalDataDescriptionLanguage.g:34:9: '{'
             {
-            match("instance"); 
-
+            match('{'); 
 
             }
 
@@ -610,10 +613,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:35:7: ( '|' )
-            // InternalDataDescriptionLanguage.g:35:9: '|'
+            // InternalDataDescriptionLanguage.g:35:7: ( '}' )
+            // InternalDataDescriptionLanguage.g:35:9: '}'
             {
-            match('|'); 
+            match('}'); 
 
             }
 
@@ -630,10 +633,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:36:7: ( 'string' )
-            // InternalDataDescriptionLanguage.g:36:9: 'string'
+            // InternalDataDescriptionLanguage.g:36:7: ( ':=' )
+            // InternalDataDescriptionLanguage.g:36:9: ':='
             {
-            match("string"); 
+            match(":="); 
 
 
             }
@@ -651,10 +654,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:37:7: ( 'expression' )
-            // InternalDataDescriptionLanguage.g:37:9: 'expression'
+            // InternalDataDescriptionLanguage.g:37:7: ( 'literal' )
+            // InternalDataDescriptionLanguage.g:37:9: 'literal'
             {
-            match("expression"); 
+            match("literal"); 
 
 
             }
@@ -672,10 +675,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:38:7: ( 'int' )
-            // InternalDataDescriptionLanguage.g:38:9: 'int'
+            // InternalDataDescriptionLanguage.g:38:7: ( 'instance' )
+            // InternalDataDescriptionLanguage.g:38:9: 'instance'
             {
-            match("int"); 
+            match("instance"); 
 
 
             }
@@ -693,11 +696,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:39:7: ( 'float' )
-            // InternalDataDescriptionLanguage.g:39:9: 'float'
+            // InternalDataDescriptionLanguage.g:39:7: ( '|' )
+            // InternalDataDescriptionLanguage.g:39:9: '|'
             {
-            match("float"); 
-
+            match('|'); 
 
             }
 
@@ -714,10 +716,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:40:7: ( 'boolean' )
-            // InternalDataDescriptionLanguage.g:40:9: 'boolean'
+            // InternalDataDescriptionLanguage.g:40:7: ( 'string' )
+            // InternalDataDescriptionLanguage.g:40:9: 'string'
             {
-            match("boolean"); 
+            match("string"); 
 
 
             }
@@ -735,10 +737,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:41:7: ( 'void' )
-            // InternalDataDescriptionLanguage.g:41:9: 'void'
+            // InternalDataDescriptionLanguage.g:41:7: ( 'expression' )
+            // InternalDataDescriptionLanguage.g:41:9: 'expression'
             {
-            match("void"); 
+            match("expression"); 
 
 
             }
@@ -756,10 +758,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:42:7: ( 'array' )
-            // InternalDataDescriptionLanguage.g:42:9: 'array'
+            // InternalDataDescriptionLanguage.g:42:7: ( 'int' )
+            // InternalDataDescriptionLanguage.g:42:9: 'int'
             {
-            match("array"); 
+            match("int"); 
 
 
             }
@@ -777,10 +779,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:43:7: ( '.' )
-            // InternalDataDescriptionLanguage.g:43:9: '.'
+            // InternalDataDescriptionLanguage.g:43:7: ( 'float' )
+            // InternalDataDescriptionLanguage.g:43:9: 'float'
             {
-            match('.'); 
+            match("float"); 
+
 
             }
 
@@ -797,10 +800,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:44:7: ( 'nominal' )
-            // InternalDataDescriptionLanguage.g:44:9: 'nominal'
+            // InternalDataDescriptionLanguage.g:44:7: ( 'boolean' )
+            // InternalDataDescriptionLanguage.g:44:9: 'boolean'
             {
-            match("nominal"); 
+            match("boolean"); 
 
 
             }
@@ -818,10 +821,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:45:7: ( 'ordinal' )
-            // InternalDataDescriptionLanguage.g:45:9: 'ordinal'
+            // InternalDataDescriptionLanguage.g:45:7: ( 'void' )
+            // InternalDataDescriptionLanguage.g:45:9: 'void'
             {
-            match("ordinal"); 
+            match("void"); 
 
 
             }
@@ -839,10 +842,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:46:7: ( 'cardinal' )
-            // InternalDataDescriptionLanguage.g:46:9: 'cardinal'
+            // InternalDataDescriptionLanguage.g:46:7: ( 'array' )
+            // InternalDataDescriptionLanguage.g:46:9: 'array'
             {
-            match("cardinal"); 
+            match("array"); 
 
 
             }
@@ -860,11 +863,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:47:7: ( 'quotient' )
-            // InternalDataDescriptionLanguage.g:47:9: 'quotient'
+            // InternalDataDescriptionLanguage.g:47:7: ( '.' )
+            // InternalDataDescriptionLanguage.g:47:9: '.'
             {
-            match("quotient"); 
-
+            match('.'); 
 
             }
 
@@ -881,10 +883,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:48:7: ( 'real' )
-            // InternalDataDescriptionLanguage.g:48:9: 'real'
+            // InternalDataDescriptionLanguage.g:48:7: ( 'nominal' )
+            // InternalDataDescriptionLanguage.g:48:9: 'nominal'
             {
-            match("real"); 
+            match("nominal"); 
 
 
             }
@@ -902,10 +904,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:49:7: ( 'integer' )
-            // InternalDataDescriptionLanguage.g:49:9: 'integer'
+            // InternalDataDescriptionLanguage.g:49:7: ( 'ordinal' )
+            // InternalDataDescriptionLanguage.g:49:9: 'ordinal'
             {
-            match("integer"); 
+            match("ordinal"); 
 
 
             }
@@ -923,10 +925,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:50:7: ( '>=' )
-            // InternalDataDescriptionLanguage.g:50:9: '>='
+            // InternalDataDescriptionLanguage.g:50:7: ( 'cardinal' )
+            // InternalDataDescriptionLanguage.g:50:9: 'cardinal'
             {
-            match(">="); 
+            match("cardinal"); 
 
 
             }
@@ -944,10 +946,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:51:7: ( '>' )
-            // InternalDataDescriptionLanguage.g:51:9: '>'
+            // InternalDataDescriptionLanguage.g:51:7: ( 'quotient' )
+            // InternalDataDescriptionLanguage.g:51:9: 'quotient'
             {
-            match('>'); 
+            match("quotient"); 
+
 
             }
 
@@ -964,10 +967,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:52:7: ( '=' )
-            // InternalDataDescriptionLanguage.g:52:9: '='
+            // InternalDataDescriptionLanguage.g:52:7: ( 'real' )
+            // InternalDataDescriptionLanguage.g:52:9: 'real'
             {
-            match('='); 
+            match("real"); 
+
 
             }
 
@@ -984,10 +988,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:53:7: ( '!=' )
-            // InternalDataDescriptionLanguage.g:53:9: '!='
+            // InternalDataDescriptionLanguage.g:53:7: ( 'integer' )
+            // InternalDataDescriptionLanguage.g:53:9: 'integer'
             {
-            match("!="); 
+            match("integer"); 
 
 
             }
@@ -1005,10 +1009,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:54:7: ( '<' )
-            // InternalDataDescriptionLanguage.g:54:9: '<'
+            // InternalDataDescriptionLanguage.g:54:7: ( '>=' )
+            // InternalDataDescriptionLanguage.g:54:9: '>='
             {
-            match('<'); 
+            match(">="); 
+
 
             }
 
@@ -1025,11 +1030,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:55:7: ( '<=' )
-            // InternalDataDescriptionLanguage.g:55:9: '<='
+            // InternalDataDescriptionLanguage.g:55:7: ( '>' )
+            // InternalDataDescriptionLanguage.g:55:9: '>'
             {
-            match("<="); 
-
+            match('>'); 
 
             }
 
@@ -1046,10 +1050,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:56:7: ( '+' )
-            // InternalDataDescriptionLanguage.g:56:9: '+'
+            // InternalDataDescriptionLanguage.g:56:7: ( '=' )
+            // InternalDataDescriptionLanguage.g:56:9: '='
             {
-            match('+'); 
+            match('='); 
 
             }
 
@@ -1066,10 +1070,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:57:7: ( '-' )
-            // InternalDataDescriptionLanguage.g:57:9: '-'
+            // InternalDataDescriptionLanguage.g:57:7: ( '!=' )
+            // InternalDataDescriptionLanguage.g:57:9: '!='
             {
-            match('-'); 
+            match("!="); 
+
 
             }
 
@@ -1086,10 +1091,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:58:7: ( '*' )
-            // InternalDataDescriptionLanguage.g:58:9: '*'
+            // InternalDataDescriptionLanguage.g:58:7: ( '<' )
+            // InternalDataDescriptionLanguage.g:58:9: '<'
             {
-            match('*'); 
+            match('<'); 
 
             }
 
@@ -1106,10 +1111,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:59:7: ( '/' )
-            // InternalDataDescriptionLanguage.g:59:9: '/'
+            // InternalDataDescriptionLanguage.g:59:7: ( '<=' )
+            // InternalDataDescriptionLanguage.g:59:9: '<='
             {
-            match('/'); 
+            match("<="); 
+
 
             }
 
@@ -1126,10 +1132,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:60:7: ( '%' )
-            // InternalDataDescriptionLanguage.g:60:9: '%'
+            // InternalDataDescriptionLanguage.g:60:7: ( '+' )
+            // InternalDataDescriptionLanguage.g:60:9: '+'
             {
-            match('%'); 
+            match('+'); 
 
             }
 
@@ -1146,10 +1152,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:61:7: ( 'Y' )
-            // InternalDataDescriptionLanguage.g:61:9: 'Y'
+            // InternalDataDescriptionLanguage.g:61:7: ( '-' )
+            // InternalDataDescriptionLanguage.g:61:9: '-'
             {
-            match('Y'); 
+            match('-'); 
 
             }
 
@@ -1166,10 +1172,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:62:7: ( 'Z' )
-            // InternalDataDescriptionLanguage.g:62:9: 'Z'
+            // InternalDataDescriptionLanguage.g:62:7: ( '*' )
+            // InternalDataDescriptionLanguage.g:62:9: '*'
             {
-            match('Z'); 
+            match('*'); 
 
             }
 
@@ -1186,10 +1192,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:63:7: ( 'E' )
-            // InternalDataDescriptionLanguage.g:63:9: 'E'
+            // InternalDataDescriptionLanguage.g:63:7: ( '/' )
+            // InternalDataDescriptionLanguage.g:63:9: '/'
             {
-            match('E'); 
+            match('/'); 
 
             }
 
@@ -1206,10 +1212,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:64:7: ( 'P' )
-            // InternalDataDescriptionLanguage.g:64:9: 'P'
+            // InternalDataDescriptionLanguage.g:64:7: ( '%' )
+            // InternalDataDescriptionLanguage.g:64:9: '%'
             {
-            match('P'); 
+            match('%'); 
 
             }
 
@@ -1226,10 +1232,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:65:7: ( 'T' )
-            // InternalDataDescriptionLanguage.g:65:9: 'T'
+            // InternalDataDescriptionLanguage.g:65:7: ( 'Y' )
+            // InternalDataDescriptionLanguage.g:65:9: 'Y'
             {
-            match('T'); 
+            match('Y'); 
 
             }
 
@@ -1246,10 +1252,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:66:7: ( 'G' )
-            // InternalDataDescriptionLanguage.g:66:9: 'G'
+            // InternalDataDescriptionLanguage.g:66:7: ( 'Z' )
+            // InternalDataDescriptionLanguage.g:66:9: 'Z'
             {
-            match('G'); 
+            match('Z'); 
 
             }
 
@@ -1266,10 +1272,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:67:7: ( 'M' )
-            // InternalDataDescriptionLanguage.g:67:9: 'M'
+            // InternalDataDescriptionLanguage.g:67:7: ( 'E' )
+            // InternalDataDescriptionLanguage.g:67:9: 'E'
             {
-            match('M'); 
+            match('E'); 
 
             }
 
@@ -1286,10 +1292,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:68:7: ( 'k' )
-            // InternalDataDescriptionLanguage.g:68:9: 'k'
+            // InternalDataDescriptionLanguage.g:68:7: ( 'P' )
+            // InternalDataDescriptionLanguage.g:68:9: 'P'
             {
-            match('k'); 
+            match('P'); 
 
             }
 
@@ -1306,10 +1312,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:69:7: ( 'h' )
-            // InternalDataDescriptionLanguage.g:69:9: 'h'
+            // InternalDataDescriptionLanguage.g:69:7: ( 'T' )
+            // InternalDataDescriptionLanguage.g:69:9: 'T'
             {
-            match('h'); 
+            match('T'); 
 
             }
 
@@ -1326,11 +1332,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:70:7: ( 'da' )
-            // InternalDataDescriptionLanguage.g:70:9: 'da'
+            // InternalDataDescriptionLanguage.g:70:7: ( 'G' )
+            // InternalDataDescriptionLanguage.g:70:9: 'G'
             {
-            match("da"); 
-
+            match('G'); 
 
             }
 
@@ -1347,10 +1352,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:71:7: ( 'd' )
-            // InternalDataDescriptionLanguage.g:71:9: 'd'
+            // InternalDataDescriptionLanguage.g:71:7: ( 'M' )
+            // InternalDataDescriptionLanguage.g:71:9: 'M'
             {
-            match('d'); 
+            match('M'); 
 
             }
 
@@ -1367,10 +1372,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:72:7: ( 'c' )
-            // InternalDataDescriptionLanguage.g:72:9: 'c'
+            // InternalDataDescriptionLanguage.g:72:7: ( 'k' )
+            // InternalDataDescriptionLanguage.g:72:9: 'k'
             {
-            match('c'); 
+            match('k'); 
 
             }
 
@@ -1387,10 +1392,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:73:7: ( 'm' )
-            // InternalDataDescriptionLanguage.g:73:9: 'm'
+            // InternalDataDescriptionLanguage.g:73:7: ( 'h' )
+            // InternalDataDescriptionLanguage.g:73:9: 'h'
             {
-            match('m'); 
+            match('h'); 
 
             }
 
@@ -1407,10 +1412,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:74:7: ( '\\u00B5' )
-            // InternalDataDescriptionLanguage.g:74:9: '\\u00B5'
+            // InternalDataDescriptionLanguage.g:74:7: ( 'da' )
+            // InternalDataDescriptionLanguage.g:74:9: 'da'
             {
-            match('\u00B5'); 
+            match("da"); 
+
 
             }
 
@@ -1427,10 +1433,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:75:7: ( 'n' )
-            // InternalDataDescriptionLanguage.g:75:9: 'n'
+            // InternalDataDescriptionLanguage.g:75:7: ( 'd' )
+            // InternalDataDescriptionLanguage.g:75:9: 'd'
             {
-            match('n'); 
+            match('d'); 
 
             }
 
@@ -1447,10 +1453,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:76:7: ( 'p' )
-            // InternalDataDescriptionLanguage.g:76:9: 'p'
+            // InternalDataDescriptionLanguage.g:76:7: ( 'c' )
+            // InternalDataDescriptionLanguage.g:76:9: 'c'
             {
-            match('p'); 
+            match('c'); 
 
             }
 
@@ -1467,10 +1473,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:77:7: ( 'f' )
-            // InternalDataDescriptionLanguage.g:77:9: 'f'
+            // InternalDataDescriptionLanguage.g:77:7: ( 'm' )
+            // InternalDataDescriptionLanguage.g:77:9: 'm'
             {
-            match('f'); 
+            match('m'); 
 
             }
 
@@ -1487,10 +1493,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:78:7: ( 'a' )
-            // InternalDataDescriptionLanguage.g:78:9: 'a'
+            // InternalDataDescriptionLanguage.g:78:7: ( '\\u00B5' )
+            // InternalDataDescriptionLanguage.g:78:9: '\\u00B5'
             {
-            match('a'); 
+            match('\u00B5'); 
 
             }
 
@@ -1507,10 +1513,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:79:7: ( 'z' )
-            // InternalDataDescriptionLanguage.g:79:9: 'z'
+            // InternalDataDescriptionLanguage.g:79:7: ( 'n' )
+            // InternalDataDescriptionLanguage.g:79:9: 'n'
             {
-            match('z'); 
+            match('n'); 
 
             }
 
@@ -1527,10 +1533,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:80:7: ( 'y' )
-            // InternalDataDescriptionLanguage.g:80:9: 'y'
+            // InternalDataDescriptionLanguage.g:80:7: ( 'p' )
+            // InternalDataDescriptionLanguage.g:80:9: 'p'
             {
-            match('y'); 
+            match('p'); 
 
             }
 
@@ -1542,11 +1548,91 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__84"
 
+    // $ANTLR start "T__85"
+    public final void mT__85() throws RecognitionException {
+        try {
+            int _type = T__85;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:81:7: ( 'f' )
+            // InternalDataDescriptionLanguage.g:81:9: 'f'
+            {
+            match('f'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__85"
+
+    // $ANTLR start "T__86"
+    public final void mT__86() throws RecognitionException {
+        try {
+            int _type = T__86;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:82:7: ( 'a' )
+            // InternalDataDescriptionLanguage.g:82:9: 'a'
+            {
+            match('a'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__86"
+
+    // $ANTLR start "T__87"
+    public final void mT__87() throws RecognitionException {
+        try {
+            int _type = T__87;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:83:7: ( 'z' )
+            // InternalDataDescriptionLanguage.g:83:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__87"
+
+    // $ANTLR start "T__88"
+    public final void mT__88() throws RecognitionException {
+        try {
+            int _type = T__88;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalDataDescriptionLanguage.g:84:7: ( 'y' )
+            // InternalDataDescriptionLanguage.g:84:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__88"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:3124:21: ( '0' .. '9' )
-            // InternalDataDescriptionLanguage.g:3124:23: '0' .. '9'
+            // InternalDataDescriptionLanguage.g:3280:21: ( '0' .. '9' )
+            // InternalDataDescriptionLanguage.g:3280:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1561,11 +1647,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalDataDescriptionLanguage.g:3126:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalDataDescriptionLanguage.g:3126:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:3282:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalDataDescriptionLanguage.g:3282:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalDataDescriptionLanguage.g:3126:30: ( '+' | '-' )?
+            // InternalDataDescriptionLanguage.g:3282:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1591,7 +1677,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDataDescriptionLanguage.g:3126:41: ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:3282:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1605,7 +1691,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3126:41: RULE_DIGIT
+            	    // InternalDataDescriptionLanguage.g:3282:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1635,10 +1721,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3128:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalDataDescriptionLanguage.g:3128:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:3284:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalDataDescriptionLanguage.g:3284:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalDataDescriptionLanguage.g:3128:12: ( '-' )?
+            // InternalDataDescriptionLanguage.g:3284:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1647,7 +1733,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3128:12: '-'
+                    // InternalDataDescriptionLanguage.g:3284:12: '-'
                     {
                     match('-'); 
 
@@ -1656,7 +1742,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDataDescriptionLanguage.g:3128:17: ( RULE_DIGIT )+
+            // InternalDataDescriptionLanguage.g:3284:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1670,7 +1756,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3128:17: RULE_DIGIT
+            	    // InternalDataDescriptionLanguage.g:3284:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1702,15 +1788,15 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3130:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalDataDescriptionLanguage.g:3130:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDataDescriptionLanguage.g:3286:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalDataDescriptionLanguage.g:3286:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalDataDescriptionLanguage.g:3130:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDataDescriptionLanguage.g:3286:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3130:16: RULE_INT RULE_EXPONENT
+                    // InternalDataDescriptionLanguage.g:3286:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1718,11 +1804,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:3130:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalDataDescriptionLanguage.g:3286:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalDataDescriptionLanguage.g:3130:52: ( RULE_DIGIT )*
+                    // InternalDataDescriptionLanguage.g:3286:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1735,7 +1821,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalDataDescriptionLanguage.g:3130:52: RULE_DIGIT
+                    	    // InternalDataDescriptionLanguage.g:3286:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1747,7 +1833,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalDataDescriptionLanguage.g:3130:64: ( RULE_EXPONENT )?
+                    // InternalDataDescriptionLanguage.g:3286:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1756,7 +1842,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalDataDescriptionLanguage.g:3130:64: RULE_EXPONENT
+                            // InternalDataDescriptionLanguage.g:3286:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1787,11 +1873,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3132:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalDataDescriptionLanguage.g:3132:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalDataDescriptionLanguage.g:3288:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalDataDescriptionLanguage.g:3288:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalDataDescriptionLanguage.g:3132:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalDataDescriptionLanguage.g:3288:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1807,7 +1893,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3132:20: '\\\\' .
+            	    // InternalDataDescriptionLanguage.g:3288:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1815,7 +1901,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDataDescriptionLanguage.g:3132:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalDataDescriptionLanguage.g:3288:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1852,11 +1938,11 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3134:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalDataDescriptionLanguage.g:3134:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalDataDescriptionLanguage.g:3290:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalDataDescriptionLanguage.g:3290:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalDataDescriptionLanguage.g:3134:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalDataDescriptionLanguage.g:3290:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1872,7 +1958,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3134:24: '\\\\' .
+            	    // InternalDataDescriptionLanguage.g:3290:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1880,7 +1966,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDataDescriptionLanguage.g:3134:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalDataDescriptionLanguage.g:3290:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1917,10 +2003,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3136:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalDataDescriptionLanguage.g:3136:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDataDescriptionLanguage.g:3292:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalDataDescriptionLanguage.g:3292:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalDataDescriptionLanguage.g:3136:11: ( '^' )?
+            // InternalDataDescriptionLanguage.g:3292:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1929,7 +2015,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3136:11: '^'
+                    // InternalDataDescriptionLanguage.g:3292:11: '^'
                     {
                     match('^'); 
 
@@ -1947,7 +2033,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalDataDescriptionLanguage.g:3136:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDataDescriptionLanguage.g:3292:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1996,12 +2082,12 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3138:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalDataDescriptionLanguage.g:3138:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalDataDescriptionLanguage.g:3294:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalDataDescriptionLanguage.g:3294:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalDataDescriptionLanguage.g:3138:24: ( options {greedy=false; } : . )*
+            // InternalDataDescriptionLanguage.g:3294:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2026,7 +2112,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3138:52: .
+            	    // InternalDataDescriptionLanguage.g:3294:52: .
             	    {
             	    matchAny(); 
 
@@ -2056,12 +2142,12 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3140:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalDataDescriptionLanguage.g:3140:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalDataDescriptionLanguage.g:3296:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalDataDescriptionLanguage.g:3296:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalDataDescriptionLanguage.g:3140:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalDataDescriptionLanguage.g:3296:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2074,7 +2160,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:3140:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalDataDescriptionLanguage.g:3296: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();
@@ -2094,7 +2180,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalDataDescriptionLanguage.g:3140:40: ( ( '\\r' )? '\\n' )?
+            // InternalDataDescriptionLanguage.g:3296:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2103,9 +2189,9 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:3140:41: ( '\\r' )? '\\n'
+                    // InternalDataDescriptionLanguage.g:3296:41: ( '\\r' )? '\\n'
                     {
-                    // InternalDataDescriptionLanguage.g:3140:41: ( '\\r' )?
+                    // InternalDataDescriptionLanguage.g:3296:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2114,7 +2200,7 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalDataDescriptionLanguage.g:3140:41: '\\r'
+                            // InternalDataDescriptionLanguage.g:3296:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2146,10 +2232,10 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3142:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalDataDescriptionLanguage.g:3142:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDataDescriptionLanguage.g:3298:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalDataDescriptionLanguage.g:3298:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalDataDescriptionLanguage.g:3142:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDataDescriptionLanguage.g:3298:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2203,8 +2289,8 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDataDescriptionLanguage.g:3144:16: ( . )
-            // InternalDataDescriptionLanguage.g:3144:18: .
+            // InternalDataDescriptionLanguage.g:3300:16: ( . )
+            // InternalDataDescriptionLanguage.g:3300:18: .
             {
             matchAny(); 
 
@@ -2219,8 +2305,8 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalDataDescriptionLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=79;
+        // InternalDataDescriptionLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=83;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2714,63 +2800,91 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
                 }
                 break;
             case 71 :
-                // InternalDataDescriptionLanguage.g:1:430: RULE_INT
+                // InternalDataDescriptionLanguage.g:1:430: T__85
                 {
-                mRULE_INT(); 
+                mT__85(); 
 
                 }
                 break;
             case 72 :
-                // InternalDataDescriptionLanguage.g:1:439: RULE_DOUBLE
+                // InternalDataDescriptionLanguage.g:1:436: T__86
                 {
-                mRULE_DOUBLE(); 
+                mT__86(); 
 
                 }
                 break;
             case 73 :
-                // InternalDataDescriptionLanguage.g:1:451: RULE_STRING
+                // InternalDataDescriptionLanguage.g:1:442: T__87
                 {
-                mRULE_STRING(); 
+                mT__87(); 
 
                 }
                 break;
             case 74 :
-                // InternalDataDescriptionLanguage.g:1:463: RULE_QUOTED_ID
+                // InternalDataDescriptionLanguage.g:1:448: T__88
                 {
-                mRULE_QUOTED_ID(); 
+                mT__88(); 
 
                 }
                 break;
             case 75 :
-                // InternalDataDescriptionLanguage.g:1:478: RULE_ID
+                // InternalDataDescriptionLanguage.g:1:454: RULE_INT
                 {
-                mRULE_ID(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 76 :
-                // InternalDataDescriptionLanguage.g:1:486: RULE_ML_COMMENT
+                // InternalDataDescriptionLanguage.g:1:463: RULE_DOUBLE
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 77 :
-                // InternalDataDescriptionLanguage.g:1:502: RULE_SL_COMMENT
+                // InternalDataDescriptionLanguage.g:1:475: RULE_STRING
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 78 :
-                // InternalDataDescriptionLanguage.g:1:518: RULE_WS
+                // InternalDataDescriptionLanguage.g:1:487: RULE_QUOTED_ID
                 {
-                mRULE_WS(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 79 :
-                // InternalDataDescriptionLanguage.g:1:526: RULE_ANY_OTHER
+                // InternalDataDescriptionLanguage.g:1:502: RULE_ID
+                {
+                mRULE_ID(); 
+
+                }
+                break;
+            case 80 :
+                // InternalDataDescriptionLanguage.g:1:510: RULE_ML_COMMENT
+                {
+                mRULE_ML_COMMENT(); 
+
+                }
+                break;
+            case 81 :
+                // InternalDataDescriptionLanguage.g:1:526: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 82 :
+                // InternalDataDescriptionLanguage.g:1:542: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 83 :
+                // InternalDataDescriptionLanguage.g:1:550: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2834,134 +2948,137 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "3130:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "3286:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\74\1\76\1\101\1\104\1\74\1\uffff\6\74\1\120\1\121\3\uffff\1\127\2\74\1\uffff\3\74\1\137\1\uffff\1\142\2\74\1\146\1\uffff\1\151\1\uffff\1\153\1\uffff\1\160\1\uffff\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\172\1\173\1\uffff\1\175\1\176\1\177\1\u0080\2\71\3\uffff\2\74\3\uffff\1\u0088\1\74\1\uffff\2\74\1\uffff\1\74\1\uffff\1\74\1\u008e\3\74\1\u0092\2\74\6\uffff\2\74\1\uffff\2\74\1\uffff\4\74\2\uffff\1\74\1\uffff\2\74\7\uffff\1\u0080\30\uffff\3\74\1\uffff\3\74\1\u00a7\1\74\1\uffff\3\74\1\uffff\1\u00ac\1\u00ad\4\74\1\u00b3\7\74\1\u00bc\1\u00bd\1\u00be\3\74\1\uffff\1\u00c2\2\74\1\u00c5\2\uffff\5\74\1\uffff\6\74\1\u00d1\1\u00d2\3\uffff\3\74\1\uffff\1\74\1\u00d7\1\uffff\1\u00d8\1\u00d9\6\74\1\u00e0\2\74\2\uffff\4\74\3\uffff\3\74\1\u00ea\2\74\1\uffff\5\74\1\u00f2\1\u00f3\1\74\1\u00f5\1\uffff\1\74\1\u00f7\1\u00f8\3\74\1\u00fc\2\uffff\1\u00fd\1\uffff\1\74\2\uffff\1\u00ff\2\74\2\uffff\1\74\1\uffff\2\74\1\u0105\1\u0106\1\u0107\3\uffff";
+        "\1\uffff\1\76\1\100\1\103\1\106\1\76\1\uffff\6\76\1\122\1\123\3\uffff\1\131\1\134\1\76\2\uffff\2\76\1\uffff\2\76\1\uffff\1\147\2\76\1\153\1\uffff\1\156\1\uffff\1\160\1\uffff\1\165\1\uffff\1\167\1\170\1\171\1\172\1\173\1\174\1\175\1\176\1\177\1\u0080\1\uffff\1\u0082\1\u0083\1\u0084\1\u0085\2\73\3\uffff\2\76\3\uffff\1\u008d\1\76\1\uffff\2\76\1\uffff\1\76\1\uffff\1\76\1\u0093\3\76\1\u0097\2\76\6\uffff\2\76\1\uffff\2\76\1\uffff\1\76\2\uffff\2\76\1\uffff\2\76\1\uffff\1\76\1\uffff\2\76\7\uffff\1\u0085\30\uffff\3\76\1\uffff\3\76\1\u00ae\1\76\1\uffff\3\76\1\uffff\1\u00b3\1\u00b4\10\76\1\u00be\5\76\1\u00c5\1\u00c6\1\u00c7\3\76\1\uffff\1\u00cb\2\76\1\u00ce\2\uffff\11\76\1\uffff\4\76\1\u00dc\1\u00dd\3\uffff\3\76\1\uffff\1\76\1\u00e2\1\uffff\1\u00e3\1\u00e4\1\76\1\u00e6\11\76\2\uffff\4\76\3\uffff\1\76\1\uffff\5\76\1\u00fa\6\76\1\u0101\1\76\1\u0103\1\76\1\u0105\1\76\1\u0107\1\uffff\1\u0108\1\u0109\3\76\1\u010d\1\uffff\1\u010e\1\uffff\1\76\1\uffff\1\u0110\3\uffff\1\u0111\2\76\2\uffff\1\76\2\uffff\2\76\1\u0117\1\u0118\1\u0119\3\uffff";
     static final String DFA17_eofS =
-        "\u0108\uffff";
+        "\u011a\uffff";
     static final String DFA17_minS =
-        "\1\0\1\162\1\75\2\60\1\163\1\uffff\1\151\1\146\1\141\1\122\1\117\1\116\1\75\1\101\3\uffff\1\60\1\151\1\156\1\uffff\1\164\1\170\1\157\1\60\1\uffff\1\60\1\165\1\145\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\160\1\165\3\uffff\1\60\1\163\1\uffff\1\156\1\162\1\uffff\1\145\1\uffff\1\164\1\60\1\144\1\154\1\151\1\60\1\122\1\104\6\uffff\1\154\1\157\1\uffff\1\164\1\163\1\uffff\1\162\1\160\1\157\1\162\2\uffff\1\155\1\uffff\1\157\1\141\7\uffff\1\56\30\uffff\2\145\1\141\1\uffff\1\143\1\163\1\144\1\60\1\150\1\uffff\1\151\1\165\1\144\1\uffff\2\60\1\163\1\141\1\145\1\164\1\60\1\151\1\162\1\154\1\141\1\151\1\164\1\154\3\60\1\162\1\164\1\151\1\uffff\1\60\1\156\1\145\1\60\2\uffff\1\145\1\164\1\162\1\141\1\147\1\uffff\1\156\2\145\1\171\1\156\1\151\2\60\3\uffff\1\151\1\162\1\156\1\uffff\1\141\1\60\1\uffff\2\60\1\141\1\156\1\145\1\147\1\163\1\141\1\60\1\141\1\145\2\uffff\1\160\2\141\1\154\3\uffff\1\154\1\143\1\162\1\60\1\163\1\156\1\uffff\1\154\1\156\1\164\1\151\1\154\2\60\1\145\1\60\1\uffff\1\151\2\60\1\164\1\151\1\156\1\60\2\uffff\1\60\1\uffff\1\157\2\uffff\1\60\1\157\1\164\2\uffff\1\156\1\uffff\1\156\1\163\3\60\3\uffff";
+        "\1\0\1\162\1\75\2\60\1\163\1\uffff\1\151\1\146\1\141\1\122\1\117\1\116\1\75\1\101\3\uffff\2\60\1\170\2\uffff\1\151\1\156\1\uffff\1\164\1\157\1\uffff\1\60\1\165\1\145\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\160\1\165\3\uffff\1\60\1\163\1\uffff\1\156\1\162\1\uffff\1\145\1\uffff\1\164\1\60\1\144\1\154\1\151\1\60\1\122\1\104\6\uffff\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\160\2\uffff\1\164\1\163\1\uffff\1\162\1\157\1\uffff\1\155\1\uffff\1\157\1\141\7\uffff\1\56\30\uffff\2\145\1\141\1\uffff\1\143\1\163\1\144\1\60\1\150\1\uffff\1\151\1\165\1\144\1\uffff\2\60\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\60\1\151\1\154\1\151\1\164\1\154\3\60\1\162\1\164\1\151\1\uffff\1\60\1\156\1\145\1\60\2\uffff\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\147\1\uffff\1\156\1\145\1\156\1\151\2\60\3\uffff\1\151\1\162\1\156\1\uffff\1\141\1\60\1\uffff\2\60\1\141\1\60\1\144\1\163\1\141\1\156\1\145\1\147\2\141\1\145\2\uffff\1\160\2\141\1\154\3\uffff\1\143\1\uffff\2\163\1\154\1\143\1\162\1\60\1\156\1\154\1\156\1\164\1\151\1\154\1\60\1\164\1\60\1\151\1\60\1\145\1\60\1\uffff\2\60\1\164\1\151\1\156\1\60\1\uffff\1\60\1\uffff\1\157\1\uffff\1\60\3\uffff\1\60\1\157\1\164\2\uffff\1\156\2\uffff\1\156\1\163\3\60\3\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\171\1\75\2\172\1\163\1\uffff\1\151\1\162\1\157\1\122\1\117\1\116\1\75\1\172\3\uffff\1\172\1\151\1\156\1\uffff\1\164\1\170\1\157\1\172\1\uffff\1\172\1\165\1\145\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\160\1\165\3\uffff\1\172\1\163\1\uffff\1\156\1\162\1\uffff\1\145\1\uffff\1\164\1\172\1\144\1\154\1\151\1\172\1\122\1\104\6\uffff\1\154\1\157\1\uffff\2\164\1\uffff\1\162\1\160\1\157\1\162\2\uffff\1\155\1\uffff\1\157\1\141\7\uffff\1\145\30\uffff\2\145\1\141\1\uffff\1\143\1\163\1\144\1\172\1\150\1\uffff\1\151\1\165\1\144\1\uffff\2\172\1\163\1\141\1\145\1\164\1\172\1\151\1\162\1\154\1\141\1\151\1\164\1\154\3\172\1\162\1\164\1\151\1\uffff\1\172\1\156\1\145\1\172\2\uffff\1\145\1\164\1\162\1\141\1\147\1\uffff\1\156\2\145\1\171\1\156\1\151\2\172\3\uffff\1\151\1\162\1\156\1\uffff\1\141\1\172\1\uffff\2\172\1\141\1\156\1\145\1\147\1\163\1\141\1\172\1\141\1\145\2\uffff\1\160\2\141\1\154\3\uffff\1\154\1\143\1\162\1\172\1\163\1\156\1\uffff\1\154\1\156\1\164\1\151\1\154\2\172\1\145\1\172\1\uffff\1\151\2\172\1\164\1\151\1\156\1\172\2\uffff\1\172\1\uffff\1\157\2\uffff\1\172\1\157\1\164\2\uffff\1\156\1\uffff\1\156\1\163\3\172\3\uffff";
+        "\1\uffff\1\171\1\75\2\172\1\163\1\uffff\1\151\1\162\1\157\1\122\1\117\1\116\1\75\1\172\3\uffff\2\172\1\170\2\uffff\1\151\1\156\1\uffff\1\164\1\157\1\uffff\1\172\1\165\1\145\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\160\1\165\3\uffff\1\172\1\163\1\uffff\1\156\1\162\1\uffff\1\145\1\uffff\1\164\1\172\1\144\1\154\1\151\1\172\1\122\1\104\6\uffff\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\164\2\uffff\2\164\1\uffff\1\162\1\157\1\uffff\1\155\1\uffff\1\157\1\141\7\uffff\1\145\30\uffff\2\145\1\141\1\uffff\1\143\1\163\1\144\1\172\1\150\1\uffff\1\151\1\165\1\144\1\uffff\2\172\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\172\1\151\1\154\1\151\1\164\1\154\3\172\1\162\1\164\1\151\1\uffff\1\172\1\156\1\145\1\172\2\uffff\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\147\1\uffff\1\156\1\145\1\156\1\151\2\172\3\uffff\1\151\1\162\1\156\1\uffff\1\141\1\172\1\uffff\2\172\1\141\1\172\1\144\1\163\1\141\1\156\1\145\1\147\2\141\1\145\2\uffff\1\160\2\141\1\154\3\uffff\1\143\1\uffff\2\163\1\154\1\143\1\162\1\172\1\156\1\154\1\156\1\164\1\151\1\154\1\172\1\164\1\172\1\151\1\172\1\145\1\172\1\uffff\2\172\1\164\1\151\1\156\1\172\1\uffff\1\172\1\uffff\1\157\1\uffff\1\172\3\uffff\1\172\1\157\1\164\2\uffff\1\156\2\uffff\1\156\1\163\3\172\3\uffff";
     static final String DFA17_acceptS =
-        "\6\uffff\1\6\10\uffff\1\21\1\22\1\23\3\uffff\1\31\4\uffff\1\41\4\uffff\1\52\1\uffff\1\56\1\uffff\1\60\1\uffff\1\62\12\uffff\1\100\6\uffff\1\113\1\116\1\117\2\uffff\1\113\1\26\1\2\2\uffff\1\75\2\uffff\1\76\1\uffff\1\6\10\uffff\1\53\1\17\1\20\1\21\1\22\1\23\2\uffff\1\103\2\uffff\1\31\4\uffff\1\104\1\41\1\uffff\1\101\2\uffff\1\50\1\51\1\52\1\55\1\54\1\56\1\57\1\uffff\1\60\1\114\1\115\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\77\1\100\1\102\1\105\1\106\1\107\1\110\1\111\1\112\1\116\3\uffff\1\74\5\uffff\1\12\3\uffff\1\14\24\uffff\1\5\4\uffff\1\15\1\16\5\uffff\1\34\10\uffff\1\7\1\24\1\3\3\uffff\1\11\2\uffff\1\37\13\uffff\1\46\1\1\4\uffff\1\13\1\25\1\35\6\uffff\1\40\11\uffff\1\32\7\uffff\1\43\1\27\1\uffff\1\47\1\uffff\1\36\1\42\3\uffff\1\44\1\30\1\uffff\1\45\5\uffff\1\33\1\10\1\4";
+        "\6\uffff\1\6\10\uffff\1\21\1\22\1\23\3\uffff\1\30\1\31\2\uffff\1\35\2\uffff\1\45\4\uffff\1\56\1\uffff\1\62\1\uffff\1\64\1\uffff\1\66\12\uffff\1\104\6\uffff\1\117\1\122\1\123\2\uffff\1\117\1\32\1\2\2\uffff\1\101\2\uffff\1\102\1\uffff\1\6\10\uffff\1\57\1\17\1\20\1\21\1\22\1\23\2\uffff\1\107\2\uffff\1\110\1\uffff\1\30\1\31\2\uffff\1\35\2\uffff\1\45\1\uffff\1\105\2\uffff\1\54\1\55\1\56\1\61\1\60\1\62\1\63\1\uffff\1\64\1\120\1\121\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\103\1\104\1\106\1\111\1\112\1\113\1\114\1\115\1\116\1\122\3\uffff\1\100\5\uffff\1\12\3\uffff\1\14\26\uffff\1\5\4\uffff\1\15\1\16\11\uffff\1\40\6\uffff\1\7\1\24\1\3\3\uffff\1\11\2\uffff\1\43\15\uffff\1\52\1\1\4\uffff\1\13\1\25\1\41\1\uffff\1\44\23\uffff\1\36\6\uffff\1\47\1\uffff\1\27\1\uffff\1\33\1\uffff\1\53\1\42\1\46\3\uffff\1\50\1\26\1\uffff\1\34\1\51\5\uffff\1\37\1\10\1\4";
     static final String DFA17_specialS =
-        "\1\2\64\uffff\1\0\1\1\u00d1\uffff}>";
+        "\1\1\66\uffff\1\2\1\0\u00e1\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\71\2\70\2\71\1\70\22\71\1\70\1\15\1\65\2\71\1\45\1\71\1\66\1\17\1\20\1\43\1\41\1\21\1\42\1\32\1\44\12\64\1\2\1\6\1\40\1\37\1\36\2\71\1\14\3\67\1\50\1\67\1\53\5\67\1\54\1\67\1\12\1\51\3\67\1\52\3\67\1\13\1\46\1\47\3\71\1\16\1\67\1\71\1\31\1\30\1\4\1\3\1\27\1\22\1\67\1\56\1\24\1\67\1\55\1\23\1\57\1\33\1\10\1\61\1\34\1\35\1\26\1\1\1\5\1\11\1\7\1\67\1\63\1\62\1\71\1\25\70\71\1\60\uff4a\71",
-            "\1\73\6\uffff\1\72",
-            "\1\75",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\77\3\74\1\100\25\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\103\15\74\1\102\13\74",
-            "\1\105",
-            "",
+            "\11\73\2\72\2\73\1\72\22\73\1\72\1\15\1\67\2\73\1\47\1\73\1\70\1\17\1\20\1\45\1\43\1\21\1\44\1\34\1\46\12\66\1\2\1\6\1\42\1\41\1\40\2\73\1\14\3\71\1\52\1\71\1\55\5\71\1\56\1\71\1\12\1\53\3\71\1\54\3\71\1\13\1\50\1\51\3\73\1\16\1\71\1\73\1\23\1\33\1\4\1\3\1\24\1\22\1\71\1\60\1\30\1\71\1\57\1\27\1\61\1\35\1\10\1\63\1\36\1\37\1\32\1\1\1\5\1\11\1\7\1\71\1\65\1\64\1\25\1\31\1\26\67\73\1\62\uff4a\73",
+            "\1\75\6\uffff\1\74",
+            "\1\77",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\101\3\76\1\102\25\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\105\15\76\1\104\13\76",
             "\1\107",
-            "\1\110\13\uffff\1\111",
-            "\1\112\15\uffff\1\113",
-            "\1\114",
-            "\1\115",
+            "",
+            "\1\111",
+            "\1\112\13\uffff\1\113",
+            "\1\114\15\uffff\1\115",
             "\1\116",
             "\1\117",
-            "\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\1\120",
+            "\1\121",
+            "\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\125\12\74\1\126\16\74",
-            "\1\130",
-            "\1\131",
             "",
-            "\1\133",
-            "\1\134",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\127\12\76\1\130\16\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\76\1\132\17\76\1\133\10\76",
             "\1\135",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\21\74\1\136\10\74",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\16\74\1\141\13\74",
+            "",
+            "\1\140",
+            "\1\141",
+            "",
             "\1\143",
             "\1\144",
-            "\1\145",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\16\76\1\146\13\76",
             "\1\150",
+            "\1\151",
+            "\1\152",
             "",
-            "\12\154",
-            "",
-            "\1\156\4\uffff\1\157",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\155",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0081\1\uffff\12\154\53\uffff\1\u0081",
-            "\0\u0082",
-            "\0\u0083",
+            "\12\161",
             "",
+            "\1\163\4\uffff\1\164",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u0085",
-            "\1\u0086",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0086\1\uffff\12\161\53\uffff\1\u0086",
+            "\0\u0087",
+            "\0\u0088",
             "",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u0087\6\74",
-            "\1\u0089",
-            "",
             "\1\u008a",
             "\1\u008b",
             "",
-            "\1\u008c",
             "",
-            "\1\u008d",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\23\76\1\u008c\6\76",
+            "\1\u008e",
+            "",
             "\1\u008f",
             "\1\u0090",
-            "\1\u0091",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0093",
-            "\1\u0094",
             "",
+            "\1\u0091",
             "",
+            "\1\u0092",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0094",
+            "\1\u0095",
+            "\1\u0096",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0098",
+            "\1\u0099",
             "",
             "",
             "",
             "",
-            "\1\u0095",
-            "\1\u0096",
             "",
-            "\1\u0097",
-            "\1\u0098\1\u0099",
             "",
             "\1\u009a",
             "\1\u009b",
+            "",
             "\1\u009c",
             "\1\u009d",
             "",
+            "\1\u009f\3\uffff\1\u009e",
             "",
-            "\1\u009e",
             "",
-            "\1\u009f",
             "\1\u00a0",
+            "\1\u00a1\1\u00a2",
             "",
+            "\1\u00a3",
+            "\1\u00a4",
             "",
+            "\1\u00a5",
             "",
+            "\1\u00a6",
+            "\1\u00a7",
             "",
             "",
             "",
             "",
-            "\1\u0081\1\uffff\12\154\53\uffff\1\u0081",
             "",
             "",
             "",
+            "\1\u0086\1\uffff\12\161\53\uffff\1\u0086",
+            "",
             "",
             "",
             "",
@@ -2983,134 +3100,149 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u00a1",
-            "\1\u00a2",
-            "\1\u00a3",
             "",
-            "\1\u00a4",
-            "\1\u00a5",
-            "\1\u00a6",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00a8",
             "",
+            "\1\u00a8",
             "\1\u00a9",
             "\1\u00aa",
-            "\1\u00ab",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00ae",
+            "\1\u00ab",
+            "\1\u00ac",
+            "\1\u00ad",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00af",
+            "",
             "\1\u00b0",
             "\1\u00b1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\4\74\1\u00b2\25\74",
-            "\1\u00b4",
+            "\1\u00b2",
+            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
             "\1\u00b8",
             "\1\u00b9",
             "\1\u00ba",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\22\74\1\u00bb\7\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\4\76\1\u00bd\25\76",
             "\1\u00bf",
             "\1\u00c0",
             "\1\u00c1",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c2",
             "\1\u00c3",
-            "\1\u00c4",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
-            "\1\u00c6",
-            "\1\u00c7",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\22\76\1\u00c4\7\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00c8",
             "\1\u00c9",
             "\1\u00ca",
             "",
-            "\1\u00cb",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00cc",
             "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
+            "\1\u00cf",
+            "\1\u00d0",
+            "\1\u00d1",
+            "\1\u00d2",
             "\1\u00d3",
             "\1\u00d4",
             "\1\u00d5",
-            "",
             "\1\u00d6",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d7",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d8",
+            "\1\u00d9",
             "\1\u00da",
             "\1\u00db",
-            "\1\u00dc",
-            "\1\u00dd",
-            "\1\u00de",
-            "\1\u00df",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00e1",
-            "\1\u00e2",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
-            "\1\u00e3",
-            "\1\u00e4",
-            "\1\u00e5",
-            "\1\u00e6",
             "",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
             "",
+            "\1\u00e1",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00e5",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00e7",
             "\1\u00e8",
             "\1\u00e9",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
-            "",
             "\1\u00ed",
             "\1\u00ee",
             "\1\u00ef",
+            "",
+            "",
             "\1\u00f0",
             "\1\u00f1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00f2",
+            "\1\u00f3",
+            "",
+            "",
+            "",
             "\1\u00f4",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "\1\u00f5",
             "\1\u00f6",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00f7",
+            "\1\u00f8",
             "\1\u00f9",
-            "\1\u00fa",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00fb",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00fc",
+            "\1\u00fd",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0102",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0104",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0106",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u010a",
+            "\1\u010b",
+            "\1\u010c",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u00fe",
+            "\1\u010f",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0100",
-            "\1\u0101",
             "",
             "",
-            "\1\u0102",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u0112",
+            "\1\u0113",
+            "",
+            "",
+            "\1\u0114",
             "",
-            "\1\u0103",
-            "\1\u0104",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u0115",
+            "\1\u0116",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
             ""
@@ -3146,33 +3278,23 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_53 = input.LA(1);
+                        int LA17_56 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 130;}
+                        if ( ((LA17_56>='\u0000' && LA17_56<='\uFFFF')) ) {s = 136;}
 
-                        else s = 57;
+                        else s = 59;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA17_54 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 131;}
-
-                        else s = 57;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -3212,83 +3334,97 @@ public class InternalDataDescriptionLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='f') ) {s = 18;}
 
-                        else if ( (LA17_0=='l') ) {s = 19;}
+                        else if ( (LA17_0=='a') ) {s = 19;}
+
+                        else if ( (LA17_0=='e') ) {s = 20;}
 
-                        else if ( (LA17_0=='i') ) {s = 20;}
+                        else if ( (LA17_0=='{') ) {s = 21;}
 
-                        else if ( (LA17_0=='|') ) {s = 21;}
+                        else if ( (LA17_0=='}') ) {s = 22;}
 
-                        else if ( (LA17_0=='s') ) {s = 22;}
+                        else if ( (LA17_0=='l') ) {s = 23;}
 
-                        else if ( (LA17_0=='e') ) {s = 23;}
+                        else if ( (LA17_0=='i') ) {s = 24;}
 
-                        else if ( (LA17_0=='b') ) {s = 24;}
+                        else if ( (LA17_0=='|') ) {s = 25;}
 
-                        else if ( (LA17_0=='a') ) {s = 25;}
+                        else if ( (LA17_0=='s') ) {s = 26;}
 
-                        else if ( (LA17_0=='.') ) {s = 26;}
+                        else if ( (LA17_0=='b') ) {s = 27;}
 
-                        else if ( (LA17_0=='n') ) {s = 27;}
+                        else if ( (LA17_0=='.') ) {s = 28;}
 
-                        else if ( (LA17_0=='q') ) {s = 28;}
+                        else if ( (LA17_0=='n') ) {s = 29;}
 
-                        else if ( (LA17_0=='r') ) {s = 29;}
+                        else if ( (LA17_0=='q') ) {s = 30;}
 
-                        else if ( (LA17_0=='>') ) {s = 30;}
+                        else if ( (LA17_0=='r') ) {s = 31;}
 
-                        else if ( (LA17_0=='=') ) {s = 31;}
+                        else if ( (LA17_0=='>') ) {s = 32;}
 
-                        else if ( (LA17_0=='<') ) {s = 32;}
+                        else if ( (LA17_0=='=') ) {s = 33;}
 
-                        else if ( (LA17_0=='+') ) {s = 33;}
+                        else if ( (LA17_0=='<') ) {s = 34;}
 
-                        else if ( (LA17_0=='-') ) {s = 34;}
+                        else if ( (LA17_0=='+') ) {s = 35;}
 
-                        else if ( (LA17_0=='*') ) {s = 35;}
+                        else if ( (LA17_0=='-') ) {s = 36;}
 
-                        else if ( (LA17_0=='/') ) {s = 36;}
+                        else if ( (LA17_0=='*') ) {s = 37;}
 
-                        else if ( (LA17_0=='%') ) {s = 37;}
+                        else if ( (LA17_0=='/') ) {s = 38;}
 
-                        else if ( (LA17_0=='Y') ) {s = 38;}
+                        else if ( (LA17_0=='%') ) {s = 39;}
 
-                        else if ( (LA17_0=='Z') ) {s = 39;}
+                        else if ( (LA17_0=='Y') ) {s = 40;}
 
-                        else if ( (LA17_0=='E') ) {s = 40;}
+                        else if ( (LA17_0=='Z') ) {s = 41;}
 
-                        else if ( (LA17_0=='P') ) {s = 41;}
+                        else if ( (LA17_0=='E') ) {s = 42;}
 
-                        else if ( (LA17_0=='T') ) {s = 42;}
+                        else if ( (LA17_0=='P') ) {s = 43;}
 
-                        else if ( (LA17_0=='G') ) {s = 43;}
+                        else if ( (LA17_0=='T') ) {s = 44;}
 
-                        else if ( (LA17_0=='M') ) {s = 44;}
+                        else if ( (LA17_0=='G') ) {s = 45;}
 
-                        else if ( (LA17_0=='k') ) {s = 45;}
+                        else if ( (LA17_0=='M') ) {s = 46;}
 
-                        else if ( (LA17_0=='h') ) {s = 46;}
+                        else if ( (LA17_0=='k') ) {s = 47;}
 
-                        else if ( (LA17_0=='m') ) {s = 47;}
+                        else if ( (LA17_0=='h') ) {s = 48;}
 
-                        else if ( (LA17_0=='\u00B5') ) {s = 48;}
+                        else if ( (LA17_0=='m') ) {s = 49;}
 
-                        else if ( (LA17_0=='p') ) {s = 49;}
+                        else if ( (LA17_0=='\u00B5') ) {s = 50;}
 
-                        else if ( (LA17_0=='z') ) {s = 50;}
+                        else if ( (LA17_0=='p') ) {s = 51;}
 
-                        else if ( (LA17_0=='y') ) {s = 51;}
+                        else if ( (LA17_0=='z') ) {s = 52;}
 
-                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 52;}
+                        else if ( (LA17_0=='y') ) {s = 53;}
 
-                        else if ( (LA17_0=='\"') ) {s = 53;}
+                        else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 54;}
 
-                        else if ( (LA17_0=='\'') ) {s = 54;}
+                        else if ( (LA17_0=='\"') ) {s = 55;}
 
-                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='x') ) {s = 55;}
+                        else if ( (LA17_0=='\'') ) {s = 56;}
 
-                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 56;}
+                        else if ( ((LA17_0>='B' && LA17_0<='D')||LA17_0=='F'||(LA17_0>='H' && LA17_0<='L')||LA17_0=='N'||(LA17_0>='Q' && LA17_0<='S')||(LA17_0>='U' && LA17_0<='W')||LA17_0=='_'||LA17_0=='g'||LA17_0=='j'||LA17_0=='x') ) {s = 57;}
+
+                        else if ( ((LA17_0>='\t' && LA17_0<='\n')||LA17_0=='\r'||LA17_0==' ') ) {s = 58;}
+
+                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 59;}
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA17_55 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 135;}
 
-                        else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||(LA17_0>='[' && LA17_0<=']')||LA17_0=='`'||LA17_0=='{'||(LA17_0>='}' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 57;}
+                        else s = 59;
 
                         if ( s>=0 ) return s;
                         break;
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageParser.java b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageParser.java
index defa594f..eca6130c 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/parser/antlr/internal/InternalDataDescriptionLanguageParser.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 @SuppressWarnings("all")
 public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_DOUBLE", "RULE_INT", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'types'", "':'", "'data'", "'constraints'", "'use'", "';'", "'type'", "'description'", "'with'", "'of'", "'value'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'true'", "'false'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'nominal'", "'ordinal'", "'cardinal'", "'quotient'", "'real'", "'integer'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_DOUBLE", "RULE_INT", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'types'", "':'", "'data'", "'constraints'", "'use'", "';'", "'type'", "'description'", "'with'", "'of'", "'value'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'true'", "'false'", "'abstract'", "'extends'", "'{'", "'}'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'nominal'", "'ordinal'", "'cardinal'", "'quotient'", "'real'", "'integer'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -99,14 +99,18 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
     public static final int T__48=48;
     public static final int T__49=49;
     public static final int T__44=44;
+    public static final int T__88=88;
     public static final int T__45=45;
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
     public static final int T__84=84;
     public static final int T__41=41;
+    public static final int T__85=85;
     public static final int T__42=42;
+    public static final int T__86=86;
     public static final int T__43=43;
+    public static final int T__87=87;
 
     // delegates
     // delegators
@@ -322,7 +326,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt2=2;
                         int LA2_0 = input.LA(1);
 
-                        if ( ((LA2_0>=48 && LA2_0<=51)) ) {
+                        if ( ((LA2_0>=52 && LA2_0<=55)) ) {
                             alt2=1;
                         }
 
@@ -404,7 +408,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt4=2;
                         int LA4_0 = input.LA(1);
 
-                        if ( (LA4_0==40||LA4_0==44||(LA4_0>=48 && LA4_0<=53)) ) {
+                        if ( (LA4_0==44||LA4_0==48||(LA4_0>=52 && LA4_0<=57)) ) {
                             alt4=1;
                         }
 
@@ -486,7 +490,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt6=2;
                         int LA6_0 = input.LA(1);
 
-                        if ( ((LA6_0>=RULE_STRING && LA6_0<=RULE_ID)||LA6_0==25||LA6_0==29||LA6_0==31||(LA6_0>=34 && LA6_0<=35)||(LA6_0>=60 && LA6_0<=61)) ) {
+                        if ( ((LA6_0>=RULE_STRING && LA6_0<=RULE_ID)||LA6_0==25||LA6_0==29||LA6_0==31||(LA6_0>=34 && LA6_0<=35)||(LA6_0>=64 && LA6_0<=65)) ) {
                             alt6=1;
                         }
 
@@ -928,7 +932,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt9=2;
                         int LA9_0 = input.LA(1);
 
-                        if ( ((LA9_0>=RULE_STRING && LA9_0<=RULE_ID)||LA9_0==25||LA9_0==29||LA9_0==31||(LA9_0>=34 && LA9_0<=35)||(LA9_0>=60 && LA9_0<=61)) ) {
+                        if ( ((LA9_0>=RULE_STRING && LA9_0<=RULE_ID)||LA9_0==25||LA9_0==29||LA9_0==31||(LA9_0>=34 && LA9_0<=35)||(LA9_0>=64 && LA9_0<=65)) ) {
                             alt9=1;
                         }
 
@@ -1381,7 +1385,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt12=2;
                         int LA12_0 = input.LA(1);
 
-                        if ( ((LA12_0>=RULE_STRING && LA12_0<=RULE_ID)||LA12_0==25||LA12_0==29||LA12_0==31||(LA12_0>=34 && LA12_0<=35)||(LA12_0>=60 && LA12_0<=61)) ) {
+                        if ( ((LA12_0>=RULE_STRING && LA12_0<=RULE_ID)||LA12_0==25||LA12_0==29||LA12_0==31||(LA12_0>=34 && LA12_0<=35)||(LA12_0>=64 && LA12_0<=65)) ) {
                             alt12=1;
                         }
 
@@ -1537,7 +1541,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( ((LA14_0>=48 && LA14_0<=51)) ) {
+            if ( ((LA14_0>=52 && LA14_0<=55)) ) {
                 alt14=1;
             }
             switch (alt14) {
@@ -1690,7 +1694,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                         int alt15=2;
                         int LA15_0 = input.LA(1);
 
-                        if ( ((LA15_0>=RULE_STRING && LA15_0<=RULE_ID)||LA15_0==25||LA15_0==29||LA15_0==31||(LA15_0>=34 && LA15_0<=35)||(LA15_0>=60 && LA15_0<=61)) ) {
+                        if ( ((LA15_0>=RULE_STRING && LA15_0<=RULE_ID)||LA15_0==25||LA15_0==29||LA15_0==31||(LA15_0>=34 && LA15_0<=35)||(LA15_0>=64 && LA15_0<=65)) ) {
                             alt15=1;
                         }
 
@@ -1924,42 +1928,81 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalDataDescriptionLanguage.g:703:1: ruleValueReferenceRule returns [EObject current=null] : (this_DataReferenceRule_0= ruleDataReferenceRule | this_SelfReferenceRule_1= ruleSelfReferenceRule ) ;
+    // InternalDataDescriptionLanguage.g:703:1: ruleValueReferenceRule returns [EObject current=null] : (this_ConstantReferenceRule_0= ruleConstantReferenceRule | this_DataReferenceRule_1= ruleDataReferenceRule | this_SelfReferenceRule_2= ruleSelfReferenceRule ) ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        EObject this_DataReferenceRule_0 = null;
+        EObject this_ConstantReferenceRule_0 = null;
 
-        EObject this_SelfReferenceRule_1 = null;
+        EObject this_DataReferenceRule_1 = null;
+
+        EObject this_SelfReferenceRule_2 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:709:2: ( (this_DataReferenceRule_0= ruleDataReferenceRule | this_SelfReferenceRule_1= ruleSelfReferenceRule ) )
-            // InternalDataDescriptionLanguage.g:710:2: (this_DataReferenceRule_0= ruleDataReferenceRule | this_SelfReferenceRule_1= ruleSelfReferenceRule )
+            // InternalDataDescriptionLanguage.g:709:2: ( (this_ConstantReferenceRule_0= ruleConstantReferenceRule | this_DataReferenceRule_1= ruleDataReferenceRule | this_SelfReferenceRule_2= ruleSelfReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:710:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule | this_DataReferenceRule_1= ruleDataReferenceRule | this_SelfReferenceRule_2= ruleSelfReferenceRule )
             {
-            // InternalDataDescriptionLanguage.g:710:2: (this_DataReferenceRule_0= ruleDataReferenceRule | this_SelfReferenceRule_1= ruleSelfReferenceRule )
-            int alt17=2;
-            int LA17_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:710:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule | this_DataReferenceRule_1= ruleDataReferenceRule | this_SelfReferenceRule_2= ruleSelfReferenceRule )
+            int alt17=3;
+            switch ( input.LA(1) ) {
+            case RULE_QUOTED_ID:
+                {
+                int LA17_1 = input.LA(2);
 
-            if ( ((LA17_0>=RULE_QUOTED_ID && LA17_0<=RULE_ID)) ) {
-                alt17=1;
-            }
-            else if ( (LA17_0==25) ) {
-                alt17=2;
-            }
-            else {
+                if ( (synpred17_InternalDataDescriptionLanguage()) ) {
+                    alt17=1;
+                }
+                else if ( (synpred18_InternalDataDescriptionLanguage()) ) {
+                    alt17=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 17, 1, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case RULE_ID:
+                {
+                int LA17_2 = input.LA(2);
+
+                if ( (synpred17_InternalDataDescriptionLanguage()) ) {
+                    alt17=1;
+                }
+                else if ( (synpred18_InternalDataDescriptionLanguage()) ) {
+                    alt17=2;
+                }
+                else {
+                    if (state.backtracking>0) {state.failed=true; return current;}
+                    NoViableAltException nvae =
+                        new NoViableAltException("", 17, 2, input);
+
+                    throw nvae;
+                }
+                }
+                break;
+            case 25:
+                {
+                alt17=3;
+                }
+                break;
+            default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
                     new NoViableAltException("", 17, 0, input);
 
                 throw nvae;
             }
+
             switch (alt17) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:711:3: this_DataReferenceRule_0= ruleDataReferenceRule
+                    // InternalDataDescriptionLanguage.g:711:3: this_ConstantReferenceRule_0= ruleConstantReferenceRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1968,17 +2011,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_0());
+                      			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall_0());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_DataReferenceRule_0=ruleDataReferenceRule();
+                    this_ConstantReferenceRule_0=ruleConstantReferenceRule();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_DataReferenceRule_0;
+                      			current = this_ConstantReferenceRule_0;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -1986,7 +2029,34 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:723:3: this_SelfReferenceRule_1= ruleSelfReferenceRule
+                    // InternalDataDescriptionLanguage.g:723:3: this_DataReferenceRule_1= ruleDataReferenceRule
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      			/* */
+                      		
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getDataReferenceRuleParserRuleCall_1());
+                      		
+                    }
+                    pushFollow(FOLLOW_2);
+                    this_DataReferenceRule_1=ruleDataReferenceRule();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      			current = this_DataReferenceRule_1;
+                      			afterParserOrEnumRuleCall();
+                      		
+                    }
+
+                    }
+                    break;
+                case 3 :
+                    // InternalDataDescriptionLanguage.g:735:3: this_SelfReferenceRule_2= ruleSelfReferenceRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -1995,17 +2065,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     if ( state.backtracking==0 ) {
 
-                      			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_1());
+                      			newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getSelfReferenceRuleParserRuleCall_2());
                       		
                     }
                     pushFollow(FOLLOW_2);
-                    this_SelfReferenceRule_1=ruleSelfReferenceRule();
+                    this_SelfReferenceRule_2=ruleSelfReferenceRule();
 
                     state._fsp--;
                     if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
-                      			current = this_SelfReferenceRule_1;
+                      			current = this_SelfReferenceRule_2;
                       			afterParserOrEnumRuleCall();
                       		
                     }
@@ -2037,7 +2107,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleDataReferenceRule"
-    // InternalDataDescriptionLanguage.g:738:1: entryRuleDataReferenceRule returns [EObject current=null] : iv_ruleDataReferenceRule= ruleDataReferenceRule EOF ;
+    // InternalDataDescriptionLanguage.g:750:1: entryRuleDataReferenceRule returns [EObject current=null] : iv_ruleDataReferenceRule= ruleDataReferenceRule EOF ;
     public final EObject entryRuleDataReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2045,8 +2115,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:738:58: (iv_ruleDataReferenceRule= ruleDataReferenceRule EOF )
-            // InternalDataDescriptionLanguage.g:739:2: iv_ruleDataReferenceRule= ruleDataReferenceRule EOF
+            // InternalDataDescriptionLanguage.g:750:58: (iv_ruleDataReferenceRule= ruleDataReferenceRule EOF )
+            // InternalDataDescriptionLanguage.g:751:2: iv_ruleDataReferenceRule= ruleDataReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDataReferenceRuleRule()); 
@@ -2077,7 +2147,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleDataReferenceRule"
-    // InternalDataDescriptionLanguage.g:745:1: ruleDataReferenceRule returns [EObject current=null] : ( ( ruleStringOrId ) ) ;
+    // InternalDataDescriptionLanguage.g:757:1: ruleDataReferenceRule returns [EObject current=null] : ( ( ruleStringOrId ) ) ;
     public final EObject ruleDataReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2085,14 +2155,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:751:2: ( ( ( ruleStringOrId ) ) )
-            // InternalDataDescriptionLanguage.g:752:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:763:2: ( ( ( ruleStringOrId ) ) )
+            // InternalDataDescriptionLanguage.g:764:2: ( ( ruleStringOrId ) )
             {
-            // InternalDataDescriptionLanguage.g:752:2: ( ( ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:753:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:764:2: ( ( ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:765:3: ( ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:753:3: ( ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:754:4: ruleStringOrId
+            // InternalDataDescriptionLanguage.g:765:3: ( ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:766:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
 
@@ -2149,7 +2219,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleSelfReferenceRule"
-    // InternalDataDescriptionLanguage.g:774:1: entryRuleSelfReferenceRule returns [EObject current=null] : iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF ;
+    // InternalDataDescriptionLanguage.g:786:1: entryRuleSelfReferenceRule returns [EObject current=null] : iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF ;
     public final EObject entryRuleSelfReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2157,8 +2227,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:774:58: (iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF )
-            // InternalDataDescriptionLanguage.g:775:2: iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF
+            // InternalDataDescriptionLanguage.g:786:58: (iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF )
+            // InternalDataDescriptionLanguage.g:787:2: iv_ruleSelfReferenceRule= ruleSelfReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getSelfReferenceRuleRule()); 
@@ -2189,7 +2259,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleSelfReferenceRule"
-    // InternalDataDescriptionLanguage.g:781:1: ruleSelfReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalDataDescriptionLanguage.g:793:1: ruleSelfReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
     public final EObject ruleSelfReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2199,14 +2269,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:787:2: ( ( () otherlv_1= 'value' ) )
-            // InternalDataDescriptionLanguage.g:788:2: ( () otherlv_1= 'value' )
+            // InternalDataDescriptionLanguage.g:799:2: ( ( () otherlv_1= 'value' ) )
+            // InternalDataDescriptionLanguage.g:800:2: ( () otherlv_1= 'value' )
             {
-            // InternalDataDescriptionLanguage.g:788:2: ( () otherlv_1= 'value' )
-            // InternalDataDescriptionLanguage.g:789:3: () otherlv_1= 'value'
+            // InternalDataDescriptionLanguage.g:800:2: ( () otherlv_1= 'value' )
+            // InternalDataDescriptionLanguage.g:801:3: () otherlv_1= 'value'
             {
-            // InternalDataDescriptionLanguage.g:789:3: ()
-            // InternalDataDescriptionLanguage.g:790:4: 
+            // InternalDataDescriptionLanguage.g:801:3: ()
+            // InternalDataDescriptionLanguage.g:802:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -2254,7 +2324,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalDataDescriptionLanguage.g:807:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:819:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2262,8 +2332,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:807:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:808:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:819:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:820:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getExpressionRuleRule()); 
@@ -2294,7 +2364,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalDataDescriptionLanguage.g:814:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalDataDescriptionLanguage.g:826:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2305,8 +2375,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:820:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalDataDescriptionLanguage.g:821:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalDataDescriptionLanguage.g:832:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalDataDescriptionLanguage.g:833:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -2351,7 +2421,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalDataDescriptionLanguage.g:835:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:847:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2359,8 +2429,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:835:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:836:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:847:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:848:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
@@ -2391,7 +2461,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalDataDescriptionLanguage.g:842:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:854:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2405,17 +2475,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:848:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:849:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:860:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:861:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:849:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalDataDescriptionLanguage.g:850:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:861:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:862:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:850:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:851:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:862:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:863:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:851:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalDataDescriptionLanguage.g:852:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalDataDescriptionLanguage.g:863:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalDataDescriptionLanguage.g:864:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -2446,7 +2516,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:869:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:881:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             loop18:
             do {
                 int alt18=2;
@@ -2459,7 +2529,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:870:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:882:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,26,FOLLOW_20); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -2467,11 +2537,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	      				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	      			
             	    }
-            	    // InternalDataDescriptionLanguage.g:874:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalDataDescriptionLanguage.g:875:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:886:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:887:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:875:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:876:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalDataDescriptionLanguage.g:887:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:888:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2536,7 +2606,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalDataDescriptionLanguage.g:898:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:910:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2544,8 +2614,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:898:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:899:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:910:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:911:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
@@ -2576,7 +2646,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalDataDescriptionLanguage.g:905:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:917:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2590,17 +2660,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:911:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:912:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:923:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:924:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:912:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalDataDescriptionLanguage.g:913:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:924:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:925:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:913:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:914:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:925:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:926:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:914:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalDataDescriptionLanguage.g:915:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalDataDescriptionLanguage.g:926:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalDataDescriptionLanguage.g:927:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -2631,7 +2701,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:932:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:944:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             loop19:
             do {
                 int alt19=2;
@@ -2644,7 +2714,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
                 switch (alt19) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:933:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:945:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,27,FOLLOW_20); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -2652,11 +2722,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	      				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	      			
             	    }
-            	    // InternalDataDescriptionLanguage.g:937:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalDataDescriptionLanguage.g:938:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:949:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:950:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:938:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:939:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalDataDescriptionLanguage.g:950:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:951:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2721,7 +2791,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalDataDescriptionLanguage.g:961:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:973:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2729,8 +2799,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:961:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:962:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:973:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:974:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
@@ -2761,7 +2831,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalDataDescriptionLanguage.g:968:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:980:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2775,17 +2845,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:974:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:975:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:986:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:987:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:975:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalDataDescriptionLanguage.g:976:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:987:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:988:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:976:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:977:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:988:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:989:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:977:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalDataDescriptionLanguage.g:978:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalDataDescriptionLanguage.g:989:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalDataDescriptionLanguage.g:990:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -2816,7 +2886,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:995:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:1007:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             loop20:
             do {
                 int alt20=2;
@@ -2829,7 +2899,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
                 switch (alt20) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:996:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1008:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,28,FOLLOW_20); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
@@ -2837,11 +2907,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	      				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	      			
             	    }
-            	    // InternalDataDescriptionLanguage.g:1000:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalDataDescriptionLanguage.g:1001:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1012:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1013:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1001:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:1002:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalDataDescriptionLanguage.g:1013:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1014:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -2906,7 +2976,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalDataDescriptionLanguage.g:1024:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1036:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2914,8 +2984,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1024:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1025:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1036:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1037:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
@@ -2946,7 +3016,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalDataDescriptionLanguage.g:1031:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalDataDescriptionLanguage.g:1043:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2958,13 +3028,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1037:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalDataDescriptionLanguage.g:1038:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalDataDescriptionLanguage.g:1049:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalDataDescriptionLanguage.g:1050:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalDataDescriptionLanguage.g:1038:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalDataDescriptionLanguage.g:1039:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1050:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalDataDescriptionLanguage.g:1051:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalDataDescriptionLanguage.g:1039:3: ( (lv_negated_0_0= '!' ) )?
+            // InternalDataDescriptionLanguage.g:1051:3: ( (lv_negated_0_0= '!' ) )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -2973,10 +3043,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             }
             switch (alt21) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1040:4: (lv_negated_0_0= '!' )
+                    // InternalDataDescriptionLanguage.g:1052:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalDataDescriptionLanguage.g:1040:4: (lv_negated_0_0= '!' )
-                    // InternalDataDescriptionLanguage.g:1041:5: lv_negated_0_0= '!'
+                    // InternalDataDescriptionLanguage.g:1052:4: (lv_negated_0_0= '!' )
+                    // InternalDataDescriptionLanguage.g:1053:5: lv_negated_0_0= '!'
                     {
                     lv_negated_0_0=(Token)match(input,29,FOLLOW_20); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -3001,11 +3071,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1053:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1054:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:1065:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1066:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1054:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalDataDescriptionLanguage.g:1055:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalDataDescriptionLanguage.g:1066:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalDataDescriptionLanguage.g:1067:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3061,7 +3131,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalDataDescriptionLanguage.g:1076:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1088:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3069,8 +3139,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1076:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1077:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1088:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1089:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
@@ -3101,7 +3171,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalDataDescriptionLanguage.g:1083:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalDataDescriptionLanguage.g:1095:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3114,17 +3184,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1089:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalDataDescriptionLanguage.g:1090:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalDataDescriptionLanguage.g:1101:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalDataDescriptionLanguage.g:1102:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalDataDescriptionLanguage.g:1090:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalDataDescriptionLanguage.g:1091:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalDataDescriptionLanguage.g:1102:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalDataDescriptionLanguage.g:1103:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalDataDescriptionLanguage.g:1091:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1092:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1103:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1104:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1092:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:1093:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:1104:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1105:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3155,23 +3225,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1110:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalDataDescriptionLanguage.g:1122:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             loop22:
             do {
                 int alt22=2;
                 int LA22_0 = input.LA(1);
 
-                if ( ((LA22_0>=54 && LA22_0<=59)) ) {
+                if ( ((LA22_0>=58 && LA22_0<=63)) ) {
                     alt22=1;
                 }
 
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:1111:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1123:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1111:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:1112:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalDataDescriptionLanguage.g:1123:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1124:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -3233,7 +3303,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalDataDescriptionLanguage.g:1133:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1145:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3241,8 +3311,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1133:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1134:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1145:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1146:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
@@ -3273,7 +3343,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalDataDescriptionLanguage.g:1140:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalDataDescriptionLanguage.g:1152:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3286,17 +3356,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1146:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalDataDescriptionLanguage.g:1147:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalDataDescriptionLanguage.g:1158:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalDataDescriptionLanguage.g:1159:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalDataDescriptionLanguage.g:1147:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalDataDescriptionLanguage.g:1148:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1159:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalDataDescriptionLanguage.g:1160:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalDataDescriptionLanguage.g:1148:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalDataDescriptionLanguage.g:1149:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalDataDescriptionLanguage.g:1160:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalDataDescriptionLanguage.g:1161:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalDataDescriptionLanguage.g:1149:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalDataDescriptionLanguage.g:1150:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalDataDescriptionLanguage.g:1161:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalDataDescriptionLanguage.g:1162:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3327,11 +3397,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1167:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1168:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1179:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1180:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1168:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:1169:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:1180:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1181:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3387,7 +3457,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalDataDescriptionLanguage.g:1190:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1202:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3395,8 +3465,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1190:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1191:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1202:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1203:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
@@ -3427,7 +3497,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalDataDescriptionLanguage.g:1197:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:1209:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3442,17 +3512,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1203:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:1204:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:1215:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:1216:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:1204:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalDataDescriptionLanguage.g:1205:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:1216:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:1217:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:1205:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1206:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:1217:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1218:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1206:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalDataDescriptionLanguage.g:1207:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalDataDescriptionLanguage.g:1218:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalDataDescriptionLanguage.g:1219:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3483,26 +3553,26 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1224:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:1236:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             loop23:
             do {
                 int alt23=2;
                 int LA23_0 = input.LA(1);
 
-                if ( ((LA23_0>=60 && LA23_0<=61)) ) {
+                if ( ((LA23_0>=64 && LA23_0<=65)) ) {
                     alt23=1;
                 }
 
 
                 switch (alt23) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:1225:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1237:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1225:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalDataDescriptionLanguage.g:1226:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1237:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalDataDescriptionLanguage.g:1238:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1226:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalDataDescriptionLanguage.g:1227:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalDataDescriptionLanguage.g:1238:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1239:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -3533,11 +3603,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             	    }
 
-            	    // InternalDataDescriptionLanguage.g:1244:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalDataDescriptionLanguage.g:1245:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1256:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1257:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1245:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:1246:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalDataDescriptionLanguage.g:1257:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1258:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -3602,7 +3672,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalDataDescriptionLanguage.g:1268:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1280:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3610,8 +3680,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1268:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1269:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1280:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1281:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
@@ -3642,7 +3712,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalDataDescriptionLanguage.g:1275:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:1287:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3657,17 +3727,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1281:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:1282:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:1293:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:1294:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:1282:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalDataDescriptionLanguage.g:1283:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:1294:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalDataDescriptionLanguage.g:1295:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:1283:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1284:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:1295:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1296:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1284:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalDataDescriptionLanguage.g:1285:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalDataDescriptionLanguage.g:1296:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalDataDescriptionLanguage.g:1297:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3698,26 +3768,26 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1302:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalDataDescriptionLanguage.g:1314:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             loop24:
             do {
                 int alt24=2;
                 int LA24_0 = input.LA(1);
 
-                if ( ((LA24_0>=62 && LA24_0<=64)) ) {
+                if ( ((LA24_0>=66 && LA24_0<=68)) ) {
                     alt24=1;
                 }
 
 
                 switch (alt24) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:1303:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1315:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1303:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalDataDescriptionLanguage.g:1304:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1315:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalDataDescriptionLanguage.g:1316:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1304:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalDataDescriptionLanguage.g:1305:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalDataDescriptionLanguage.g:1316:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1317:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -3748,11 +3818,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             	    }
 
-            	    // InternalDataDescriptionLanguage.g:1322:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalDataDescriptionLanguage.g:1323:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1334:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalDataDescriptionLanguage.g:1335:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1323:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalDataDescriptionLanguage.g:1324:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalDataDescriptionLanguage.g:1335:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalDataDescriptionLanguage.g:1336:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -3817,7 +3887,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalDataDescriptionLanguage.g:1346:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1358:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3825,8 +3895,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1346:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1347:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1358:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1359:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
@@ -3857,7 +3927,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalDataDescriptionLanguage.g:1353:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalDataDescriptionLanguage.g:1365:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3871,17 +3941,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1359:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalDataDescriptionLanguage.g:1360:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalDataDescriptionLanguage.g:1371:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalDataDescriptionLanguage.g:1372:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalDataDescriptionLanguage.g:1360:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalDataDescriptionLanguage.g:1361:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalDataDescriptionLanguage.g:1372:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalDataDescriptionLanguage.g:1373:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalDataDescriptionLanguage.g:1361:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1362:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1373:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1374:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1362:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalDataDescriptionLanguage.g:1363:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalDataDescriptionLanguage.g:1374:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDataDescriptionLanguage.g:1375:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -3912,7 +3982,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1380:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalDataDescriptionLanguage.g:1392:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             int alt25=2;
             int LA25_0 = input.LA(1);
 
@@ -3921,7 +3991,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             }
             switch (alt25) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1381:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalDataDescriptionLanguage.g:1393:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
                     otherlv_1=(Token)match(input,30,FOLLOW_20); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -3929,11 +3999,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                       				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                       			
                     }
-                    // InternalDataDescriptionLanguage.g:1385:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalDataDescriptionLanguage.g:1386:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalDataDescriptionLanguage.g:1397:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalDataDescriptionLanguage.g:1398:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1386:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalDataDescriptionLanguage.g:1387:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalDataDescriptionLanguage.g:1398:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalDataDescriptionLanguage.g:1399:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -3995,7 +4065,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalDataDescriptionLanguage.g:1409:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalDataDescriptionLanguage.g:1421:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4003,8 +4073,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1409:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalDataDescriptionLanguage.g:1410:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalDataDescriptionLanguage.g:1421:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalDataDescriptionLanguage.g:1422:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
@@ -4035,7 +4105,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalDataDescriptionLanguage.g:1416:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalDataDescriptionLanguage.g:1428:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4048,29 +4118,29 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1422:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalDataDescriptionLanguage.g:1423:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalDataDescriptionLanguage.g:1434:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalDataDescriptionLanguage.g:1435:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalDataDescriptionLanguage.g:1423:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalDataDescriptionLanguage.g:1424:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:1435:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalDataDescriptionLanguage.g:1436:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalDataDescriptionLanguage.g:1424:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            // InternalDataDescriptionLanguage.g:1436:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
             loop26:
             do {
                 int alt26=2;
                 int LA26_0 = input.LA(1);
 
-                if ( ((LA26_0>=60 && LA26_0<=61)) ) {
+                if ( ((LA26_0>=64 && LA26_0<=65)) ) {
                     alt26=1;
                 }
 
 
                 switch (alt26) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:1425:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1437:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalDataDescriptionLanguage.g:1425:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalDataDescriptionLanguage.g:1426:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalDataDescriptionLanguage.g:1437:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDataDescriptionLanguage.g:1438:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -4107,11 +4177,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                 }
             } while (true);
 
-            // InternalDataDescriptionLanguage.g:1443:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalDataDescriptionLanguage.g:1444:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalDataDescriptionLanguage.g:1455:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:1456:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalDataDescriptionLanguage.g:1444:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalDataDescriptionLanguage.g:1445:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalDataDescriptionLanguage.g:1456:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalDataDescriptionLanguage.g:1457:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
             if ( state.backtracking==0 ) {
 
@@ -4167,7 +4237,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalDataDescriptionLanguage.g:1466:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalDataDescriptionLanguage.g:1478:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -4175,8 +4245,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1466:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalDataDescriptionLanguage.g:1467:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalDataDescriptionLanguage.g:1478:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalDataDescriptionLanguage.g:1479:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
@@ -4207,7 +4277,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalDataDescriptionLanguage.g:1473:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalDataDescriptionLanguage.g:1485:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -4224,80 +4294,15 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1479:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalDataDescriptionLanguage.g:1480:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalDataDescriptionLanguage.g:1491:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalDataDescriptionLanguage.g:1492:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalDataDescriptionLanguage.g:1480:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalDataDescriptionLanguage.g:1492:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             int alt27=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-                {
-                int LA27_1 = input.LA(2);
-
-                if ( (LA27_1==31||LA27_1==47) ) {
-                    alt27=1;
-                }
-                else if ( (LA27_1==EOF||LA27_1==20||(LA27_1>=26 && LA27_1<=28)||LA27_1==30||(LA27_1>=32 && LA27_1<=33)||(LA27_1>=54 && LA27_1<=64)) ) {
-                    alt27=4;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 27, 1, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case RULE_ID:
-                {
-                int LA27_2 = input.LA(2);
-
-                if ( (LA27_2==31||LA27_2==47) ) {
-                    alt27=1;
-                }
-                else if ( (LA27_2==EOF||LA27_2==20||(LA27_2>=26 && LA27_2<=28)||LA27_2==30||(LA27_2>=32 && LA27_2<=33)||(LA27_2>=54 && LA27_2<=64)) ) {
-                    alt27=4;
-                }
-                else {
-                    if (state.backtracking>0) {state.failed=true; return current;}
-                    NoViableAltException nvae =
-                        new NoViableAltException("", 27, 2, input);
-
-                    throw nvae;
-                }
-                }
-                break;
-            case RULE_STRING:
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case 34:
-            case 35:
-                {
-                alt27=2;
-                }
-                break;
-            case 31:
-                {
-                alt27=3;
-                }
-                break;
-            case 25:
-                {
-                alt27=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 27, 0, input);
-
-                throw nvae;
-            }
-
+            alt27 = dfa27.predict(input);
             switch (alt27) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1481:3: this_CallRule_0= ruleCallRule
+                    // InternalDataDescriptionLanguage.g:1493:3: this_CallRule_0= ruleCallRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4324,7 +4329,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1493:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalDataDescriptionLanguage.g:1505:3: this_LiteralRule_1= ruleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4351,7 +4356,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1505:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalDataDescriptionLanguage.g:1517:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4378,7 +4383,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:1517:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalDataDescriptionLanguage.g:1529:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4429,7 +4434,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalDataDescriptionLanguage.g:1532:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalDataDescriptionLanguage.g:1544:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -4437,8 +4442,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1532:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalDataDescriptionLanguage.g:1533:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalDataDescriptionLanguage.g:1544:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalDataDescriptionLanguage.g:1545:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
@@ -4469,7 +4474,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalDataDescriptionLanguage.g:1539:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalDataDescriptionLanguage.g:1551:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -4482,11 +4487,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1545:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalDataDescriptionLanguage.g:1546:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalDataDescriptionLanguage.g:1557:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalDataDescriptionLanguage.g:1558:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalDataDescriptionLanguage.g:1546:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalDataDescriptionLanguage.g:1547:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalDataDescriptionLanguage.g:1558:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalDataDescriptionLanguage.g:1559:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
             otherlv_0=(Token)match(input,31,FOLLOW_20); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -4494,11 +4499,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
               			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
               		
             }
-            // InternalDataDescriptionLanguage.g:1551:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalDataDescriptionLanguage.g:1552:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:1563:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalDataDescriptionLanguage.g:1564:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalDataDescriptionLanguage.g:1552:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalDataDescriptionLanguage.g:1553:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalDataDescriptionLanguage.g:1564:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalDataDescriptionLanguage.g:1565:5: lv_subExpression_1_0= ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -4560,7 +4565,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalDataDescriptionLanguage.g:1578:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalDataDescriptionLanguage.g:1590:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -4568,8 +4573,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1578:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalDataDescriptionLanguage.g:1579:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalDataDescriptionLanguage.g:1590:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalDataDescriptionLanguage.g:1591:2: iv_ruleCallRule= ruleCallRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCallRuleRule()); 
@@ -4600,7 +4605,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalDataDescriptionLanguage.g:1585:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalDataDescriptionLanguage.g:1597:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -4618,17 +4623,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1591:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalDataDescriptionLanguage.g:1592:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalDataDescriptionLanguage.g:1603:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalDataDescriptionLanguage.g:1604:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalDataDescriptionLanguage.g:1592:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalDataDescriptionLanguage.g:1593:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalDataDescriptionLanguage.g:1604:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalDataDescriptionLanguage.g:1605:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalDataDescriptionLanguage.g:1593:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalDataDescriptionLanguage.g:1594:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalDataDescriptionLanguage.g:1605:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalDataDescriptionLanguage.g:1606:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalDataDescriptionLanguage.g:1594:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalDataDescriptionLanguage.g:1595:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalDataDescriptionLanguage.g:1606:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalDataDescriptionLanguage.g:1607:5: lv_function_0_0= ruleFunctionNameRule
             {
             if ( state.backtracking==0 ) {
 
@@ -4665,22 +4670,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
               			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalDataDescriptionLanguage.g:1616:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            // InternalDataDescriptionLanguage.g:1628:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
             int alt29=2;
             int LA29_0 = input.LA(1);
 
-            if ( ((LA29_0>=RULE_STRING && LA29_0<=RULE_ID)||LA29_0==25||LA29_0==29||LA29_0==31||(LA29_0>=34 && LA29_0<=35)||(LA29_0>=60 && LA29_0<=61)) ) {
+            if ( ((LA29_0>=RULE_STRING && LA29_0<=RULE_ID)||LA29_0==25||LA29_0==29||LA29_0==31||(LA29_0>=34 && LA29_0<=35)||(LA29_0>=64 && LA29_0<=65)) ) {
                 alt29=1;
             }
             switch (alt29) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1617:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalDataDescriptionLanguage.g:1629:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalDataDescriptionLanguage.g:1617:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalDataDescriptionLanguage.g:1618:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalDataDescriptionLanguage.g:1629:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalDataDescriptionLanguage.g:1630:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1618:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalDataDescriptionLanguage.g:1619:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalDataDescriptionLanguage.g:1630:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalDataDescriptionLanguage.g:1631:6: lv_parameters_2_0= ruleExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4711,7 +4716,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
                     }
 
-                    // InternalDataDescriptionLanguage.g:1636:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalDataDescriptionLanguage.g:1648:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     loop28:
                     do {
                         int alt28=2;
@@ -4724,7 +4729,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
                         switch (alt28) {
                     	case 1 :
-                    	    // InternalDataDescriptionLanguage.g:1637:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalDataDescriptionLanguage.g:1649:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
                     	    otherlv_3=(Token)match(input,33,FOLLOW_20); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
@@ -4732,11 +4737,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     	      					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	      				
                     	    }
-                    	    // InternalDataDescriptionLanguage.g:1641:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalDataDescriptionLanguage.g:1642:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalDataDescriptionLanguage.g:1653:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalDataDescriptionLanguage.g:1654:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalDataDescriptionLanguage.g:1642:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalDataDescriptionLanguage.g:1643:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalDataDescriptionLanguage.g:1654:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalDataDescriptionLanguage.g:1655:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
                     	    if ( state.backtracking==0 ) {
 
@@ -4812,8 +4817,120 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
     // $ANTLR end "ruleCallRule"
 
 
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalDataDescriptionLanguage.g:1682:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantReferenceRule = null;
+
+
+        try {
+            // InternalDataDescriptionLanguage.g:1682:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalDataDescriptionLanguage.g:1683:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleConstantReferenceRule; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalDataDescriptionLanguage.g:1689:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalDataDescriptionLanguage.g:1695:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:1696:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalDataDescriptionLanguage.g:1696:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:1697:3: ( ruleQualifiedName )
+            {
+            // InternalDataDescriptionLanguage.g:1697:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:1698:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+
+              				/* */
+              			
+            }
+            if ( state.backtracking==0 ) {
+
+              				if (current==null) {
+              					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+              				}
+              			
+            }
+            if ( state.backtracking==0 ) {
+
+              				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+              			
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              				afterParserOrEnumRuleCall();
+              			
+            }
+
+            }
+
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConstantReferenceRule"
+
+
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalDataDescriptionLanguage.g:1670:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1718:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
     public final EObject entryRuleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4821,8 +4938,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1670:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1671:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1718:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1719:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralRuleRule()); 
@@ -4853,7 +4970,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalDataDescriptionLanguage.g:1677:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalDataDescriptionLanguage.g:1725:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4868,10 +4985,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1683:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalDataDescriptionLanguage.g:1684:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalDataDescriptionLanguage.g:1731:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalDataDescriptionLanguage.g:1732:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalDataDescriptionLanguage.g:1684:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalDataDescriptionLanguage.g:1732:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             int alt30=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -4901,7 +5018,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             switch (alt30) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1685:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalDataDescriptionLanguage.g:1733:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4928,7 +5045,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1697:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalDataDescriptionLanguage.g:1745:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -4955,7 +5072,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:1709:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalDataDescriptionLanguage.g:1757:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5006,7 +5123,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalDataDescriptionLanguage.g:1724:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1772:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5014,8 +5131,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1724:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1725:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1772:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1773:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
@@ -5046,7 +5163,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalDataDescriptionLanguage.g:1731:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalDataDescriptionLanguage.g:1779:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5059,10 +5176,10 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1737:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalDataDescriptionLanguage.g:1738:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalDataDescriptionLanguage.g:1785:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalDataDescriptionLanguage.g:1786:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalDataDescriptionLanguage.g:1738:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalDataDescriptionLanguage.g:1786:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             int alt31=2;
             int LA31_0 = input.LA(1);
 
@@ -5081,7 +5198,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             }
             switch (alt31) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1739:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalDataDescriptionLanguage.g:1787:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5108,7 +5225,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1751:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalDataDescriptionLanguage.g:1799:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5159,7 +5276,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalDataDescriptionLanguage.g:1766:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1814:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5167,8 +5284,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1766:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1767:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1814:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1815:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
@@ -5199,7 +5316,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalDataDescriptionLanguage.g:1773:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalDataDescriptionLanguage.g:1821:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5211,17 +5328,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1779:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalDataDescriptionLanguage.g:1780:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDataDescriptionLanguage.g:1827:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalDataDescriptionLanguage.g:1828:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalDataDescriptionLanguage.g:1780:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalDataDescriptionLanguage.g:1781:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDataDescriptionLanguage.g:1828:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDataDescriptionLanguage.g:1829:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalDataDescriptionLanguage.g:1781:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalDataDescriptionLanguage.g:1782:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalDataDescriptionLanguage.g:1829:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalDataDescriptionLanguage.g:1830:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalDataDescriptionLanguage.g:1782:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalDataDescriptionLanguage.g:1783:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalDataDescriptionLanguage.g:1830:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalDataDescriptionLanguage.g:1831:5: lv_literal_0_0= RULE_DOUBLE
             {
             lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5247,19 +5364,19 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1799:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDataDescriptionLanguage.g:1847:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( ((LA32_0>=65 && LA32_0<=84)) ) {
+            if ( ((LA32_0>=69 && LA32_0<=88)) ) {
                 alt32=1;
             }
             switch (alt32) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1800:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDataDescriptionLanguage.g:1848:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1800:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalDataDescriptionLanguage.g:1801:5: lv_factor_1_0= ruleFactorRule
+                    // InternalDataDescriptionLanguage.g:1848:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDataDescriptionLanguage.g:1849:5: lv_factor_1_0= ruleFactorRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5318,7 +5435,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalDataDescriptionLanguage.g:1822:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1870:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5326,8 +5443,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1822:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1823:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1870:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1871:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
@@ -5358,7 +5475,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalDataDescriptionLanguage.g:1829:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalDataDescriptionLanguage.g:1877:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5370,17 +5487,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1835:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalDataDescriptionLanguage.g:1836:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDataDescriptionLanguage.g:1883:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalDataDescriptionLanguage.g:1884:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalDataDescriptionLanguage.g:1836:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalDataDescriptionLanguage.g:1837:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDataDescriptionLanguage.g:1884:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDataDescriptionLanguage.g:1885:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalDataDescriptionLanguage.g:1837:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalDataDescriptionLanguage.g:1838:4: (lv_literal_0_0= RULE_INT )
+            // InternalDataDescriptionLanguage.g:1885:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalDataDescriptionLanguage.g:1886:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalDataDescriptionLanguage.g:1838:4: (lv_literal_0_0= RULE_INT )
-            // InternalDataDescriptionLanguage.g:1839:5: lv_literal_0_0= RULE_INT
+            // InternalDataDescriptionLanguage.g:1886:4: (lv_literal_0_0= RULE_INT )
+            // InternalDataDescriptionLanguage.g:1887:5: lv_literal_0_0= RULE_INT
             {
             lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_31); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5406,19 +5523,19 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1855:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDataDescriptionLanguage.g:1903:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt33=2;
             int LA33_0 = input.LA(1);
 
-            if ( ((LA33_0>=65 && LA33_0<=84)) ) {
+            if ( ((LA33_0>=69 && LA33_0<=88)) ) {
                 alt33=1;
             }
             switch (alt33) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1856:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDataDescriptionLanguage.g:1904:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalDataDescriptionLanguage.g:1856:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalDataDescriptionLanguage.g:1857:5: lv_factor_1_0= ruleFactorRule
+                    // InternalDataDescriptionLanguage.g:1904:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDataDescriptionLanguage.g:1905:5: lv_factor_1_0= ruleFactorRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5477,7 +5594,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalDataDescriptionLanguage.g:1878:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1926:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5485,8 +5602,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1878:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1879:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1926:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1927:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
@@ -5517,7 +5634,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalDataDescriptionLanguage.g:1885:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalDataDescriptionLanguage.g:1933:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5527,14 +5644,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1891:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalDataDescriptionLanguage.g:1892:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalDataDescriptionLanguage.g:1939:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalDataDescriptionLanguage.g:1940:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalDataDescriptionLanguage.g:1892:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalDataDescriptionLanguage.g:1893:3: (lv_value_0_0= RULE_STRING )
+            // InternalDataDescriptionLanguage.g:1940:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalDataDescriptionLanguage.g:1941:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalDataDescriptionLanguage.g:1893:3: (lv_value_0_0= RULE_STRING )
-            // InternalDataDescriptionLanguage.g:1894:4: lv_value_0_0= RULE_STRING
+            // InternalDataDescriptionLanguage.g:1941:3: (lv_value_0_0= RULE_STRING )
+            // InternalDataDescriptionLanguage.g:1942:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -5582,7 +5699,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalDataDescriptionLanguage.g:1913:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalDataDescriptionLanguage.g:1961:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5590,8 +5707,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1913:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalDataDescriptionLanguage.g:1914:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalDataDescriptionLanguage.g:1961:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalDataDescriptionLanguage.g:1962:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
@@ -5622,7 +5739,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalDataDescriptionLanguage.g:1920:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalDataDescriptionLanguage.g:1968:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5633,14 +5750,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1926:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalDataDescriptionLanguage.g:1927:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalDataDescriptionLanguage.g:1974:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalDataDescriptionLanguage.g:1975:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalDataDescriptionLanguage.g:1927:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalDataDescriptionLanguage.g:1928:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalDataDescriptionLanguage.g:1975:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalDataDescriptionLanguage.g:1976:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalDataDescriptionLanguage.g:1928:3: ()
-            // InternalDataDescriptionLanguage.g:1929:4: 
+            // InternalDataDescriptionLanguage.g:1976:3: ()
+            // InternalDataDescriptionLanguage.g:1977:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -5657,7 +5774,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:1938:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalDataDescriptionLanguage.g:1986:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             int alt34=2;
             int LA34_0 = input.LA(1);
 
@@ -5676,13 +5793,13 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             }
             switch (alt34) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:1939:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalDataDescriptionLanguage.g:1987:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalDataDescriptionLanguage.g:1939:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalDataDescriptionLanguage.g:1940:5: (lv_value_1_0= 'true' )
+                    // InternalDataDescriptionLanguage.g:1987:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalDataDescriptionLanguage.g:1988:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalDataDescriptionLanguage.g:1940:5: (lv_value_1_0= 'true' )
-                    // InternalDataDescriptionLanguage.g:1941:6: lv_value_1_0= 'true'
+                    // InternalDataDescriptionLanguage.g:1988:5: (lv_value_1_0= 'true' )
+                    // InternalDataDescriptionLanguage.g:1989:6: lv_value_1_0= 'true'
                     {
                     lv_value_1_0=(Token)match(input,34,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -5708,7 +5825,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:1954:4: otherlv_2= 'false'
+                    // InternalDataDescriptionLanguage.g:2002:4: otherlv_2= 'false'
                     {
                     otherlv_2=(Token)match(input,35,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -5746,28 +5863,28 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
-    // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalDataDescriptionLanguage.g:1963:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
-    public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:2011:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleAttributeDefinitionRule = null;
+        EObject iv_ruleTypeDefinitionRule = null;
 
 
         try {
-            // InternalDataDescriptionLanguage.g:1963:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalDataDescriptionLanguage.g:1964:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalDataDescriptionLanguage.g:2011:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalDataDescriptionLanguage.g:2012:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
             {
             if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
+               newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
             }
             pushFollow(FOLLOW_1);
-            iv_ruleAttributeDefinitionRule=ruleAttributeDefinitionRule();
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
-               current =iv_ruleAttributeDefinitionRule; 
+               current =iv_ruleTypeDefinitionRule; 
             }
             match(input,EOF,FOLLOW_2); if (state.failed) return current;
 
@@ -5783,59 +5900,102 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         }
         return current;
     }
-    // $ANTLR end "entryRuleAttributeDefinitionRule"
+    // $ANTLR end "entryRuleTypeDefinitionRule"
 
 
-    // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalDataDescriptionLanguage.g:1970:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
-    public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:2018:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
+        Token lv_abstract_0_0=null;
         Token otherlv_1=null;
         Token otherlv_3=null;
         Token otherlv_5=null;
-        AntlrDatatypeRuleToken lv_name_0_0 = null;
-
-        EObject lv_type_2_0 = null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
 
-        EObject lv_initialisation_4_0 = null;
+        EObject lv_attributes_6_0 = null;
 
 
 
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:1976:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalDataDescriptionLanguage.g:1977:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalDataDescriptionLanguage.g:2024:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalDataDescriptionLanguage.g:2025:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
             {
-            // InternalDataDescriptionLanguage.g:1977:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalDataDescriptionLanguage.g:1978:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalDataDescriptionLanguage.g:2025:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalDataDescriptionLanguage.g:2026:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
             {
-            // InternalDataDescriptionLanguage.g:1978:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:1979:4: (lv_name_0_0= ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:2026:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
+
+            if ( (LA35_0==36) ) {
+                alt35=1;
+            }
+            switch (alt35) {
+                case 1 :
+                    // InternalDataDescriptionLanguage.g:2027:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalDataDescriptionLanguage.g:2027:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalDataDescriptionLanguage.g:2028:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,36,FOLLOW_10); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                      				
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                      					}
+                      					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,21,FOLLOW_11); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+              		
+            }
+            // InternalDataDescriptionLanguage.g:2044:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:2045:4: (lv_name_2_0= ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:1979:4: (lv_name_0_0= ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:1980:5: lv_name_0_0= ruleStringOrId
+            // InternalDataDescriptionLanguage.g:2045:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:2046:5: lv_name_2_0= ruleStringOrId
             {
             if ( state.backtracking==0 ) {
 
-              					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
+              					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_4);
-            lv_name_0_0=ruleStringOrId();
+            pushFollow(FOLLOW_32);
+            lv_name_2_0=ruleStringOrId();
 
             state._fsp--;
             if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					if (current==null) {
-              						current = createModelElementForParent(grammarAccess.getAttributeDefinitionRuleRule());
+              						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
               					}
               					set(
               						current,
               						"name",
-              						lv_name_0_0,
+              						lv_name_2_0,
               						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
               					afterParserOrEnumRuleCall();
               				
@@ -5846,24 +6006,275 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,16,FOLLOW_32); if (state.failed) return current;
-            if ( state.backtracking==0 ) {
+            // InternalDataDescriptionLanguage.g:2063:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-              			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
+            if ( (LA36_0==37) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // InternalDataDescriptionLanguage.g:2064:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,37,FOLLOW_11); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                      			
+                    }
+                    // InternalDataDescriptionLanguage.g:2068:4: ( ( ruleQualifiedName ) )
+                    // InternalDataDescriptionLanguage.g:2069:5: ( ruleQualifiedName )
+                    {
+                    // InternalDataDescriptionLanguage.g:2069:5: ( ruleQualifiedName )
+                    // InternalDataDescriptionLanguage.g:2070:6: ruleQualifiedName
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						/* */
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_33);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,38,FOLLOW_34); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+              		
+            }
+            // InternalDataDescriptionLanguage.g:2092:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop37:
+            do {
+                int alt37=2;
+                int LA37_0 = input.LA(1);
+
+                if ( ((LA37_0>=RULE_QUOTED_ID && LA37_0<=RULE_ID)) ) {
+                    alt37=1;
+                }
+
+
+                switch (alt37) {
+            	case 1 :
+            	    // InternalDataDescriptionLanguage.g:2093:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalDataDescriptionLanguage.g:2093:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalDataDescriptionLanguage.g:2094:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_34);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"attributes",
+            	      						lv_attributes_6_0,
+            	      						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop37;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
               		
             }
-            // InternalDataDescriptionLanguage.g:2001:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:2002:4: (lv_type_2_0= ruleTypeRule )
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
+    // $ANTLR start "entryRuleAttributeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:2119:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleAttributeDefinitionRule = null;
+
+
+        try {
+            // InternalDataDescriptionLanguage.g:2119:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalDataDescriptionLanguage.g:2120:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
-            // InternalDataDescriptionLanguage.g:2002:4: (lv_type_2_0= ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:2003:5: lv_type_2_0= ruleTypeRule
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleAttributeDefinitionRule=ruleAttributeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleAttributeDefinitionRule; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleAttributeDefinitionRule"
+
+
+    // $ANTLR start "ruleAttributeDefinitionRule"
+    // InternalDataDescriptionLanguage.g:2126:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        AntlrDatatypeRuleToken lv_name_0_0 = null;
+
+        EObject lv_type_2_0 = null;
+
+        EObject lv_initialisation_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalDataDescriptionLanguage.g:2132:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalDataDescriptionLanguage.g:2133:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            {
+            // InternalDataDescriptionLanguage.g:2133:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalDataDescriptionLanguage.g:2134:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            {
+            // InternalDataDescriptionLanguage.g:2134:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:2135:4: (lv_name_0_0= ruleStringOrId )
+            {
+            // InternalDataDescriptionLanguage.g:2135:4: (lv_name_0_0= ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:2136:5: lv_name_0_0= ruleStringOrId
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
+              				
+            }
+            pushFollow(FOLLOW_4);
+            lv_name_0_0=ruleStringOrId();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getAttributeDefinitionRuleRule());
+              					}
+              					set(
+              						current,
+              						"name",
+              						lv_name_0_0,
+              						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            otherlv_1=(Token)match(input,16,FOLLOW_35); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
+              		
+            }
+            // InternalDataDescriptionLanguage.g:2157:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:2158:4: (lv_type_2_0= ruleTypeRule )
+            {
+            // InternalDataDescriptionLanguage.g:2158:4: (lv_type_2_0= ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:2159:5: lv_type_2_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_36);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -5887,28 +6298,28 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:2020:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:2176:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
 
-            if ( (LA35_0==36) ) {
-                alt35=1;
+            if ( (LA38_0==40) ) {
+                alt38=1;
             }
-            switch (alt35) {
+            switch (alt38) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2021:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalDataDescriptionLanguage.g:2177:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,36,FOLLOW_20); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,40,FOLLOW_20); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalDataDescriptionLanguage.g:2025:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalDataDescriptionLanguage.g:2026:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalDataDescriptionLanguage.g:2181:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalDataDescriptionLanguage.g:2182:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalDataDescriptionLanguage.g:2026:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalDataDescriptionLanguage.g:2027:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalDataDescriptionLanguage.g:2182:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalDataDescriptionLanguage.g:2183:6: lv_initialisation_4_0= ruleExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5976,7 +6387,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalDataDescriptionLanguage.g:2053:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2209:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5984,8 +6395,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2053:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2054:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2209:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2210:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeRuleRule()); 
@@ -6016,7 +6427,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalDataDescriptionLanguage.g:2060:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalDataDescriptionLanguage.g:2216:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6045,73 +6456,73 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2066:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalDataDescriptionLanguage.g:2067:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalDataDescriptionLanguage.g:2222:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalDataDescriptionLanguage.g:2223:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:2067:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt36=10;
+            // InternalDataDescriptionLanguage.g:2223:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt39=10;
             switch ( input.LA(1) ) {
-            case 40:
+            case 44:
                 {
-                alt36=1;
+                alt39=1;
                 }
                 break;
-            case 42:
+            case 46:
                 {
-                alt36=2;
+                alt39=2;
                 }
                 break;
-            case 43:
+            case 47:
                 {
-                alt36=3;
+                alt39=3;
                 }
                 break;
-            case 44:
+            case 48:
                 {
-                alt36=4;
+                alt39=4;
                 }
                 break;
-            case 37:
+            case 41:
                 {
-                alt36=5;
+                alt39=5;
                 }
                 break;
-            case 46:
+            case 50:
                 {
-                alt36=6;
+                alt39=6;
                 }
                 break;
-            case 38:
+            case 42:
                 {
-                alt36=7;
+                alt39=7;
                 }
                 break;
-            case 45:
+            case 49:
                 {
-                alt36=8;
+                alt39=8;
                 }
                 break;
-            case 41:
+            case 45:
                 {
-                alt36=9;
+                alt39=9;
                 }
                 break;
             case 17:
                 {
-                alt36=10;
+                alt39=10;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt39) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2068:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalDataDescriptionLanguage.g:2224:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6138,7 +6549,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2080:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalDataDescriptionLanguage.g:2236:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6165,7 +6576,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2092:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalDataDescriptionLanguage.g:2248:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6192,7 +6603,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:2104:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalDataDescriptionLanguage.g:2260:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6219,7 +6630,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:2116:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalDataDescriptionLanguage.g:2272:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6246,7 +6657,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:2128:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalDataDescriptionLanguage.g:2284:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6273,7 +6684,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 7 :
-                    // InternalDataDescriptionLanguage.g:2140:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalDataDescriptionLanguage.g:2296:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6300,7 +6711,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 8 :
-                    // InternalDataDescriptionLanguage.g:2152:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalDataDescriptionLanguage.g:2308:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6327,7 +6738,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 9 :
-                    // InternalDataDescriptionLanguage.g:2164:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalDataDescriptionLanguage.g:2320:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6354,7 +6765,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 10 :
-                    // InternalDataDescriptionLanguage.g:2176:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalDataDescriptionLanguage.g:2332:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6405,7 +6816,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalDataDescriptionLanguage.g:2191:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2347:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6413,8 +6824,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2191:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2192:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2347:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2348:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
@@ -6445,7 +6856,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalDataDescriptionLanguage.g:2198:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalDataDescriptionLanguage.g:2354:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6455,14 +6866,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2204:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalDataDescriptionLanguage.g:2205:2: ( () otherlv_1= 'literal' )
+            // InternalDataDescriptionLanguage.g:2360:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalDataDescriptionLanguage.g:2361:2: ( () otherlv_1= 'literal' )
             {
-            // InternalDataDescriptionLanguage.g:2205:2: ( () otherlv_1= 'literal' )
-            // InternalDataDescriptionLanguage.g:2206:3: () otherlv_1= 'literal'
+            // InternalDataDescriptionLanguage.g:2361:2: ( () otherlv_1= 'literal' )
+            // InternalDataDescriptionLanguage.g:2362:3: () otherlv_1= 'literal'
             {
-            // InternalDataDescriptionLanguage.g:2206:3: ()
-            // InternalDataDescriptionLanguage.g:2207:4: 
+            // InternalDataDescriptionLanguage.g:2362:3: ()
+            // InternalDataDescriptionLanguage.g:2363:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6479,7 +6890,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
@@ -6510,7 +6921,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalDataDescriptionLanguage.g:2224:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2380:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6518,8 +6929,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2224:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2225:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2380:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2381:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
@@ -6550,7 +6961,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalDataDescriptionLanguage.g:2231:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalDataDescriptionLanguage.g:2387:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6561,14 +6972,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2237:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalDataDescriptionLanguage.g:2238:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalDataDescriptionLanguage.g:2393:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalDataDescriptionLanguage.g:2394:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalDataDescriptionLanguage.g:2238:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalDataDescriptionLanguage.g:2239:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalDataDescriptionLanguage.g:2394:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalDataDescriptionLanguage.g:2395:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalDataDescriptionLanguage.g:2239:3: ()
-            // InternalDataDescriptionLanguage.g:2240:4: 
+            // InternalDataDescriptionLanguage.g:2395:3: ()
+            // InternalDataDescriptionLanguage.g:2396:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6585,17 +6996,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,38,FOLLOW_11); if (state.failed) return current;
+            otherlv_1=(Token)match(input,42,FOLLOW_11); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
               		
             }
-            // InternalDataDescriptionLanguage.g:2253:3: ( ( ruleQualifiedName ) )
-            // InternalDataDescriptionLanguage.g:2254:4: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:2409:3: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:2410:4: ( ruleQualifiedName )
             {
-            // InternalDataDescriptionLanguage.g:2254:4: ( ruleQualifiedName )
-            // InternalDataDescriptionLanguage.g:2255:5: ruleQualifiedName
+            // InternalDataDescriptionLanguage.g:2410:4: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:2411:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -6614,7 +7025,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
               					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_34);
+            pushFollow(FOLLOW_37);
             ruleQualifiedName();
 
             state._fsp--;
@@ -6630,32 +7041,32 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:2272:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop37:
+            // InternalDataDescriptionLanguage.g:2428:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop40:
             do {
-                int alt37=2;
-                int LA37_0 = input.LA(1);
+                int alt40=2;
+                int LA40_0 = input.LA(1);
 
-                if ( (LA37_0==39) ) {
-                    alt37=1;
+                if ( (LA40_0==43) ) {
+                    alt40=1;
                 }
 
 
-                switch (alt37) {
+                switch (alt40) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2273:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalDataDescriptionLanguage.g:2429:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,39,FOLLOW_11); if (state.failed) return current;
+            	    otherlv_3=(Token)match(input,43,FOLLOW_11); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	      			
             	    }
-            	    // InternalDataDescriptionLanguage.g:2277:4: ( ( ruleQualifiedName ) )
-            	    // InternalDataDescriptionLanguage.g:2278:5: ( ruleQualifiedName )
+            	    // InternalDataDescriptionLanguage.g:2433:4: ( ( ruleQualifiedName ) )
+            	    // InternalDataDescriptionLanguage.g:2434:5: ( ruleQualifiedName )
             	    {
-            	    // InternalDataDescriptionLanguage.g:2278:5: ( ruleQualifiedName )
-            	    // InternalDataDescriptionLanguage.g:2279:6: ruleQualifiedName
+            	    // InternalDataDescriptionLanguage.g:2434:5: ( ruleQualifiedName )
+            	    // InternalDataDescriptionLanguage.g:2435:6: ruleQualifiedName
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -6674,7 +7085,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	      						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_34);
+            	    pushFollow(FOLLOW_37);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -6695,7 +7106,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop37;
+            	    break loop40;
                 }
             } while (true);
 
@@ -6724,7 +7135,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalDataDescriptionLanguage.g:2301:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2457:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6732,8 +7143,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2301:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2302:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2457:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2458:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
@@ -6764,7 +7175,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalDataDescriptionLanguage.g:2308:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalDataDescriptionLanguage.g:2464:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6774,14 +7185,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2314:2: ( ( () otherlv_1= 'string' ) )
-            // InternalDataDescriptionLanguage.g:2315:2: ( () otherlv_1= 'string' )
+            // InternalDataDescriptionLanguage.g:2470:2: ( ( () otherlv_1= 'string' ) )
+            // InternalDataDescriptionLanguage.g:2471:2: ( () otherlv_1= 'string' )
             {
-            // InternalDataDescriptionLanguage.g:2315:2: ( () otherlv_1= 'string' )
-            // InternalDataDescriptionLanguage.g:2316:3: () otherlv_1= 'string'
+            // InternalDataDescriptionLanguage.g:2471:2: ( () otherlv_1= 'string' )
+            // InternalDataDescriptionLanguage.g:2472:3: () otherlv_1= 'string'
             {
-            // InternalDataDescriptionLanguage.g:2316:3: ()
-            // InternalDataDescriptionLanguage.g:2317:4: 
+            // InternalDataDescriptionLanguage.g:2472:3: ()
+            // InternalDataDescriptionLanguage.g:2473:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6798,7 +7209,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
@@ -6829,7 +7240,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalDataDescriptionLanguage.g:2334:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2490:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6837,8 +7248,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2334:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2335:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2490:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2491:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
@@ -6869,7 +7280,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalDataDescriptionLanguage.g:2341:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalDataDescriptionLanguage.g:2497:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6879,14 +7290,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2347:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalDataDescriptionLanguage.g:2348:2: ( () otherlv_1= 'expression' )
+            // InternalDataDescriptionLanguage.g:2503:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalDataDescriptionLanguage.g:2504:2: ( () otherlv_1= 'expression' )
             {
-            // InternalDataDescriptionLanguage.g:2348:2: ( () otherlv_1= 'expression' )
-            // InternalDataDescriptionLanguage.g:2349:3: () otherlv_1= 'expression'
+            // InternalDataDescriptionLanguage.g:2504:2: ( () otherlv_1= 'expression' )
+            // InternalDataDescriptionLanguage.g:2505:3: () otherlv_1= 'expression'
             {
-            // InternalDataDescriptionLanguage.g:2349:3: ()
-            // InternalDataDescriptionLanguage.g:2350:4: 
+            // InternalDataDescriptionLanguage.g:2505:3: ()
+            // InternalDataDescriptionLanguage.g:2506:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -6903,7 +7314,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,41,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
@@ -6934,7 +7345,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalDataDescriptionLanguage.g:2367:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2523:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6942,8 +7353,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2367:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2368:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2523:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2524:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
@@ -6974,7 +7385,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalDataDescriptionLanguage.g:2374:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalDataDescriptionLanguage.g:2530:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6984,14 +7395,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2380:2: ( ( () otherlv_1= 'int' ) )
-            // InternalDataDescriptionLanguage.g:2381:2: ( () otherlv_1= 'int' )
+            // InternalDataDescriptionLanguage.g:2536:2: ( ( () otherlv_1= 'int' ) )
+            // InternalDataDescriptionLanguage.g:2537:2: ( () otherlv_1= 'int' )
             {
-            // InternalDataDescriptionLanguage.g:2381:2: ( () otherlv_1= 'int' )
-            // InternalDataDescriptionLanguage.g:2382:3: () otherlv_1= 'int'
+            // InternalDataDescriptionLanguage.g:2537:2: ( () otherlv_1= 'int' )
+            // InternalDataDescriptionLanguage.g:2538:3: () otherlv_1= 'int'
             {
-            // InternalDataDescriptionLanguage.g:2382:3: ()
-            // InternalDataDescriptionLanguage.g:2383:4: 
+            // InternalDataDescriptionLanguage.g:2538:3: ()
+            // InternalDataDescriptionLanguage.g:2539:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7008,7 +7419,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,46,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
@@ -7039,7 +7450,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalDataDescriptionLanguage.g:2400:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2556:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7047,8 +7458,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2400:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2401:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2556:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2557:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
@@ -7079,7 +7490,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalDataDescriptionLanguage.g:2407:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalDataDescriptionLanguage.g:2563:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7089,14 +7500,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2413:2: ( ( () otherlv_1= 'float' ) )
-            // InternalDataDescriptionLanguage.g:2414:2: ( () otherlv_1= 'float' )
+            // InternalDataDescriptionLanguage.g:2569:2: ( ( () otherlv_1= 'float' ) )
+            // InternalDataDescriptionLanguage.g:2570:2: ( () otherlv_1= 'float' )
             {
-            // InternalDataDescriptionLanguage.g:2414:2: ( () otherlv_1= 'float' )
-            // InternalDataDescriptionLanguage.g:2415:3: () otherlv_1= 'float'
+            // InternalDataDescriptionLanguage.g:2570:2: ( () otherlv_1= 'float' )
+            // InternalDataDescriptionLanguage.g:2571:3: () otherlv_1= 'float'
             {
-            // InternalDataDescriptionLanguage.g:2415:3: ()
-            // InternalDataDescriptionLanguage.g:2416:4: 
+            // InternalDataDescriptionLanguage.g:2571:3: ()
+            // InternalDataDescriptionLanguage.g:2572:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7113,7 +7524,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,47,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
@@ -7144,7 +7555,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalDataDescriptionLanguage.g:2433:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2589:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7152,8 +7563,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2433:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2434:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2589:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2590:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
@@ -7184,7 +7595,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalDataDescriptionLanguage.g:2440:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalDataDescriptionLanguage.g:2596:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7194,14 +7605,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2446:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalDataDescriptionLanguage.g:2447:2: ( () otherlv_1= 'boolean' )
+            // InternalDataDescriptionLanguage.g:2602:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalDataDescriptionLanguage.g:2603:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalDataDescriptionLanguage.g:2447:2: ( () otherlv_1= 'boolean' )
-            // InternalDataDescriptionLanguage.g:2448:3: () otherlv_1= 'boolean'
+            // InternalDataDescriptionLanguage.g:2603:2: ( () otherlv_1= 'boolean' )
+            // InternalDataDescriptionLanguage.g:2604:3: () otherlv_1= 'boolean'
             {
-            // InternalDataDescriptionLanguage.g:2448:3: ()
-            // InternalDataDescriptionLanguage.g:2449:4: 
+            // InternalDataDescriptionLanguage.g:2604:3: ()
+            // InternalDataDescriptionLanguage.g:2605:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7218,7 +7629,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
@@ -7249,7 +7660,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalDataDescriptionLanguage.g:2466:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2622:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7257,8 +7668,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2466:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2467:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2622:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2623:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
@@ -7289,7 +7700,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalDataDescriptionLanguage.g:2473:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalDataDescriptionLanguage.g:2629:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7299,14 +7710,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2479:2: ( ( () otherlv_1= 'void' ) )
-            // InternalDataDescriptionLanguage.g:2480:2: ( () otherlv_1= 'void' )
+            // InternalDataDescriptionLanguage.g:2635:2: ( ( () otherlv_1= 'void' ) )
+            // InternalDataDescriptionLanguage.g:2636:2: ( () otherlv_1= 'void' )
             {
-            // InternalDataDescriptionLanguage.g:2480:2: ( () otherlv_1= 'void' )
-            // InternalDataDescriptionLanguage.g:2481:3: () otherlv_1= 'void'
+            // InternalDataDescriptionLanguage.g:2636:2: ( () otherlv_1= 'void' )
+            // InternalDataDescriptionLanguage.g:2637:3: () otherlv_1= 'void'
             {
-            // InternalDataDescriptionLanguage.g:2481:3: ()
-            // InternalDataDescriptionLanguage.g:2482:4: 
+            // InternalDataDescriptionLanguage.g:2637:3: ()
+            // InternalDataDescriptionLanguage.g:2638:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7323,7 +7734,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,45,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
@@ -7354,7 +7765,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalDataDescriptionLanguage.g:2499:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2655:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7362,8 +7773,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2499:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2500:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2655:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2656:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
@@ -7394,7 +7805,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalDataDescriptionLanguage.g:2506:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalDataDescriptionLanguage.g:2662:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7404,14 +7815,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2512:2: ( ( () otherlv_1= 'data' ) )
-            // InternalDataDescriptionLanguage.g:2513:2: ( () otherlv_1= 'data' )
+            // InternalDataDescriptionLanguage.g:2668:2: ( ( () otherlv_1= 'data' ) )
+            // InternalDataDescriptionLanguage.g:2669:2: ( () otherlv_1= 'data' )
             {
-            // InternalDataDescriptionLanguage.g:2513:2: ( () otherlv_1= 'data' )
-            // InternalDataDescriptionLanguage.g:2514:3: () otherlv_1= 'data'
+            // InternalDataDescriptionLanguage.g:2669:2: ( () otherlv_1= 'data' )
+            // InternalDataDescriptionLanguage.g:2670:3: () otherlv_1= 'data'
             {
-            // InternalDataDescriptionLanguage.g:2514:3: ()
-            // InternalDataDescriptionLanguage.g:2515:4: 
+            // InternalDataDescriptionLanguage.g:2670:3: ()
+            // InternalDataDescriptionLanguage.g:2671:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7459,7 +7870,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalDataDescriptionLanguage.g:2532:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalDataDescriptionLanguage.g:2688:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7467,8 +7878,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2532:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalDataDescriptionLanguage.g:2533:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalDataDescriptionLanguage.g:2688:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalDataDescriptionLanguage.g:2689:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
@@ -7499,7 +7910,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalDataDescriptionLanguage.g:2539:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalDataDescriptionLanguage.g:2695:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7511,23 +7922,23 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2545:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalDataDescriptionLanguage.g:2546:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalDataDescriptionLanguage.g:2701:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalDataDescriptionLanguage.g:2702:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalDataDescriptionLanguage.g:2546:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalDataDescriptionLanguage.g:2547:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:2702:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalDataDescriptionLanguage.g:2703:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,46,FOLLOW_32); if (state.failed) return current;
+            otherlv_0=(Token)match(input,50,FOLLOW_35); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
               		
             }
-            // InternalDataDescriptionLanguage.g:2551:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:2552:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:2707:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:2708:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:2552:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:2553:5: lv_elements_1_0= ruleTypeRule
+            // InternalDataDescriptionLanguage.g:2708:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:2709:5: lv_elements_1_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
@@ -7583,7 +7994,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalDataDescriptionLanguage.g:2574:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalDataDescriptionLanguage.g:2730:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -7591,8 +8002,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2574:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalDataDescriptionLanguage.g:2575:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalDataDescriptionLanguage.g:2730:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalDataDescriptionLanguage.g:2731:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getParameterRuleRule()); 
@@ -7623,7 +8034,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalDataDescriptionLanguage.g:2581:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalDataDescriptionLanguage.g:2737:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -7636,17 +8047,17 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2587:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalDataDescriptionLanguage.g:2588:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalDataDescriptionLanguage.g:2743:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalDataDescriptionLanguage.g:2744:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalDataDescriptionLanguage.g:2588:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalDataDescriptionLanguage.g:2589:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:2744:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalDataDescriptionLanguage.g:2745:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalDataDescriptionLanguage.g:2589:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalDataDescriptionLanguage.g:2590:4: (lv_type_0_0= ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:2745:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalDataDescriptionLanguage.g:2746:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalDataDescriptionLanguage.g:2590:4: (lv_type_0_0= ruleTypeRule )
-            // InternalDataDescriptionLanguage.g:2591:5: lv_type_0_0= ruleTypeRule
+            // InternalDataDescriptionLanguage.g:2746:4: (lv_type_0_0= ruleTypeRule )
+            // InternalDataDescriptionLanguage.g:2747:5: lv_type_0_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
@@ -7677,11 +8088,11 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalDataDescriptionLanguage.g:2608:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalDataDescriptionLanguage.g:2609:4: (lv_name_1_0= ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:2764:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalDataDescriptionLanguage.g:2765:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalDataDescriptionLanguage.g:2609:4: (lv_name_1_0= ruleStringOrId )
-            // InternalDataDescriptionLanguage.g:2610:5: lv_name_1_0= ruleStringOrId
+            // InternalDataDescriptionLanguage.g:2765:4: (lv_name_1_0= ruleStringOrId )
+            // InternalDataDescriptionLanguage.g:2766:5: lv_name_1_0= ruleStringOrId
             {
             if ( state.backtracking==0 ) {
 
@@ -7737,7 +8148,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalDataDescriptionLanguage.g:2631:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalDataDescriptionLanguage.g:2787:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -7745,8 +8156,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2631:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalDataDescriptionLanguage.g:2632:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalDataDescriptionLanguage.g:2787:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalDataDescriptionLanguage.g:2788:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
@@ -7777,7 +8188,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalDataDescriptionLanguage.g:2638:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalDataDescriptionLanguage.g:2794:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -7785,14 +8196,14 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2644:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalDataDescriptionLanguage.g:2645:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:2800:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalDataDescriptionLanguage.g:2801:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDataDescriptionLanguage.g:2645:2: ( ( ruleQualifiedName ) )
-            // InternalDataDescriptionLanguage.g:2646:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:2801:2: ( ( ruleQualifiedName ) )
+            // InternalDataDescriptionLanguage.g:2802:3: ( ruleQualifiedName )
             {
-            // InternalDataDescriptionLanguage.g:2646:3: ( ruleQualifiedName )
-            // InternalDataDescriptionLanguage.g:2647:4: ruleQualifiedName
+            // InternalDataDescriptionLanguage.g:2802:3: ( ruleQualifiedName )
+            // InternalDataDescriptionLanguage.g:2803:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -7849,7 +8260,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalDataDescriptionLanguage.g:2667:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalDataDescriptionLanguage.g:2823:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -7857,8 +8268,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2667:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalDataDescriptionLanguage.g:2668:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalDataDescriptionLanguage.g:2823:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalDataDescriptionLanguage.g:2824:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -7889,7 +8300,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalDataDescriptionLanguage.g:2674:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalDataDescriptionLanguage.g:2830:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7903,18 +8314,18 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2680:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalDataDescriptionLanguage.g:2681:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalDataDescriptionLanguage.g:2836:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalDataDescriptionLanguage.g:2837:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalDataDescriptionLanguage.g:2681:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalDataDescriptionLanguage.g:2682:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalDataDescriptionLanguage.g:2837:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalDataDescriptionLanguage.g:2838:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_38);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -7929,22 +8340,22 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalDataDescriptionLanguage.g:2692:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop38:
+            // InternalDataDescriptionLanguage.g:2848:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop41:
             do {
-                int alt38=2;
-                int LA38_0 = input.LA(1);
+                int alt41=2;
+                int LA41_0 = input.LA(1);
 
-                if ( (LA38_0==47) ) {
-                    alt38=1;
+                if ( (LA41_0==51) ) {
+                    alt41=1;
                 }
 
 
-                switch (alt38) {
+                switch (alt41) {
             	case 1 :
-            	    // InternalDataDescriptionLanguage.g:2693:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalDataDescriptionLanguage.g:2849:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,47,FOLLOW_11); if (state.failed) return current;
+            	    kw=(Token)match(input,51,FOLLOW_11); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				current.merge(kw);
@@ -7956,7 +8367,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_35);
+            	    pushFollow(FOLLOW_38);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -7976,7 +8387,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop38;
+            	    break loop41;
                 }
             } while (true);
 
@@ -8005,7 +8416,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalDataDescriptionLanguage.g:2713:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalDataDescriptionLanguage.g:2869:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -8013,8 +8424,8 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalDataDescriptionLanguage.g:2713:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalDataDescriptionLanguage.g:2714:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalDataDescriptionLanguage.g:2869:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalDataDescriptionLanguage.g:2870:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringOrIdRule()); 
@@ -8045,7 +8456,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalDataDescriptionLanguage.g:2720:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalDataDescriptionLanguage.g:2876:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8056,29 +8467,29 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2726:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalDataDescriptionLanguage.g:2727:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalDataDescriptionLanguage.g:2882:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalDataDescriptionLanguage.g:2883:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalDataDescriptionLanguage.g:2727:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:2883:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            if ( (LA39_0==RULE_QUOTED_ID) ) {
-                alt39=1;
+            if ( (LA42_0==RULE_QUOTED_ID) ) {
+                alt42=1;
             }
-            else if ( (LA39_0==RULE_ID) ) {
-                alt39=2;
+            else if ( (LA42_0==RULE_ID) ) {
+                alt42=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 39, 0, input);
+                    new NoViableAltException("", 42, 0, input);
 
                 throw nvae;
             }
-            switch (alt39) {
+            switch (alt42) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2728:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalDataDescriptionLanguage.g:2884:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -8095,7 +8506,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2736:3: this_ID_1= RULE_ID
+                    // InternalDataDescriptionLanguage.g:2892:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -8136,7 +8547,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleScaleType"
-    // InternalDataDescriptionLanguage.g:2747:1: ruleScaleType returns [Enumerator current=null] : ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) ) ;
+    // InternalDataDescriptionLanguage.g:2903:1: ruleScaleType returns [Enumerator current=null] : ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) ) ;
     public final Enumerator ruleScaleType() throws RecognitionException {
         Enumerator current = null;
 
@@ -8149,48 +8560,48 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2753:2: ( ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) ) )
-            // InternalDataDescriptionLanguage.g:2754:2: ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) )
+            // InternalDataDescriptionLanguage.g:2909:2: ( ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) ) )
+            // InternalDataDescriptionLanguage.g:2910:2: ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) )
             {
-            // InternalDataDescriptionLanguage.g:2754:2: ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) )
-            int alt40=4;
+            // InternalDataDescriptionLanguage.g:2910:2: ( (enumLiteral_0= 'nominal' ) | (enumLiteral_1= 'ordinal' ) | (enumLiteral_2= 'cardinal' ) | (enumLiteral_3= 'quotient' ) )
+            int alt43=4;
             switch ( input.LA(1) ) {
-            case 48:
+            case 52:
                 {
-                alt40=1;
+                alt43=1;
                 }
                 break;
-            case 49:
+            case 53:
                 {
-                alt40=2;
+                alt43=2;
                 }
                 break;
-            case 50:
+            case 54:
                 {
-                alt40=3;
+                alt43=3;
                 }
                 break;
-            case 51:
+            case 55:
                 {
-                alt40=4;
+                alt43=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 43, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt40) {
+            switch (alt43) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2755:3: (enumLiteral_0= 'nominal' )
+                    // InternalDataDescriptionLanguage.g:2911:3: (enumLiteral_0= 'nominal' )
                     {
-                    // InternalDataDescriptionLanguage.g:2755:3: (enumLiteral_0= 'nominal' )
-                    // InternalDataDescriptionLanguage.g:2756:4: enumLiteral_0= 'nominal'
+                    // InternalDataDescriptionLanguage.g:2911:3: (enumLiteral_0= 'nominal' )
+                    // InternalDataDescriptionLanguage.g:2912:4: enumLiteral_0= 'nominal'
                     {
-                    enumLiteral_0=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getScaleTypeAccess().getNominalEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8204,12 +8615,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2763:3: (enumLiteral_1= 'ordinal' )
+                    // InternalDataDescriptionLanguage.g:2919:3: (enumLiteral_1= 'ordinal' )
                     {
-                    // InternalDataDescriptionLanguage.g:2763:3: (enumLiteral_1= 'ordinal' )
-                    // InternalDataDescriptionLanguage.g:2764:4: enumLiteral_1= 'ordinal'
+                    // InternalDataDescriptionLanguage.g:2919:3: (enumLiteral_1= 'ordinal' )
+                    // InternalDataDescriptionLanguage.g:2920:4: enumLiteral_1= 'ordinal'
                     {
-                    enumLiteral_1=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getScaleTypeAccess().getOrdinalEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8223,12 +8634,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2771:3: (enumLiteral_2= 'cardinal' )
+                    // InternalDataDescriptionLanguage.g:2927:3: (enumLiteral_2= 'cardinal' )
                     {
-                    // InternalDataDescriptionLanguage.g:2771:3: (enumLiteral_2= 'cardinal' )
-                    // InternalDataDescriptionLanguage.g:2772:4: enumLiteral_2= 'cardinal'
+                    // InternalDataDescriptionLanguage.g:2927:3: (enumLiteral_2= 'cardinal' )
+                    // InternalDataDescriptionLanguage.g:2928:4: enumLiteral_2= 'cardinal'
                     {
-                    enumLiteral_2=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getScaleTypeAccess().getCardinalEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8242,12 +8653,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:2779:3: (enumLiteral_3= 'quotient' )
+                    // InternalDataDescriptionLanguage.g:2935:3: (enumLiteral_3= 'quotient' )
                     {
-                    // InternalDataDescriptionLanguage.g:2779:3: (enumLiteral_3= 'quotient' )
-                    // InternalDataDescriptionLanguage.g:2780:4: enumLiteral_3= 'quotient'
+                    // InternalDataDescriptionLanguage.g:2935:3: (enumLiteral_3= 'quotient' )
+                    // InternalDataDescriptionLanguage.g:2936:4: enumLiteral_3= 'quotient'
                     {
-                    enumLiteral_3=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getScaleTypeAccess().getQuotientEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -8285,7 +8696,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleRepresentationType"
-    // InternalDataDescriptionLanguage.g:2790:1: ruleRepresentationType returns [Enumerator current=null] : ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) ) ;
+    // InternalDataDescriptionLanguage.g:2946:1: ruleRepresentationType returns [Enumerator current=null] : ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) ) ;
     public final Enumerator ruleRepresentationType() throws RecognitionException {
         Enumerator current = null;
 
@@ -8298,48 +8709,48 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2796:2: ( ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) ) )
-            // InternalDataDescriptionLanguage.g:2797:2: ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) )
+            // InternalDataDescriptionLanguage.g:2952:2: ( ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) ) )
+            // InternalDataDescriptionLanguage.g:2953:2: ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) )
             {
-            // InternalDataDescriptionLanguage.g:2797:2: ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) )
-            int alt41=4;
+            // InternalDataDescriptionLanguage.g:2953:2: ( (enumLiteral_0= 'real' ) | (enumLiteral_1= 'integer' ) | (enumLiteral_2= 'boolean' ) | (enumLiteral_3= 'string' ) )
+            int alt44=4;
             switch ( input.LA(1) ) {
-            case 52:
+            case 56:
                 {
-                alt41=1;
+                alt44=1;
                 }
                 break;
-            case 53:
+            case 57:
                 {
-                alt41=2;
+                alt44=2;
                 }
                 break;
-            case 44:
+            case 48:
                 {
-                alt41=3;
+                alt44=3;
                 }
                 break;
-            case 40:
+            case 44:
                 {
-                alt41=4;
+                alt44=4;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 41, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt41) {
+            switch (alt44) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2798:3: (enumLiteral_0= 'real' )
+                    // InternalDataDescriptionLanguage.g:2954:3: (enumLiteral_0= 'real' )
                     {
-                    // InternalDataDescriptionLanguage.g:2798:3: (enumLiteral_0= 'real' )
-                    // InternalDataDescriptionLanguage.g:2799:4: enumLiteral_0= 'real'
+                    // InternalDataDescriptionLanguage.g:2954:3: (enumLiteral_0= 'real' )
+                    // InternalDataDescriptionLanguage.g:2955:4: enumLiteral_0= 'real'
                     {
-                    enumLiteral_0=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRepresentationTypeAccess().getRealEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8353,12 +8764,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2806:3: (enumLiteral_1= 'integer' )
+                    // InternalDataDescriptionLanguage.g:2962:3: (enumLiteral_1= 'integer' )
                     {
-                    // InternalDataDescriptionLanguage.g:2806:3: (enumLiteral_1= 'integer' )
-                    // InternalDataDescriptionLanguage.g:2807:4: enumLiteral_1= 'integer'
+                    // InternalDataDescriptionLanguage.g:2962:3: (enumLiteral_1= 'integer' )
+                    // InternalDataDescriptionLanguage.g:2963:4: enumLiteral_1= 'integer'
                     {
-                    enumLiteral_1=(Token)match(input,53,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRepresentationTypeAccess().getIntegerEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8372,12 +8783,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2814:3: (enumLiteral_2= 'boolean' )
+                    // InternalDataDescriptionLanguage.g:2970:3: (enumLiteral_2= 'boolean' )
                     {
-                    // InternalDataDescriptionLanguage.g:2814:3: (enumLiteral_2= 'boolean' )
-                    // InternalDataDescriptionLanguage.g:2815:4: enumLiteral_2= 'boolean'
+                    // InternalDataDescriptionLanguage.g:2970:3: (enumLiteral_2= 'boolean' )
+                    // InternalDataDescriptionLanguage.g:2971:4: enumLiteral_2= 'boolean'
                     {
-                    enumLiteral_2=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRepresentationTypeAccess().getBooleanEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8391,12 +8802,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:2822:3: (enumLiteral_3= 'string' )
+                    // InternalDataDescriptionLanguage.g:2978:3: (enumLiteral_3= 'string' )
                     {
-                    // InternalDataDescriptionLanguage.g:2822:3: (enumLiteral_3= 'string' )
-                    // InternalDataDescriptionLanguage.g:2823:4: enumLiteral_3= 'string'
+                    // InternalDataDescriptionLanguage.g:2978:3: (enumLiteral_3= 'string' )
+                    // InternalDataDescriptionLanguage.g:2979:4: enumLiteral_3= 'string'
                     {
-                    enumLiteral_3=(Token)match(input,40,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,44,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getRepresentationTypeAccess().getStringEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -8434,7 +8845,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalDataDescriptionLanguage.g:2833:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalDataDescriptionLanguage.g:2989:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8449,58 +8860,58 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2839:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalDataDescriptionLanguage.g:2840:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalDataDescriptionLanguage.g:2995:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalDataDescriptionLanguage.g:2996:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalDataDescriptionLanguage.g:2840:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt42=6;
+            // InternalDataDescriptionLanguage.g:2996:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt45=6;
             switch ( input.LA(1) ) {
-            case 54:
+            case 58:
                 {
-                alt42=1;
+                alt45=1;
                 }
                 break;
-            case 55:
+            case 59:
                 {
-                alt42=2;
+                alt45=2;
                 }
                 break;
-            case 56:
+            case 60:
                 {
-                alt42=3;
+                alt45=3;
                 }
                 break;
-            case 57:
+            case 61:
                 {
-                alt42=4;
+                alt45=4;
                 }
                 break;
-            case 58:
+            case 62:
                 {
-                alt42=5;
+                alt45=5;
                 }
                 break;
-            case 59:
+            case 63:
                 {
-                alt42=6;
+                alt45=6;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 45, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt42) {
+            switch (alt45) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2841:3: (enumLiteral_0= '>=' )
+                    // InternalDataDescriptionLanguage.g:2997:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalDataDescriptionLanguage.g:2841:3: (enumLiteral_0= '>=' )
-                    // InternalDataDescriptionLanguage.g:2842:4: enumLiteral_0= '>='
+                    // InternalDataDescriptionLanguage.g:2997:3: (enumLiteral_0= '>=' )
+                    // InternalDataDescriptionLanguage.g:2998:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8514,12 +8925,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2849:3: (enumLiteral_1= '>' )
+                    // InternalDataDescriptionLanguage.g:3005:3: (enumLiteral_1= '>' )
                     {
-                    // InternalDataDescriptionLanguage.g:2849:3: (enumLiteral_1= '>' )
-                    // InternalDataDescriptionLanguage.g:2850:4: enumLiteral_1= '>'
+                    // InternalDataDescriptionLanguage.g:3005:3: (enumLiteral_1= '>' )
+                    // InternalDataDescriptionLanguage.g:3006:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8533,12 +8944,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2857:3: (enumLiteral_2= '=' )
+                    // InternalDataDescriptionLanguage.g:3013:3: (enumLiteral_2= '=' )
                     {
-                    // InternalDataDescriptionLanguage.g:2857:3: (enumLiteral_2= '=' )
-                    // InternalDataDescriptionLanguage.g:2858:4: enumLiteral_2= '='
+                    // InternalDataDescriptionLanguage.g:3013:3: (enumLiteral_2= '=' )
+                    // InternalDataDescriptionLanguage.g:3014:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,56,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8552,12 +8963,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:2865:3: (enumLiteral_3= '!=' )
+                    // InternalDataDescriptionLanguage.g:3021:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalDataDescriptionLanguage.g:2865:3: (enumLiteral_3= '!=' )
-                    // InternalDataDescriptionLanguage.g:2866:4: enumLiteral_3= '!='
+                    // InternalDataDescriptionLanguage.g:3021:3: (enumLiteral_3= '!=' )
+                    // InternalDataDescriptionLanguage.g:3022:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -8571,12 +8982,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:2873:3: (enumLiteral_4= '<' )
+                    // InternalDataDescriptionLanguage.g:3029:3: (enumLiteral_4= '<' )
                     {
-                    // InternalDataDescriptionLanguage.g:2873:3: (enumLiteral_4= '<' )
-                    // InternalDataDescriptionLanguage.g:2874:4: enumLiteral_4= '<'
+                    // InternalDataDescriptionLanguage.g:3029:3: (enumLiteral_4= '<' )
+                    // InternalDataDescriptionLanguage.g:3030:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -8590,12 +9001,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:2881:3: (enumLiteral_5= '<=' )
+                    // InternalDataDescriptionLanguage.g:3037:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalDataDescriptionLanguage.g:2881:3: (enumLiteral_5= '<=' )
-                    // InternalDataDescriptionLanguage.g:2882:4: enumLiteral_5= '<='
+                    // InternalDataDescriptionLanguage.g:3037:3: (enumLiteral_5= '<=' )
+                    // InternalDataDescriptionLanguage.g:3038:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -8633,7 +9044,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalDataDescriptionLanguage.g:2892:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalDataDescriptionLanguage.g:3048:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8644,34 +9055,34 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2898:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalDataDescriptionLanguage.g:2899:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalDataDescriptionLanguage.g:3054:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalDataDescriptionLanguage.g:3055:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalDataDescriptionLanguage.g:2899:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            // InternalDataDescriptionLanguage.g:3055:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt46=2;
+            int LA46_0 = input.LA(1);
 
-            if ( (LA43_0==60) ) {
-                alt43=1;
+            if ( (LA46_0==64) ) {
+                alt46=1;
             }
-            else if ( (LA43_0==61) ) {
-                alt43=2;
+            else if ( (LA46_0==65) ) {
+                alt46=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 43, 0, input);
+                    new NoViableAltException("", 46, 0, input);
 
                 throw nvae;
             }
-            switch (alt43) {
+            switch (alt46) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2900:3: (enumLiteral_0= '+' )
+                    // InternalDataDescriptionLanguage.g:3056:3: (enumLiteral_0= '+' )
                     {
-                    // InternalDataDescriptionLanguage.g:2900:3: (enumLiteral_0= '+' )
-                    // InternalDataDescriptionLanguage.g:2901:4: enumLiteral_0= '+'
+                    // InternalDataDescriptionLanguage.g:3056:3: (enumLiteral_0= '+' )
+                    // InternalDataDescriptionLanguage.g:3057:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8685,12 +9096,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2908:3: (enumLiteral_1= '-' )
+                    // InternalDataDescriptionLanguage.g:3064:3: (enumLiteral_1= '-' )
                     {
-                    // InternalDataDescriptionLanguage.g:2908:3: (enumLiteral_1= '-' )
-                    // InternalDataDescriptionLanguage.g:2909:4: enumLiteral_1= '-'
+                    // InternalDataDescriptionLanguage.g:3064:3: (enumLiteral_1= '-' )
+                    // InternalDataDescriptionLanguage.g:3065:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8728,7 +9139,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalDataDescriptionLanguage.g:2919:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalDataDescriptionLanguage.g:3075:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8740,43 +9151,43 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2925:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalDataDescriptionLanguage.g:2926:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalDataDescriptionLanguage.g:3081:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalDataDescriptionLanguage.g:3082:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalDataDescriptionLanguage.g:2926:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt44=3;
+            // InternalDataDescriptionLanguage.g:3082:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt47=3;
             switch ( input.LA(1) ) {
-            case 62:
+            case 66:
                 {
-                alt44=1;
+                alt47=1;
                 }
                 break;
-            case 63:
+            case 67:
                 {
-                alt44=2;
+                alt47=2;
                 }
                 break;
-            case 64:
+            case 68:
                 {
-                alt44=3;
+                alt47=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 44, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt44) {
+            switch (alt47) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2927:3: (enumLiteral_0= '*' )
+                    // InternalDataDescriptionLanguage.g:3083:3: (enumLiteral_0= '*' )
                     {
-                    // InternalDataDescriptionLanguage.g:2927:3: (enumLiteral_0= '*' )
-                    // InternalDataDescriptionLanguage.g:2928:4: enumLiteral_0= '*'
+                    // InternalDataDescriptionLanguage.g:3083:3: (enumLiteral_0= '*' )
+                    // InternalDataDescriptionLanguage.g:3084:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -8790,12 +9201,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2935:3: (enumLiteral_1= '/' )
+                    // InternalDataDescriptionLanguage.g:3091:3: (enumLiteral_1= '/' )
                     {
-                    // InternalDataDescriptionLanguage.g:2935:3: (enumLiteral_1= '/' )
-                    // InternalDataDescriptionLanguage.g:2936:4: enumLiteral_1= '/'
+                    // InternalDataDescriptionLanguage.g:3091:3: (enumLiteral_1= '/' )
+                    // InternalDataDescriptionLanguage.g:3092:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -8809,12 +9220,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2943:3: (enumLiteral_2= '%' )
+                    // InternalDataDescriptionLanguage.g:3099:3: (enumLiteral_2= '%' )
                     {
-                    // InternalDataDescriptionLanguage.g:2943:3: (enumLiteral_2= '%' )
-                    // InternalDataDescriptionLanguage.g:2944:4: enumLiteral_2= '%'
+                    // InternalDataDescriptionLanguage.g:3099:3: (enumLiteral_2= '%' )
+                    // InternalDataDescriptionLanguage.g:3100:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -8852,7 +9263,7 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalDataDescriptionLanguage.g:2954:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalDataDescriptionLanguage.g:3110:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8881,128 +9292,128 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalDataDescriptionLanguage.g:2960:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalDataDescriptionLanguage.g:2961:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalDataDescriptionLanguage.g:3116:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalDataDescriptionLanguage.g:3117:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalDataDescriptionLanguage.g:2961:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt45=20;
+            // InternalDataDescriptionLanguage.g:3117:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt48=20;
             switch ( input.LA(1) ) {
-            case 65:
-                {
-                alt45=1;
-                }
-                break;
-            case 66:
-                {
-                alt45=2;
-                }
-                break;
-            case 67:
-                {
-                alt45=3;
-                }
-                break;
-            case 68:
-                {
-                alt45=4;
-                }
-                break;
             case 69:
                 {
-                alt45=5;
+                alt48=1;
                 }
                 break;
             case 70:
                 {
-                alt45=6;
+                alt48=2;
                 }
                 break;
             case 71:
                 {
-                alt45=7;
+                alt48=3;
                 }
                 break;
             case 72:
                 {
-                alt45=8;
+                alt48=4;
                 }
                 break;
             case 73:
                 {
-                alt45=9;
+                alt48=5;
                 }
                 break;
             case 74:
                 {
-                alt45=10;
+                alt48=6;
                 }
                 break;
             case 75:
                 {
-                alt45=11;
+                alt48=7;
                 }
                 break;
             case 76:
                 {
-                alt45=12;
+                alt48=8;
                 }
                 break;
             case 77:
                 {
-                alt45=13;
+                alt48=9;
                 }
                 break;
             case 78:
                 {
-                alt45=14;
+                alt48=10;
                 }
                 break;
             case 79:
                 {
-                alt45=15;
+                alt48=11;
                 }
                 break;
             case 80:
                 {
-                alt45=16;
+                alt48=12;
                 }
                 break;
             case 81:
                 {
-                alt45=17;
+                alt48=13;
                 }
                 break;
             case 82:
                 {
-                alt45=18;
+                alt48=14;
                 }
                 break;
             case 83:
                 {
-                alt45=19;
+                alt48=15;
                 }
                 break;
             case 84:
                 {
-                alt45=20;
+                alt48=16;
+                }
+                break;
+            case 85:
+                {
+                alt48=17;
+                }
+                break;
+            case 86:
+                {
+                alt48=18;
+                }
+                break;
+            case 87:
+                {
+                alt48=19;
+                }
+                break;
+            case 88:
+                {
+                alt48=20;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt45) {
+            switch (alt48) {
                 case 1 :
-                    // InternalDataDescriptionLanguage.g:2962:3: (enumLiteral_0= 'Y' )
+                    // InternalDataDescriptionLanguage.g:3118:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalDataDescriptionLanguage.g:2962:3: (enumLiteral_0= 'Y' )
-                    // InternalDataDescriptionLanguage.g:2963:4: enumLiteral_0= 'Y'
+                    // InternalDataDescriptionLanguage.g:3118:3: (enumLiteral_0= 'Y' )
+                    // InternalDataDescriptionLanguage.g:3119:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -9016,12 +9427,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalDataDescriptionLanguage.g:2970:3: (enumLiteral_1= 'Z' )
+                    // InternalDataDescriptionLanguage.g:3126:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalDataDescriptionLanguage.g:2970:3: (enumLiteral_1= 'Z' )
-                    // InternalDataDescriptionLanguage.g:2971:4: enumLiteral_1= 'Z'
+                    // InternalDataDescriptionLanguage.g:3126:3: (enumLiteral_1= 'Z' )
+                    // InternalDataDescriptionLanguage.g:3127:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -9035,12 +9446,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalDataDescriptionLanguage.g:2978:3: (enumLiteral_2= 'E' )
+                    // InternalDataDescriptionLanguage.g:3134:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalDataDescriptionLanguage.g:2978:3: (enumLiteral_2= 'E' )
-                    // InternalDataDescriptionLanguage.g:2979:4: enumLiteral_2= 'E'
+                    // InternalDataDescriptionLanguage.g:3134:3: (enumLiteral_2= 'E' )
+                    // InternalDataDescriptionLanguage.g:3135:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -9054,12 +9465,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalDataDescriptionLanguage.g:2986:3: (enumLiteral_3= 'P' )
+                    // InternalDataDescriptionLanguage.g:3142:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalDataDescriptionLanguage.g:2986:3: (enumLiteral_3= 'P' )
-                    // InternalDataDescriptionLanguage.g:2987:4: enumLiteral_3= 'P'
+                    // InternalDataDescriptionLanguage.g:3142:3: (enumLiteral_3= 'P' )
+                    // InternalDataDescriptionLanguage.g:3143:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -9073,12 +9484,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalDataDescriptionLanguage.g:2994:3: (enumLiteral_4= 'T' )
+                    // InternalDataDescriptionLanguage.g:3150:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalDataDescriptionLanguage.g:2994:3: (enumLiteral_4= 'T' )
-                    // InternalDataDescriptionLanguage.g:2995:4: enumLiteral_4= 'T'
+                    // InternalDataDescriptionLanguage.g:3150:3: (enumLiteral_4= 'T' )
+                    // InternalDataDescriptionLanguage.g:3151:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -9092,12 +9503,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalDataDescriptionLanguage.g:3002:3: (enumLiteral_5= 'G' )
+                    // InternalDataDescriptionLanguage.g:3158:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalDataDescriptionLanguage.g:3002:3: (enumLiteral_5= 'G' )
-                    // InternalDataDescriptionLanguage.g:3003:4: enumLiteral_5= 'G'
+                    // InternalDataDescriptionLanguage.g:3158:3: (enumLiteral_5= 'G' )
+                    // InternalDataDescriptionLanguage.g:3159:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -9111,12 +9522,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 7 :
-                    // InternalDataDescriptionLanguage.g:3010:3: (enumLiteral_6= 'M' )
+                    // InternalDataDescriptionLanguage.g:3166:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalDataDescriptionLanguage.g:3010:3: (enumLiteral_6= 'M' )
-                    // InternalDataDescriptionLanguage.g:3011:4: enumLiteral_6= 'M'
+                    // InternalDataDescriptionLanguage.g:3166:3: (enumLiteral_6= 'M' )
+                    // InternalDataDescriptionLanguage.g:3167:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -9130,12 +9541,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 8 :
-                    // InternalDataDescriptionLanguage.g:3018:3: (enumLiteral_7= 'k' )
+                    // InternalDataDescriptionLanguage.g:3174:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalDataDescriptionLanguage.g:3018:3: (enumLiteral_7= 'k' )
-                    // InternalDataDescriptionLanguage.g:3019:4: enumLiteral_7= 'k'
+                    // InternalDataDescriptionLanguage.g:3174:3: (enumLiteral_7= 'k' )
+                    // InternalDataDescriptionLanguage.g:3175:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_7=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
@@ -9149,12 +9560,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 9 :
-                    // InternalDataDescriptionLanguage.g:3026:3: (enumLiteral_8= 'h' )
+                    // InternalDataDescriptionLanguage.g:3182:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalDataDescriptionLanguage.g:3026:3: (enumLiteral_8= 'h' )
-                    // InternalDataDescriptionLanguage.g:3027:4: enumLiteral_8= 'h'
+                    // InternalDataDescriptionLanguage.g:3182:3: (enumLiteral_8= 'h' )
+                    // InternalDataDescriptionLanguage.g:3183:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_8=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
@@ -9168,12 +9579,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 10 :
-                    // InternalDataDescriptionLanguage.g:3034:3: (enumLiteral_9= 'da' )
+                    // InternalDataDescriptionLanguage.g:3190:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalDataDescriptionLanguage.g:3034:3: (enumLiteral_9= 'da' )
-                    // InternalDataDescriptionLanguage.g:3035:4: enumLiteral_9= 'da'
+                    // InternalDataDescriptionLanguage.g:3190:3: (enumLiteral_9= 'da' )
+                    // InternalDataDescriptionLanguage.g:3191:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_9=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
@@ -9187,12 +9598,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 11 :
-                    // InternalDataDescriptionLanguage.g:3042:3: (enumLiteral_10= 'd' )
+                    // InternalDataDescriptionLanguage.g:3198:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalDataDescriptionLanguage.g:3042:3: (enumLiteral_10= 'd' )
-                    // InternalDataDescriptionLanguage.g:3043:4: enumLiteral_10= 'd'
+                    // InternalDataDescriptionLanguage.g:3198:3: (enumLiteral_10= 'd' )
+                    // InternalDataDescriptionLanguage.g:3199:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_10=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
@@ -9206,12 +9617,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 12 :
-                    // InternalDataDescriptionLanguage.g:3050:3: (enumLiteral_11= 'c' )
+                    // InternalDataDescriptionLanguage.g:3206:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalDataDescriptionLanguage.g:3050:3: (enumLiteral_11= 'c' )
-                    // InternalDataDescriptionLanguage.g:3051:4: enumLiteral_11= 'c'
+                    // InternalDataDescriptionLanguage.g:3206:3: (enumLiteral_11= 'c' )
+                    // InternalDataDescriptionLanguage.g:3207:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_11=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
@@ -9225,12 +9636,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 13 :
-                    // InternalDataDescriptionLanguage.g:3058:3: (enumLiteral_12= 'm' )
+                    // InternalDataDescriptionLanguage.g:3214:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalDataDescriptionLanguage.g:3058:3: (enumLiteral_12= 'm' )
-                    // InternalDataDescriptionLanguage.g:3059:4: enumLiteral_12= 'm'
+                    // InternalDataDescriptionLanguage.g:3214:3: (enumLiteral_12= 'm' )
+                    // InternalDataDescriptionLanguage.g:3215:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_12=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
@@ -9244,12 +9655,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 14 :
-                    // InternalDataDescriptionLanguage.g:3066:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalDataDescriptionLanguage.g:3222:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalDataDescriptionLanguage.g:3066:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalDataDescriptionLanguage.g:3067:4: enumLiteral_13= '\\u00B5'
+                    // InternalDataDescriptionLanguage.g:3222:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalDataDescriptionLanguage.g:3223:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_13=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
@@ -9263,12 +9674,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 15 :
-                    // InternalDataDescriptionLanguage.g:3074:3: (enumLiteral_14= 'n' )
+                    // InternalDataDescriptionLanguage.g:3230:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalDataDescriptionLanguage.g:3074:3: (enumLiteral_14= 'n' )
-                    // InternalDataDescriptionLanguage.g:3075:4: enumLiteral_14= 'n'
+                    // InternalDataDescriptionLanguage.g:3230:3: (enumLiteral_14= 'n' )
+                    // InternalDataDescriptionLanguage.g:3231:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_14=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
@@ -9282,12 +9693,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 16 :
-                    // InternalDataDescriptionLanguage.g:3082:3: (enumLiteral_15= 'p' )
+                    // InternalDataDescriptionLanguage.g:3238:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalDataDescriptionLanguage.g:3082:3: (enumLiteral_15= 'p' )
-                    // InternalDataDescriptionLanguage.g:3083:4: enumLiteral_15= 'p'
+                    // InternalDataDescriptionLanguage.g:3238:3: (enumLiteral_15= 'p' )
+                    // InternalDataDescriptionLanguage.g:3239:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_15=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
@@ -9301,12 +9712,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 17 :
-                    // InternalDataDescriptionLanguage.g:3090:3: (enumLiteral_16= 'f' )
+                    // InternalDataDescriptionLanguage.g:3246:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalDataDescriptionLanguage.g:3090:3: (enumLiteral_16= 'f' )
-                    // InternalDataDescriptionLanguage.g:3091:4: enumLiteral_16= 'f'
+                    // InternalDataDescriptionLanguage.g:3246:3: (enumLiteral_16= 'f' )
+                    // InternalDataDescriptionLanguage.g:3247:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_16=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
@@ -9320,12 +9731,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 18 :
-                    // InternalDataDescriptionLanguage.g:3098:3: (enumLiteral_17= 'a' )
+                    // InternalDataDescriptionLanguage.g:3254:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalDataDescriptionLanguage.g:3098:3: (enumLiteral_17= 'a' )
-                    // InternalDataDescriptionLanguage.g:3099:4: enumLiteral_17= 'a'
+                    // InternalDataDescriptionLanguage.g:3254:3: (enumLiteral_17= 'a' )
+                    // InternalDataDescriptionLanguage.g:3255:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_17=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
@@ -9339,12 +9750,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 19 :
-                    // InternalDataDescriptionLanguage.g:3106:3: (enumLiteral_18= 'z' )
+                    // InternalDataDescriptionLanguage.g:3262:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalDataDescriptionLanguage.g:3106:3: (enumLiteral_18= 'z' )
-                    // InternalDataDescriptionLanguage.g:3107:4: enumLiteral_18= 'z'
+                    // InternalDataDescriptionLanguage.g:3262:3: (enumLiteral_18= 'z' )
+                    // InternalDataDescriptionLanguage.g:3263:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_18=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
@@ -9358,12 +9769,12 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 20 :
-                    // InternalDataDescriptionLanguage.g:3114:3: (enumLiteral_19= 'y' )
+                    // InternalDataDescriptionLanguage.g:3270:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalDataDescriptionLanguage.g:3114:3: (enumLiteral_19= 'y' )
-                    // InternalDataDescriptionLanguage.g:3115:4: enumLiteral_19= 'y'
+                    // InternalDataDescriptionLanguage.g:3270:3: (enumLiteral_19= 'y' )
+                    // InternalDataDescriptionLanguage.g:3271:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_19=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
@@ -9399,13 +9810,89 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
     }
     // $ANTLR end "ruleFactorRule"
 
+    // $ANTLR start synpred17_InternalDataDescriptionLanguage
+    public final void synpred17_InternalDataDescriptionLanguage_fragment() throws RecognitionException {   
+        EObject this_ConstantReferenceRule_0 = null;
+
+
+        // InternalDataDescriptionLanguage.g:711:3: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+        // InternalDataDescriptionLanguage.g:711:3: this_ConstantReferenceRule_0= ruleConstantReferenceRule
+        {
+        if ( state.backtracking==0 ) {
+
+          			/* */
+          		
+        }
+        pushFollow(FOLLOW_2);
+        this_ConstantReferenceRule_0=ruleConstantReferenceRule();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred17_InternalDataDescriptionLanguage
+
+    // $ANTLR start synpred18_InternalDataDescriptionLanguage
+    public final void synpred18_InternalDataDescriptionLanguage_fragment() throws RecognitionException {   
+        EObject this_DataReferenceRule_1 = null;
+
+
+        // InternalDataDescriptionLanguage.g:723:3: (this_DataReferenceRule_1= ruleDataReferenceRule )
+        // InternalDataDescriptionLanguage.g:723:3: this_DataReferenceRule_1= ruleDataReferenceRule
+        {
+        if ( state.backtracking==0 ) {
+
+          			/* */
+          		
+        }
+        pushFollow(FOLLOW_2);
+        this_DataReferenceRule_1=ruleDataReferenceRule();
+
+        state._fsp--;
+        if (state.failed) return ;
+
+        }
+    }
+    // $ANTLR end synpred18_InternalDataDescriptionLanguage
+
     // Delegated rules
 
+    public final boolean synpred18_InternalDataDescriptionLanguage() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred18_InternalDataDescriptionLanguage_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 synpred17_InternalDataDescriptionLanguage() {
+        state.backtracking++;
+        int start = input.mark();
+        try {
+            synpred17_InternalDataDescriptionLanguage_fragment(); // can never throw exception
+        } catch (RecognitionException re) {
+            System.err.println("impossible: "+re);
+        }
+        boolean success = !state.failed;
+        input.rewind(start);
+        state.backtracking--;
+        state.failed=false;
+        return success;
+    }
+
 
     protected DFA11 dfa11 = new DFA11(this);
+    protected DFA27 dfa27 = new DFA27(this);
     static final String dfa_1s = "\12\uffff";
-    static final String dfa_2s = "\1\50\4\21\1\uffff\1\7\2\24\1\uffff";
-    static final String dfa_3s = "\1\65\4\21\1\uffff\1\10\2\30\1\uffff";
+    static final String dfa_2s = "\1\54\4\21\1\uffff\1\7\2\24\1\uffff";
+    static final String dfa_3s = "\1\71\4\21\1\uffff\1\10\2\30\1\uffff";
     static final String dfa_4s = "\5\uffff\1\2\3\uffff\1\1";
     static final String dfa_5s = "\12\uffff}>";
     static final String[] dfa_6s = {
@@ -9445,15 +9932,54 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
             return "392:2: (this_TypedDataDescriptionRule_0= ruleTypedDataDescriptionRule | this_UntypedDataDescriptionRule_1= ruleUntypedDataDescriptionRule )";
         }
     }
+    static final String dfa_7s = "\1\uffff\2\5\5\uffff\2\5";
+    static final String dfa_8s = "\1\4\2\24\3\uffff\1\7\1\uffff\2\24";
+    static final String dfa_9s = "\1\43\2\104\3\uffff\1\10\1\uffff\2\104";
+    static final String dfa_10s = "\3\uffff\1\2\1\3\1\4\1\uffff\1\1\2\uffff";
+    static final String[] dfa_11s = {
+            "\3\3\1\1\1\2\20\uffff\1\5\5\uffff\1\4\2\uffff\2\3",
+            "\1\5\5\uffff\3\5\1\uffff\1\5\1\7\2\5\21\uffff\1\6\6\uffff\13\5",
+            "\1\5\5\uffff\3\5\1\uffff\1\5\1\7\2\5\21\uffff\1\6\6\uffff\13\5",
+            "",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "\1\5\5\uffff\3\5\1\uffff\1\5\1\7\2\5\21\uffff\1\6\6\uffff\13\5",
+            "\1\5\5\uffff\3\5\1\uffff\1\5\1\7\2\5\21\uffff\1\6\6\uffff\13\5"
+    };
+    static final short[] dfa_7 = DFA.unpackEncodedString(dfa_7s);
+    static final char[] dfa_8 = DFA.unpackEncodedStringToUnsignedChars(dfa_8s);
+    static final char[] dfa_9 = DFA.unpackEncodedStringToUnsignedChars(dfa_9s);
+    static final short[] dfa_10 = DFA.unpackEncodedString(dfa_10s);
+    static final short[][] dfa_11 = unpackEncodedStringArray(dfa_11s);
+
+    class DFA27 extends DFA {
+
+        public DFA27(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 27;
+            this.eot = dfa_1;
+            this.eof = dfa_7;
+            this.min = dfa_8;
+            this.max = dfa_9;
+            this.accept = dfa_10;
+            this.special = dfa_5;
+            this.transition = dfa_11;
+        }
+        public String getDescription() {
+            return "1492:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     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[]{0x00000000000E8002L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x000F000000060002L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x003F110000040002L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x3000000CA20001F2L});
+    public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x00F0000000060002L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x03F1100000040002L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000CA20001F2L,0x0000000000000003L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000000010L});
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000100000L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000200000L});
@@ -9461,26 +9987,29 @@ public class InternalDataDescriptionLanguageParser extends AbstractInternalAntlr
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000000D00000L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000000900000L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x3000000CA21001F0L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000CA21001F0L,0x0000000000000003L});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000020000L});
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000001000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0030110000000000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0301100000000000L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000004000002L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x3000000CA20001F0L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000CA20001F0L,0x0000000000000003L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000008000002L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000010000002L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0FC0000000000002L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x3000000000000002L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0xC000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0xFC00000000000002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000003L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000002L,0x000000000000001CL});
     public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000040000002L});
     public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000100000000L});
     public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000080000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x3000000DA20001F0L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000DA20001F0L,0x0000000000000003L});
     public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000300000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000002L,0x00000000001FFFFEL});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00007F6000020000L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000001000100000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000008000000002L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000800000000002L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000002L,0x0000000001FFFFE0L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000006000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000008000000180L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0007F60000020000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000010000100000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000080000000002L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0008000000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/serializer/DataDescriptionLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/serializer/DataDescriptionLanguageSemanticSequencer.java
index 96474a71..08802874 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/serializer/DataDescriptionLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/serializer/DataDescriptionLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -94,6 +96,12 @@ public class DataDescriptionLanguageSemanticSequencer extends BaseLanguageSemant
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/services/DataDescriptionLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/services/DataDescriptionLanguageGrammarAccess.java
index be9b2484..c56a3ec4 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/services/DataDescriptionLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src-gen/de/evoal/languages/model/ddl/dsl/services/DataDescriptionLanguageGrammarAccess.java
@@ -425,23 +425,27 @@ public class DataDescriptionLanguageGrammarAccess extends AbstractElementFinder.
 	public class ValueReferenceRuleElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.ddl.dsl.DataDescriptionLanguage.ValueReferenceRule");
 		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
-		private final RuleCall cDataReferenceRuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
-		private final RuleCall cSelfReferenceRuleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cConstantReferenceRuleParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
+		private final RuleCall cDataReferenceRuleParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
+		private final RuleCall cSelfReferenceRuleParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
 		
 		//@Override
 		//ValueReferenceRule returns base::ValueReference:
-		//    DataReferenceRule | SelfReferenceRule
+		//    ConstantReferenceRule | DataReferenceRule | SelfReferenceRule
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//DataReferenceRule | SelfReferenceRule
+		//ConstantReferenceRule | DataReferenceRule | SelfReferenceRule
 		public Alternatives getAlternatives() { return cAlternatives; }
 		
+		//ConstantReferenceRule
+		public RuleCall getConstantReferenceRuleParserRuleCall_0() { return cConstantReferenceRuleParserRuleCall_0; }
+		
 		//DataReferenceRule
-		public RuleCall getDataReferenceRuleParserRuleCall_0() { return cDataReferenceRuleParserRuleCall_0; }
+		public RuleCall getDataReferenceRuleParserRuleCall_1() { return cDataReferenceRuleParserRuleCall_1; }
 		
 		//SelfReferenceRule
-		public RuleCall getSelfReferenceRuleParserRuleCall_1() { return cSelfReferenceRuleParserRuleCall_1; }
+		public RuleCall getSelfReferenceRuleParserRuleCall_2() { return cSelfReferenceRuleParserRuleCall_2; }
 	}
 	public class DataReferenceRuleElements extends AbstractParserRuleElementFinder {
 		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.ddl.dsl.DataDescriptionLanguage.DataReferenceRule");
@@ -770,7 +774,7 @@ public class DataDescriptionLanguageGrammarAccess extends AbstractElementFinder.
 	
 	//@Override
 	//ValueReferenceRule returns base::ValueReference:
-	//    DataReferenceRule | SelfReferenceRule
+	//    ConstantReferenceRule | DataReferenceRule | SelfReferenceRule
 	//;
 	public ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return pValueReferenceRule;
@@ -994,6 +998,17 @@ public class DataDescriptionLanguageGrammarAccess extends AbstractElementFinder.
 		return getCallRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -1256,6 +1271,17 @@ public class DataDescriptionLanguageGrammarAccess extends AbstractElementFinder.
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.ddl.dsl/src/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtext b/src/languages/de.evoal.languages.model.ddl.dsl/src/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtext
index aef3d251..b3e2ca54 100644
--- a/src/languages/de.evoal.languages.model.ddl.dsl/src/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtext
+++ b/src/languages/de.evoal.languages.model.ddl.dsl/src/de/evoal/languages/model/ddl/dsl/DataDescriptionLanguage.xtext
@@ -59,7 +59,7 @@ StatementRule returns base::Expression:
 
 @Override
 ValueReferenceRule returns base::ValueReference:
-	DataReferenceRule | SelfReferenceRule
+	ConstantReferenceRule | DataReferenceRule | SelfReferenceRule
 ;
 
 DataReferenceRule returns DataReference:	
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/DefinitionLanguageParser.java b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/DefinitionLanguageParser.java
index d8e46e48..8af8624f 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/DefinitionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/DefinitionLanguageParser.java
@@ -65,7 +65,6 @@ public class DefinitionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -87,6 +86,7 @@ public class DefinitionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -94,6 +94,7 @@ public class DefinitionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getDefinitionModelRuleAccess().getNameAssignment_2(), "rule__DefinitionModelRule__NameAssignment_2");
 			builder.put(grammarAccess.getDefinitionModelRuleAccess().getTypesAssignment_4_0(), "rule__DefinitionModelRule__TypesAssignment_4_0");
 			builder.put(grammarAccess.getDefinitionModelRuleAccess().getFunctionsAssignment_4_1(), "rule__DefinitionModelRule__FunctionsAssignment_4_1");
+			builder.put(grammarAccess.getDefinitionModelRuleAccess().getConstantsAssignment_4_2(), "rule__DefinitionModelRule__ConstantsAssignment_4_2");
 			builder.put(grammarAccess.getImportRuleAccess().getImportedNamespaceAssignment_1(), "rule__ImportRule__ImportedNamespaceAssignment_1");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0(), "rule__OrExpressionRule__SubExpressionsAssignment_0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1(), "rule__OrExpressionRule__SubExpressionsAssignment_1_1");
@@ -121,6 +122,7 @@ public class DefinitionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -141,6 +143,9 @@ public class DefinitionLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.g b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.g
index 78287e38..b31c8f60 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.g
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.g
@@ -466,9 +466,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -975,6 +1000,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleConstantDefinitionRule
+entryRuleConstantDefinitionRule
+:
+{ before(grammarAccess.getConstantDefinitionRuleRule()); }
+	 ruleConstantDefinitionRule
+{ after(grammarAccess.getConstantDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantDefinitionRule
+ruleConstantDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantDefinitionRuleAccess().getGroup()); }
+		(rule__ConstantDefinitionRule__Group__0)
+		{ after(grammarAccess.getConstantDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleParameterRule
 entryRuleParameterRule
 :
@@ -1155,6 +1205,12 @@ rule__DefinitionModelRule__Alternatives_4
 		(rule__DefinitionModelRule__FunctionsAssignment_4_1)
 		{ after(grammarAccess.getDefinitionModelRuleAccess().getFunctionsAssignment_4_1()); }
 	)
+	|
+	(
+		{ before(grammarAccess.getDefinitionModelRuleAccess().getConstantsAssignment_4_2()); }
+		(rule__DefinitionModelRule__ConstantsAssignment_4_2)
+		{ after(grammarAccess.getDefinitionModelRuleAccess().getConstantsAssignment_4_2()); }
+	)
 ;
 finally {
 	restoreStackSize(stackSize);
@@ -2978,60 +3034,6 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__ValueReferenceRule__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
-	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__ValueReferenceRule__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__ValueReferenceRule__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__ValueReferenceRule__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__DoubleLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -4571,6 +4573,141 @@ finally {
 }
 
 
+rule__ConstantDefinitionRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ConstantDefinitionRule__Group__0__Impl
+	rule__ConstantDefinitionRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0()); }
+	'const'
+	{ after(grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ConstantDefinitionRule__Group__1__Impl
+	rule__ConstantDefinitionRule__Group__2
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1()); }
+	(rule__ConstantDefinitionRule__TypeAssignment_1)
+	{ after(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ConstantDefinitionRule__Group__2__Impl
+	rule__ConstantDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__2__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__ConstantDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ConstantDefinitionRule__Group__3__Impl
+	rule__ConstantDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__3__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3()); }
+	':='
+	{ after(grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__ConstantDefinitionRule__Group__4__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__Group__4__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4()); }
+	(rule__ConstantDefinitionRule__ValueAssignment_4)
+	{ after(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
 rule__ParameterRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -4793,6 +4930,21 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__DefinitionModelRule__ConstantsAssignment_4_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0()); }
+		ruleConstantDefinitionRule
+		{ after(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__ImportRule__ImportedNamespaceAssignment_1
 	@init {
 		int stackSize = keepStackSize();
@@ -5202,6 +5354,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -5522,6 +5693,51 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantDefinitionRule__TypeAssignment_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0()); }
+		ruleTypeDefinitionRule
+		{ after(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__ConstantDefinitionRule__ValueAssignment_4
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0()); }
+		ruleExpressionRule
+		{ after(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__ParameterRule__TypeAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.tokens b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.tokens
index bc8949c1..5ce4386a 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguage.tokens
@@ -9,8 +9,8 @@
 '-'=23
 '.'=76
 '/'=25
-':'=62
-':='=63
+':'=61
+':='=62
 ';'=51
 '<'=20
 '<='=21
@@ -31,37 +31,37 @@
 '^'=55
 'a'=44
 'abstract'=79
-'array'=74
-'boolean'=71
+'array'=73
+'boolean'=70
 'c'=38
+'const'=75
 'd'=37
 'da'=36
-'data'=73
-'def'=75
-'expression'=68
-'extends'=61
+'data'=72
+'def'=74
+'expression'=67
+'extends'=60
 'f'=43
 'false'=15
-'float'=70
+'float'=69
 'h'=35
 'import'=50
-'instance'=65
-'int'=69
+'instance'=64
+'int'=68
 'k'=34
-'literal'=64
+'literal'=63
 'm'=39
 'module'=47
 'n'=41
 'p'=42
-'string'=67
+'string'=66
 'true'=78
-'type'=60
-'value'=59
-'void'=72
+'type'=59
+'void'=71
 'y'=46
 'z'=45
 '{'=48
-'|'=66
+'|'=65
 '}'=49
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageLexer.java b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageLexer.java
index 07f4b830..817c6ddf 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageLexer.java
@@ -998,10 +998,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:55:7: ( 'value' )
-            // InternalDefinitionLanguage.g:55:9: 'value'
+            // InternalDefinitionLanguage.g:55:7: ( 'type' )
+            // InternalDefinitionLanguage.g:55:9: 'type'
             {
-            match("value"); 
+            match("type"); 
 
 
             }
@@ -1019,10 +1019,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:56:7: ( 'type' )
-            // InternalDefinitionLanguage.g:56:9: 'type'
+            // InternalDefinitionLanguage.g:56:7: ( 'extends' )
+            // InternalDefinitionLanguage.g:56:9: 'extends'
             {
-            match("type"); 
+            match("extends"); 
 
 
             }
@@ -1040,11 +1040,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:57:7: ( 'extends' )
-            // InternalDefinitionLanguage.g:57:9: 'extends'
+            // InternalDefinitionLanguage.g:57:7: ( ':' )
+            // InternalDefinitionLanguage.g:57:9: ':'
             {
-            match("extends"); 
-
+            match(':'); 
 
             }
 
@@ -1061,10 +1060,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:58:7: ( ':' )
-            // InternalDefinitionLanguage.g:58:9: ':'
+            // InternalDefinitionLanguage.g:58:7: ( ':=' )
+            // InternalDefinitionLanguage.g:58:9: ':='
             {
-            match(':'); 
+            match(":="); 
+
 
             }
 
@@ -1081,10 +1081,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:59:7: ( ':=' )
-            // InternalDefinitionLanguage.g:59:9: ':='
+            // InternalDefinitionLanguage.g:59:7: ( 'literal' )
+            // InternalDefinitionLanguage.g:59:9: 'literal'
             {
-            match(":="); 
+            match("literal"); 
 
 
             }
@@ -1102,10 +1102,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:60:7: ( 'literal' )
-            // InternalDefinitionLanguage.g:60:9: 'literal'
+            // InternalDefinitionLanguage.g:60:7: ( 'instance' )
+            // InternalDefinitionLanguage.g:60:9: 'instance'
             {
-            match("literal"); 
+            match("instance"); 
 
 
             }
@@ -1123,11 +1123,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:61:7: ( 'instance' )
-            // InternalDefinitionLanguage.g:61:9: 'instance'
+            // InternalDefinitionLanguage.g:61:7: ( '|' )
+            // InternalDefinitionLanguage.g:61:9: '|'
             {
-            match("instance"); 
-
+            match('|'); 
 
             }
 
@@ -1144,10 +1143,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:62:7: ( '|' )
-            // InternalDefinitionLanguage.g:62:9: '|'
+            // InternalDefinitionLanguage.g:62:7: ( 'string' )
+            // InternalDefinitionLanguage.g:62:9: 'string'
             {
-            match('|'); 
+            match("string"); 
+
 
             }
 
@@ -1164,10 +1164,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:63:7: ( 'string' )
-            // InternalDefinitionLanguage.g:63:9: 'string'
+            // InternalDefinitionLanguage.g:63:7: ( 'expression' )
+            // InternalDefinitionLanguage.g:63:9: 'expression'
             {
-            match("string"); 
+            match("expression"); 
 
 
             }
@@ -1185,10 +1185,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:64:7: ( 'expression' )
-            // InternalDefinitionLanguage.g:64:9: 'expression'
+            // InternalDefinitionLanguage.g:64:7: ( 'int' )
+            // InternalDefinitionLanguage.g:64:9: 'int'
             {
-            match("expression"); 
+            match("int"); 
 
 
             }
@@ -1206,10 +1206,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:65:7: ( 'int' )
-            // InternalDefinitionLanguage.g:65:9: 'int'
+            // InternalDefinitionLanguage.g:65:7: ( 'float' )
+            // InternalDefinitionLanguage.g:65:9: 'float'
             {
-            match("int"); 
+            match("float"); 
 
 
             }
@@ -1227,10 +1227,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:66:7: ( 'float' )
-            // InternalDefinitionLanguage.g:66:9: 'float'
+            // InternalDefinitionLanguage.g:66:7: ( 'boolean' )
+            // InternalDefinitionLanguage.g:66:9: 'boolean'
             {
-            match("float"); 
+            match("boolean"); 
 
 
             }
@@ -1248,10 +1248,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:67:7: ( 'boolean' )
-            // InternalDefinitionLanguage.g:67:9: 'boolean'
+            // InternalDefinitionLanguage.g:67:7: ( 'void' )
+            // InternalDefinitionLanguage.g:67:9: 'void'
             {
-            match("boolean"); 
+            match("void"); 
 
 
             }
@@ -1269,10 +1269,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:68:7: ( 'void' )
-            // InternalDefinitionLanguage.g:68:9: 'void'
+            // InternalDefinitionLanguage.g:68:7: ( 'data' )
+            // InternalDefinitionLanguage.g:68:9: 'data'
             {
-            match("void"); 
+            match("data"); 
 
 
             }
@@ -1290,10 +1290,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:69:7: ( 'data' )
-            // InternalDefinitionLanguage.g:69:9: 'data'
+            // InternalDefinitionLanguage.g:69:7: ( 'array' )
+            // InternalDefinitionLanguage.g:69:9: 'array'
             {
-            match("data"); 
+            match("array"); 
 
 
             }
@@ -1311,10 +1311,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:70:7: ( 'array' )
-            // InternalDefinitionLanguage.g:70:9: 'array'
+            // InternalDefinitionLanguage.g:70:7: ( 'def' )
+            // InternalDefinitionLanguage.g:70:9: 'def'
             {
-            match("array"); 
+            match("def"); 
 
 
             }
@@ -1332,10 +1332,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:71:7: ( 'def' )
-            // InternalDefinitionLanguage.g:71:9: 'def'
+            // InternalDefinitionLanguage.g:71:7: ( 'const' )
+            // InternalDefinitionLanguage.g:71:9: 'const'
             {
-            match("def"); 
+            match("const"); 
 
 
             }
@@ -1433,8 +1433,8 @@ public class InternalDefinitionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:5574:21: ( '0' .. '9' )
-            // InternalDefinitionLanguage.g:5574:23: '0' .. '9'
+            // InternalDefinitionLanguage.g:5790:21: ( '0' .. '9' )
+            // InternalDefinitionLanguage.g:5790:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1449,11 +1449,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:5576:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalDefinitionLanguage.g:5576:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:5792:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalDefinitionLanguage.g:5792:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalDefinitionLanguage.g:5576:30: ( '+' | '-' )?
+            // InternalDefinitionLanguage.g:5792:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1479,7 +1479,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDefinitionLanguage.g:5576:41: ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:5792:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1493,7 +1493,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5576:41: RULE_DIGIT
+            	    // InternalDefinitionLanguage.g:5792:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1523,10 +1523,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5578:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalDefinitionLanguage.g:5578:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:5794:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalDefinitionLanguage.g:5794:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalDefinitionLanguage.g:5578:12: ( '-' )?
+            // InternalDefinitionLanguage.g:5794:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1535,7 +1535,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:5578:12: '-'
+                    // InternalDefinitionLanguage.g:5794:12: '-'
                     {
                     match('-'); 
 
@@ -1544,7 +1544,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDefinitionLanguage.g:5578:17: ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:5794:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1558,7 +1558,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5578:17: RULE_DIGIT
+            	    // InternalDefinitionLanguage.g:5794:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1590,15 +1590,15 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5580:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalDefinitionLanguage.g:5580:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDefinitionLanguage.g:5796:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalDefinitionLanguage.g:5796:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalDefinitionLanguage.g:5580:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDefinitionLanguage.g:5796:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:5580:16: RULE_INT RULE_EXPONENT
+                    // InternalDefinitionLanguage.g:5796:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1606,11 +1606,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:5580:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalDefinitionLanguage.g:5796:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalDefinitionLanguage.g:5580:52: ( RULE_DIGIT )*
+                    // InternalDefinitionLanguage.g:5796:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1623,7 +1623,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalDefinitionLanguage.g:5580:52: RULE_DIGIT
+                    	    // InternalDefinitionLanguage.g:5796:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1635,7 +1635,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalDefinitionLanguage.g:5580:64: ( RULE_EXPONENT )?
+                    // InternalDefinitionLanguage.g:5796:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1644,7 +1644,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalDefinitionLanguage.g:5580:64: RULE_EXPONENT
+                            // InternalDefinitionLanguage.g:5796:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1675,11 +1675,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5582:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalDefinitionLanguage.g:5582:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalDefinitionLanguage.g:5798:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalDefinitionLanguage.g:5798:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalDefinitionLanguage.g:5582:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalDefinitionLanguage.g:5798:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1695,7 +1695,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5582:20: '\\\\' .
+            	    // InternalDefinitionLanguage.g:5798:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1703,7 +1703,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDefinitionLanguage.g:5582:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalDefinitionLanguage.g:5798:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1740,11 +1740,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5584:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalDefinitionLanguage.g:5584:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalDefinitionLanguage.g:5800:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalDefinitionLanguage.g:5800:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalDefinitionLanguage.g:5584:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalDefinitionLanguage.g:5800:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1760,7 +1760,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5584:24: '\\\\' .
+            	    // InternalDefinitionLanguage.g:5800:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1768,7 +1768,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDefinitionLanguage.g:5584:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalDefinitionLanguage.g:5800:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1805,10 +1805,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5586:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalDefinitionLanguage.g:5586:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDefinitionLanguage.g:5802:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalDefinitionLanguage.g:5802:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalDefinitionLanguage.g:5586:11: ( '^' )?
+            // InternalDefinitionLanguage.g:5802:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1817,7 +1817,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:5586:11: '^'
+                    // InternalDefinitionLanguage.g:5802:11: '^'
                     {
                     match('^'); 
 
@@ -1835,7 +1835,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalDefinitionLanguage.g:5586:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDefinitionLanguage.g:5802:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1884,12 +1884,12 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5588:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalDefinitionLanguage.g:5588:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalDefinitionLanguage.g:5804:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalDefinitionLanguage.g:5804:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalDefinitionLanguage.g:5588:24: ( options {greedy=false; } : . )*
+            // InternalDefinitionLanguage.g:5804:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1914,7 +1914,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5588:52: .
+            	    // InternalDefinitionLanguage.g:5804:52: .
             	    {
             	    matchAny(); 
 
@@ -1944,12 +1944,12 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5590:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalDefinitionLanguage.g:5590:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalDefinitionLanguage.g:5806:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalDefinitionLanguage.g:5806:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalDefinitionLanguage.g:5590:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalDefinitionLanguage.g:5806:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1962,7 +1962,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:5590:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalDefinitionLanguage.g:5806: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();
@@ -1982,7 +1982,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalDefinitionLanguage.g:5590:40: ( ( '\\r' )? '\\n' )?
+            // InternalDefinitionLanguage.g:5806:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1991,9 +1991,9 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:5590:41: ( '\\r' )? '\\n'
+                    // InternalDefinitionLanguage.g:5806:41: ( '\\r' )? '\\n'
                     {
-                    // InternalDefinitionLanguage.g:5590:41: ( '\\r' )?
+                    // InternalDefinitionLanguage.g:5806:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2002,7 +2002,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalDefinitionLanguage.g:5590:41: '\\r'
+                            // InternalDefinitionLanguage.g:5806:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2034,10 +2034,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5592:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalDefinitionLanguage.g:5592:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDefinitionLanguage.g:5808:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalDefinitionLanguage.g:5808:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalDefinitionLanguage.g:5592:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDefinitionLanguage.g:5808:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2091,8 +2091,8 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:5594:16: ( . )
-            // InternalDefinitionLanguage.g:5594:18: .
+            // InternalDefinitionLanguage.g:5810:16: ( . )
+            // InternalDefinitionLanguage.g:5810:18: .
             {
             matchAny(); 
 
@@ -2687,23 +2687,23 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "5580:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "5796:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\71\1\74\1\uffff\1\77\1\101\1\uffff\1\104\1\uffff\1\110\1\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\125\1\126\1\130\1\uffff\1\132\1\133\1\136\1\137\1\140\2\uffff\1\72\1\uffff\3\72\1\151\3\uffff\3\72\1\163\1\72\1\uffff\2\72\1\uffff\1\171\2\66\3\uffff\2\72\12\uffff\1\171\17\uffff\1\u0081\1\72\2\uffff\1\72\4\uffff\2\72\5\uffff\2\72\1\uffff\1\u0089\2\72\4\uffff\5\72\2\uffff\1\72\1\uffff\2\72\6\uffff\3\72\1\uffff\1\u0098\5\72\1\u009e\1\uffff\1\u009f\1\u00a0\13\72\1\u00ac\1\uffff\5\72\3\uffff\1\72\1\u00b3\1\u00b4\1\u00b5\5\72\1\u00bb\1\u00bc\1\uffff\1\72\1\u00be\3\72\1\u00c2\3\uffff\5\72\2\uffff\1\u00c8\1\uffff\1\72\1\u00ca\1\72\1\uffff\3\72\1\u00cf\1\72\1\uffff\1\72\1\uffff\1\72\1\u00d3\1\72\1\u00d5\1\uffff\1\u00d6\1\u00d7\1\u00d8\1\uffff\1\72\4\uffff\1\72\1\u00db\1\uffff";
+        "\1\uffff\1\71\1\74\1\uffff\1\77\1\101\1\uffff\1\104\1\uffff\1\110\1\uffff\1\112\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\125\1\127\1\131\1\uffff\1\133\1\134\1\137\1\140\1\141\2\uffff\1\72\1\uffff\3\72\1\152\3\uffff\2\72\1\162\1\72\1\uffff\3\72\1\uffff\1\171\2\66\3\uffff\2\72\12\uffff\1\171\17\uffff\1\u0081\1\72\1\uffff\1\72\1\uffff\1\72\4\uffff\2\72\5\uffff\2\72\1\uffff\1\u008a\2\72\4\uffff\3\72\2\uffff\1\72\1\uffff\3\72\6\uffff\3\72\1\uffff\1\u0098\6\72\1\u009f\1\uffff\1\u00a0\1\u00a1\12\72\1\u00ac\1\uffff\6\72\3\uffff\1\u00b3\1\u00b4\5\72\1\u00ba\1\u00bb\1\u00bc\1\uffff\1\u00bd\1\72\1\u00bf\3\72\2\uffff\5\72\4\uffff\1\u00c8\1\uffff\1\72\1\u00ca\4\72\1\u00cf\1\72\1\uffff\1\72\1\uffff\1\72\1\u00d3\1\72\1\u00d5\1\uffff\1\u00d6\1\u00d7\1\u00d8\1\uffff\1\72\4\uffff\1\72\1\u00db\1\uffff";
     static final String DFA17_eofS =
         "\u00dc\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\2\uffff\1\155\1\uffff\1\122\1\117\1\116\1\101\3\uffff\1\141\1\162\1\170\1\75\1\151\1\uffff\1\164\1\157\1\uffff\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\1\146\2\uffff\1\144\4\uffff\1\162\1\163\5\uffff\1\160\1\163\1\uffff\1\60\1\122\1\104\4\uffff\1\154\1\151\1\160\1\165\1\160\2\uffff\1\164\1\uffff\1\162\1\157\6\uffff\1\163\2\141\1\uffff\1\60\1\165\1\141\1\164\1\157\1\164\1\60\1\uffff\2\60\1\165\1\144\3\145\1\162\1\145\1\151\1\154\1\145\1\164\1\60\1\uffff\1\154\1\171\2\162\1\141\3\uffff\1\145\3\60\1\156\1\145\1\162\1\156\1\145\2\60\1\uffff\1\145\1\60\1\141\1\164\1\156\1\60\3\uffff\1\144\1\163\1\141\1\147\1\141\2\uffff\1\60\1\uffff\1\143\1\60\1\143\1\uffff\2\163\1\154\1\60\1\156\1\uffff\1\164\1\uffff\1\145\1\60\1\151\1\60\1\uffff\3\60\1\uffff\1\157\4\uffff\1\156\1\60\1\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\2\uffff\1\155\1\uffff\1\122\1\117\1\116\1\101\3\uffff\1\162\1\170\1\75\1\151\1\uffff\1\164\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\1\146\1\uffff\1\156\1\uffff\1\144\4\uffff\1\162\1\163\5\uffff\1\160\1\163\1\uffff\1\60\1\122\1\104\4\uffff\1\160\1\165\1\160\2\uffff\1\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\60\1\163\1\165\1\141\1\164\1\157\1\164\1\60\1\uffff\2\60\3\145\1\162\1\145\1\151\1\154\1\144\1\145\1\164\1\60\1\uffff\1\164\1\154\1\171\2\162\1\141\3\uffff\2\60\1\156\1\145\1\162\1\156\1\145\3\60\1\uffff\1\60\1\145\1\60\1\141\1\164\1\156\2\uffff\1\144\1\163\1\141\1\147\1\141\4\uffff\1\60\1\uffff\1\143\1\60\1\143\2\163\1\154\1\60\1\156\1\uffff\1\164\1\uffff\1\145\1\60\1\151\1\60\1\uffff\3\60\1\uffff\1\157\4\uffff\1\156\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\2\uffff\1\156\1\uffff\1\122\1\117\1\116\1\172\3\uffff\1\157\1\171\1\170\1\75\1\151\1\uffff\1\164\1\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\1\146\2\uffff\1\144\4\uffff\1\162\1\163\5\uffff\1\160\1\164\1\uffff\1\172\1\122\1\104\4\uffff\1\154\1\151\1\160\1\165\1\164\2\uffff\1\164\1\uffff\1\162\1\157\6\uffff\1\163\2\141\1\uffff\1\172\1\165\1\141\1\164\1\157\1\164\1\172\1\uffff\2\172\1\165\1\144\3\145\1\162\1\145\1\151\1\154\1\145\1\164\1\172\1\uffff\1\154\1\171\2\162\1\141\3\uffff\1\145\3\172\1\156\1\145\1\162\1\156\1\145\2\172\1\uffff\1\145\1\172\1\141\1\164\1\156\1\172\3\uffff\1\144\1\163\1\141\1\147\1\141\2\uffff\1\172\1\uffff\1\143\1\172\1\143\1\uffff\2\163\1\154\1\172\1\156\1\uffff\1\164\1\uffff\1\145\1\172\1\151\1\172\1\uffff\3\172\1\uffff\1\157\4\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\2\uffff\1\156\1\uffff\1\122\1\117\1\116\1\172\3\uffff\1\171\1\170\1\75\1\151\1\uffff\1\164\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\1\146\1\uffff\1\156\1\uffff\1\144\4\uffff\1\162\1\163\5\uffff\1\160\1\164\1\uffff\1\172\1\122\1\104\4\uffff\1\160\1\165\1\164\2\uffff\1\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\172\1\163\1\165\1\141\1\164\1\157\1\164\1\172\1\uffff\2\172\3\145\1\162\1\145\1\151\1\154\1\144\1\145\1\164\1\172\1\uffff\1\164\1\154\1\171\2\162\1\141\3\uffff\2\172\1\156\1\145\1\162\1\156\1\145\3\172\1\uffff\1\172\1\145\1\172\1\141\1\164\1\156\2\uffff\1\144\1\163\1\141\1\147\1\141\4\uffff\1\172\1\uffff\1\143\1\172\1\143\2\163\1\154\1\172\1\156\1\uffff\1\164\1\uffff\1\145\1\172\1\151\1\172\1\uffff\3\172\1\uffff\1\157\4\uffff\1\156\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\5\uffff\1\42\1\43\1\uffff\1\45\4\uffff\1\52\1\53\1\54\5\uffff\1\64\2\uffff\1\76\3\uffff\1\106\1\111\1\112\2\uffff\1\35\1\106\1\2\1\3\1\4\1\5\1\77\1\7\1\6\1\10\1\uffff\1\11\1\12\1\107\1\110\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\2\uffff\1\27\1\30\1\uffff\1\31\1\32\1\33\1\34\2\uffff\1\36\1\37\1\40\1\42\1\43\2\uffff\1\45\3\uffff\1\51\1\52\1\53\1\54\5\uffff\1\61\1\60\1\uffff\1\64\2\uffff\1\76\1\102\1\103\1\104\1\105\1\111\3\uffff\1\26\7\uffff\1\46\16\uffff\1\75\5\uffff\1\67\1\47\1\50\13\uffff\1\73\6\uffff\1\72\1\56\1\100\5\uffff\1\1\1\70\1\uffff\1\74\3\uffff\1\55\5\uffff\1\41\1\uffff\1\44\4\uffff\1\65\3\uffff\1\57\1\uffff\1\62\1\71\1\101\1\63\2\uffff\1\66";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\5\uffff\1\42\1\43\1\uffff\1\45\4\uffff\1\52\1\53\1\54\4\uffff\1\63\3\uffff\1\76\3\uffff\1\106\1\111\1\112\2\uffff\1\35\1\106\1\2\1\3\1\4\1\5\1\77\1\7\1\6\1\10\1\uffff\1\11\1\12\1\107\1\110\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\2\uffff\1\27\1\uffff\1\30\1\uffff\1\31\1\32\1\33\1\34\2\uffff\1\36\1\37\1\40\1\42\1\43\2\uffff\1\45\3\uffff\1\51\1\52\1\53\1\54\3\uffff\1\60\1\57\1\uffff\1\63\3\uffff\1\76\1\102\1\103\1\104\1\105\1\111\3\uffff\1\26\10\uffff\1\46\15\uffff\1\74\6\uffff\1\66\1\47\1\50\12\uffff\1\72\6\uffff\1\55\1\100\5\uffff\1\71\1\1\1\67\1\75\1\uffff\1\73\10\uffff\1\41\1\uffff\1\44\4\uffff\1\64\3\uffff\1\56\1\uffff\1\61\1\70\1\101\1\62\2\uffff\1\65";
     static final String DFA17_specialS =
         "\1\0\61\uffff\1\1\1\2\u00a8\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\66\2\65\2\66\1\65\22\66\1\65\1\4\1\62\2\66\1\12\1\66\1\63\1\45\1\46\1\10\1\6\1\47\1\7\1\60\1\11\12\61\1\53\1\40\1\5\1\3\1\2\2\66\1\43\3\64\1\15\1\64\1\20\5\64\1\21\1\64\1\41\1\16\3\64\1\17\3\64\1\42\1\13\1\14\3\66\1\44\1\64\1\66\1\32\1\57\1\25\1\24\1\52\1\1\1\64\1\23\1\37\1\64\1\22\1\54\1\26\1\30\1\64\1\31\2\64\1\56\1\51\1\64\1\50\2\64\1\34\1\33\1\35\1\55\1\36\67\66\1\27\uff4a\66",
+            "\11\66\2\65\2\66\1\65\22\66\1\65\1\4\1\62\2\66\1\12\1\66\1\63\1\45\1\46\1\10\1\6\1\47\1\7\1\60\1\11\12\61\1\52\1\40\1\5\1\3\1\2\2\66\1\43\3\64\1\15\1\64\1\20\5\64\1\21\1\64\1\41\1\16\3\64\1\17\3\64\1\42\1\13\1\14\3\66\1\44\1\64\1\66\1\32\1\56\1\25\1\24\1\51\1\1\1\64\1\23\1\37\1\64\1\22\1\53\1\26\1\30\1\64\1\31\2\64\1\55\1\50\1\64\1\57\2\64\1\34\1\33\1\35\1\54\1\36\67\66\1\27\uff4a\66",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\1\67\12\72\1\70\16\72",
             "\1\73",
             "",
@@ -2724,31 +2724,31 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\1\123\3\72\1\124\25\72",
-            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\16\72\1\127\13\72",
+            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\16\72\1\126\13\72",
+            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\16\72\1\130\13\72",
             "",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\1\72\1\135\17\72\1\134\10\72",
+            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\1\72\1\136\17\72\1\135\10\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "",
             "",
-            "\1\143\1\144",
+            "\1\144\1\145",
             "",
-            "\1\146",
             "\1\147",
             "\1\150",
+            "\1\151",
             "\32\72\4\uffff\1\72\1\uffff\32\72",
             "",
             "",
             "",
-            "\1\155\15\uffff\1\156",
-            "\1\160\6\uffff\1\157",
+            "\1\157\6\uffff\1\156",
+            "\1\160",
             "\1\161",
-            "\1\162",
-            "\1\164",
+            "\1\163",
             "",
+            "\1\165",
             "\1\166",
             "\1\167",
             "",
@@ -2789,38 +2789,38 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\23\72\1\u0080\6\72",
             "\1\u0082",
             "",
-            "",
             "\1\u0083",
             "",
+            "\1\u0084",
+            "",
             "",
             "",
             "",
-            "\1\u0084",
             "\1\u0085",
+            "\1\u0086",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0086",
-            "\1\u0087\1\u0088",
+            "\1\u0087",
+            "\1\u0088\1\u0089",
             "",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "\1\u008a",
             "\1\u008b",
+            "\1\u008c",
             "",
             "",
             "",
             "",
-            "\1\u008c",
             "\1\u008d",
             "\1\u008e",
-            "\1\u008f",
-            "\1\u0091\3\uffff\1\u0090",
+            "\1\u0090\3\uffff\1\u008f",
             "",
             "",
-            "\1\u0092",
+            "\1\u0091",
             "",
+            "\1\u0092",
             "\1\u0093",
             "\1\u0094",
             "",
@@ -2839,11 +2839,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u009b",
             "\1\u009c",
             "\1\u009d",
+            "\1\u009e",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "\1\u00a1",
             "\1\u00a2",
             "\1\u00a3",
             "\1\u00a4",
@@ -2861,28 +2861,27 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u00af",
             "\1\u00b0",
             "\1\u00b1",
+            "\1\u00b2",
             "",
             "",
             "",
-            "\1\u00b2",
-            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
+            "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
             "\1\u00b8",
             "\1\u00b9",
-            "\1\u00ba",
+            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "",
-            "\1\u00bd",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "\1\u00bf",
+            "\1\u00be",
+            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\1\u00c0",
             "\1\u00c1",
-            "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
-            "",
+            "\1\u00c2",
             "",
             "",
             "\1\u00c3",
@@ -2892,12 +2891,13 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u00c7",
             "",
             "",
+            "",
+            "",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "",
             "\1\u00c9",
             "\12\72\7\uffff\32\72\4\uffff\1\72\1\uffff\32\72",
             "\1\u00cb",
-            "",
             "\1\u00cc",
             "\1\u00cd",
             "\1\u00ce",
@@ -3043,21 +3043,21 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 39;}
 
-                        else if ( (LA17_0=='v') ) {s = 40;}
+                        else if ( (LA17_0=='t') ) {s = 40;}
 
-                        else if ( (LA17_0=='t') ) {s = 41;}
+                        else if ( (LA17_0=='e') ) {s = 41;}
 
-                        else if ( (LA17_0=='e') ) {s = 42;}
+                        else if ( (LA17_0==':') ) {s = 42;}
 
-                        else if ( (LA17_0==':') ) {s = 43;}
+                        else if ( (LA17_0=='l') ) {s = 43;}
 
-                        else if ( (LA17_0=='l') ) {s = 44;}
+                        else if ( (LA17_0=='|') ) {s = 44;}
 
-                        else if ( (LA17_0=='|') ) {s = 45;}
+                        else if ( (LA17_0=='s') ) {s = 45;}
 
-                        else if ( (LA17_0=='s') ) {s = 46;}
+                        else if ( (LA17_0=='b') ) {s = 46;}
 
-                        else if ( (LA17_0=='b') ) {s = 47;}
+                        else if ( (LA17_0=='v') ) {s = 47;}
 
                         else if ( (LA17_0=='.') ) {s = 48;}
 
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageParser.java b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageParser.java
index d7f25ffe..2457cdac 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ide/src-gen/de/evoal/languages/model/dl/dsl/ide/contentassist/antlr/internal/InternalDefinitionLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalDefinitionLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'module'", "'{'", "'}'", "'import'", "';'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "'value'", "'type'", "'extends'", "':'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'def'", "'.'", "'!'", "'true'", "'abstract'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'module'", "'{'", "'}'", "'import'", "';'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "','", "'type'", "'extends'", "':'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'def'", "'const'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -1394,31 +1394,102 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalDefinitionLanguage.g:463:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:463:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:467:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:468:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:467:2: ( ( ruleConstantReferenceRule ) )
+            // InternalDefinitionLanguage.g:468:2: ( ruleConstantReferenceRule )
             {
-            // InternalDefinitionLanguage.g:468:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:469:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalDefinitionLanguage.g:468:2: ( ruleConstantReferenceRule )
+            // InternalDefinitionLanguage.g:469:3: ruleConstantReferenceRule
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:470:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalDefinitionLanguage.g:470:4: rule__ValueReferenceRule__Group__0
+             before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalDefinitionLanguage.g:479:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalDefinitionLanguage.g:480:1: ( ruleConstantReferenceRule EOF )
+            // InternalDefinitionLanguage.g:481:1: ruleConstantReferenceRule EOF
+            {
+             before(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalDefinitionLanguage.g:488:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:492:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalDefinitionLanguage.g:493:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            {
+            // InternalDefinitionLanguage.g:493:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalDefinitionLanguage.g:494:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            // InternalDefinitionLanguage.g:495:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalDefinitionLanguage.g:495:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
 
             }
 
@@ -1437,15 +1508,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalDefinitionLanguage.g:479:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:504:1: entryRuleLiteralRule : ruleLiteralRule EOF ;
     public final void entryRuleLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:480:1: ( ruleLiteralRule EOF )
-            // InternalDefinitionLanguage.g:481:1: ruleLiteralRule EOF
+            // InternalDefinitionLanguage.g:505:1: ( ruleLiteralRule EOF )
+            // InternalDefinitionLanguage.g:506:1: ruleLiteralRule EOF
             {
              before(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1471,21 +1542,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalDefinitionLanguage.g:488:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:513:1: ruleLiteralRule : ( ( rule__LiteralRule__Alternatives ) ) ;
     public final void ruleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:492:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:493:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:517:2: ( ( ( rule__LiteralRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:518:2: ( ( rule__LiteralRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:493:2: ( ( rule__LiteralRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:494:3: ( rule__LiteralRule__Alternatives )
+            // InternalDefinitionLanguage.g:518:2: ( ( rule__LiteralRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:519:3: ( rule__LiteralRule__Alternatives )
             {
              before(grammarAccess.getLiteralRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:495:3: ( rule__LiteralRule__Alternatives )
-            // InternalDefinitionLanguage.g:495:4: rule__LiteralRule__Alternatives
+            // InternalDefinitionLanguage.g:520:3: ( rule__LiteralRule__Alternatives )
+            // InternalDefinitionLanguage.g:520:4: rule__LiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralRule__Alternatives();
@@ -1518,11 +1589,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalDefinitionLanguage.g:504:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:529:1: entryRuleNumberLiteralRule : ruleNumberLiteralRule EOF ;
     public final void entryRuleNumberLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:505:1: ( ruleNumberLiteralRule EOF )
-            // InternalDefinitionLanguage.g:506:1: ruleNumberLiteralRule EOF
+            // InternalDefinitionLanguage.g:530:1: ( ruleNumberLiteralRule EOF )
+            // InternalDefinitionLanguage.g:531:1: ruleNumberLiteralRule EOF
             {
              before(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1548,21 +1619,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalDefinitionLanguage.g:513:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:538:1: ruleNumberLiteralRule : ( ( rule__NumberLiteralRule__Alternatives ) ) ;
     public final void ruleNumberLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:517:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:518:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:542:2: ( ( ( rule__NumberLiteralRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:543:2: ( ( rule__NumberLiteralRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:518:2: ( ( rule__NumberLiteralRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:519:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalDefinitionLanguage.g:543:2: ( ( rule__NumberLiteralRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:544:3: ( rule__NumberLiteralRule__Alternatives )
             {
              before(grammarAccess.getNumberLiteralRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:520:3: ( rule__NumberLiteralRule__Alternatives )
-            // InternalDefinitionLanguage.g:520:4: rule__NumberLiteralRule__Alternatives
+            // InternalDefinitionLanguage.g:545:3: ( rule__NumberLiteralRule__Alternatives )
+            // InternalDefinitionLanguage.g:545:4: rule__NumberLiteralRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__NumberLiteralRule__Alternatives();
@@ -1595,11 +1666,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalDefinitionLanguage.g:529:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:554:1: entryRuleDoubleLiteralRule : ruleDoubleLiteralRule EOF ;
     public final void entryRuleDoubleLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:530:1: ( ruleDoubleLiteralRule EOF )
-            // InternalDefinitionLanguage.g:531:1: ruleDoubleLiteralRule EOF
+            // InternalDefinitionLanguage.g:555:1: ( ruleDoubleLiteralRule EOF )
+            // InternalDefinitionLanguage.g:556:1: ruleDoubleLiteralRule EOF
             {
              before(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1625,21 +1696,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalDefinitionLanguage.g:538:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:563:1: ruleDoubleLiteralRule : ( ( rule__DoubleLiteralRule__Group__0 ) ) ;
     public final void ruleDoubleLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:542:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:543:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:567:2: ( ( ( rule__DoubleLiteralRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:568:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:543:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:544:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:568:2: ( ( rule__DoubleLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:569:3: ( rule__DoubleLiteralRule__Group__0 )
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:545:3: ( rule__DoubleLiteralRule__Group__0 )
-            // InternalDefinitionLanguage.g:545:4: rule__DoubleLiteralRule__Group__0
+            // InternalDefinitionLanguage.g:570:3: ( rule__DoubleLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:570:4: rule__DoubleLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DoubleLiteralRule__Group__0();
@@ -1672,11 +1743,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalDefinitionLanguage.g:554:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:579:1: entryRuleIntegerLiteralRule : ruleIntegerLiteralRule EOF ;
     public final void entryRuleIntegerLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:555:1: ( ruleIntegerLiteralRule EOF )
-            // InternalDefinitionLanguage.g:556:1: ruleIntegerLiteralRule EOF
+            // InternalDefinitionLanguage.g:580:1: ( ruleIntegerLiteralRule EOF )
+            // InternalDefinitionLanguage.g:581:1: ruleIntegerLiteralRule EOF
             {
              before(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1702,21 +1773,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalDefinitionLanguage.g:563:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:588:1: ruleIntegerLiteralRule : ( ( rule__IntegerLiteralRule__Group__0 ) ) ;
     public final void ruleIntegerLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:567:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:568:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:592:2: ( ( ( rule__IntegerLiteralRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:593:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:568:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:569:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:593:2: ( ( rule__IntegerLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:594:3: ( rule__IntegerLiteralRule__Group__0 )
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:570:3: ( rule__IntegerLiteralRule__Group__0 )
-            // InternalDefinitionLanguage.g:570:4: rule__IntegerLiteralRule__Group__0
+            // InternalDefinitionLanguage.g:595:3: ( rule__IntegerLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:595:4: rule__IntegerLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__0();
@@ -1749,11 +1820,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalDefinitionLanguage.g:579:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:604:1: entryRuleStringLiteralRule : ruleStringLiteralRule EOF ;
     public final void entryRuleStringLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:580:1: ( ruleStringLiteralRule EOF )
-            // InternalDefinitionLanguage.g:581:1: ruleStringLiteralRule EOF
+            // InternalDefinitionLanguage.g:605:1: ( ruleStringLiteralRule EOF )
+            // InternalDefinitionLanguage.g:606:1: ruleStringLiteralRule EOF
             {
              before(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1779,21 +1850,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalDefinitionLanguage.g:588:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
+    // InternalDefinitionLanguage.g:613:1: ruleStringLiteralRule : ( ( rule__StringLiteralRule__ValueAssignment ) ) ;
     public final void ruleStringLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:592:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
-            // InternalDefinitionLanguage.g:593:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalDefinitionLanguage.g:617:2: ( ( ( rule__StringLiteralRule__ValueAssignment ) ) )
+            // InternalDefinitionLanguage.g:618:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
             {
-            // InternalDefinitionLanguage.g:593:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
-            // InternalDefinitionLanguage.g:594:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalDefinitionLanguage.g:618:2: ( ( rule__StringLiteralRule__ValueAssignment ) )
+            // InternalDefinitionLanguage.g:619:3: ( rule__StringLiteralRule__ValueAssignment )
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueAssignment()); 
-            // InternalDefinitionLanguage.g:595:3: ( rule__StringLiteralRule__ValueAssignment )
-            // InternalDefinitionLanguage.g:595:4: rule__StringLiteralRule__ValueAssignment
+            // InternalDefinitionLanguage.g:620:3: ( rule__StringLiteralRule__ValueAssignment )
+            // InternalDefinitionLanguage.g:620:4: rule__StringLiteralRule__ValueAssignment
             {
             pushFollow(FOLLOW_2);
             rule__StringLiteralRule__ValueAssignment();
@@ -1826,11 +1897,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalDefinitionLanguage.g:604:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:629:1: entryRuleBooleanLiteralRule : ruleBooleanLiteralRule EOF ;
     public final void entryRuleBooleanLiteralRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:605:1: ( ruleBooleanLiteralRule EOF )
-            // InternalDefinitionLanguage.g:606:1: ruleBooleanLiteralRule EOF
+            // InternalDefinitionLanguage.g:630:1: ( ruleBooleanLiteralRule EOF )
+            // InternalDefinitionLanguage.g:631:1: ruleBooleanLiteralRule EOF
             {
              before(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1856,21 +1927,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalDefinitionLanguage.g:613:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:638:1: ruleBooleanLiteralRule : ( ( rule__BooleanLiteralRule__Group__0 ) ) ;
     public final void ruleBooleanLiteralRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:617:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:618:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:642:2: ( ( ( rule__BooleanLiteralRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:643:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:618:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:619:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:643:2: ( ( rule__BooleanLiteralRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:644:3: ( rule__BooleanLiteralRule__Group__0 )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:620:3: ( rule__BooleanLiteralRule__Group__0 )
-            // InternalDefinitionLanguage.g:620:4: rule__BooleanLiteralRule__Group__0
+            // InternalDefinitionLanguage.g:645:3: ( rule__BooleanLiteralRule__Group__0 )
+            // InternalDefinitionLanguage.g:645:4: rule__BooleanLiteralRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__0();
@@ -1903,11 +1974,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleTypeDefinitionRule"
-    // InternalDefinitionLanguage.g:629:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:654:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
     public final void entryRuleTypeDefinitionRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:630:1: ( ruleTypeDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:631:1: ruleTypeDefinitionRule EOF
+            // InternalDefinitionLanguage.g:655:1: ( ruleTypeDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:656:1: ruleTypeDefinitionRule EOF
             {
              before(grammarAccess.getTypeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1933,21 +2004,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleTypeDefinitionRule"
-    // InternalDefinitionLanguage.g:638:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:663:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
     public final void ruleTypeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:642:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:643:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:667:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:668:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:643:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:644:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:668:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:669:3: ( rule__TypeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:645:3: ( rule__TypeDefinitionRule__Group__0 )
-            // InternalDefinitionLanguage.g:645:4: rule__TypeDefinitionRule__Group__0
+            // InternalDefinitionLanguage.g:670:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:670:4: rule__TypeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__TypeDefinitionRule__Group__0();
@@ -1980,11 +2051,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalDefinitionLanguage.g:654:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:679:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:655:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:656:1: ruleAttributeDefinitionRule EOF
+            // InternalDefinitionLanguage.g:680:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:681:1: ruleAttributeDefinitionRule EOF
             {
              before(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2010,21 +2081,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalDefinitionLanguage.g:663:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:688:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:667:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:668:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:692:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:693:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:668:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:669:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:693:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:694:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:670:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalDefinitionLanguage.g:670:4: rule__AttributeDefinitionRule__Group__0
+            // InternalDefinitionLanguage.g:695:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:695:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -2057,11 +2128,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalDefinitionLanguage.g:679:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalDefinitionLanguage.g:704:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:680:1: ( ruleTypeRule EOF )
-            // InternalDefinitionLanguage.g:681:1: ruleTypeRule EOF
+            // InternalDefinitionLanguage.g:705:1: ( ruleTypeRule EOF )
+            // InternalDefinitionLanguage.g:706:1: ruleTypeRule EOF
             {
              before(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2087,21 +2158,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalDefinitionLanguage.g:688:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:713:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:692:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:693:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:717:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:718:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:693:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:694:3: ( rule__TypeRule__Alternatives )
+            // InternalDefinitionLanguage.g:718:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:719:3: ( rule__TypeRule__Alternatives )
             {
              before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:695:3: ( rule__TypeRule__Alternatives )
-            // InternalDefinitionLanguage.g:695:4: rule__TypeRule__Alternatives
+            // InternalDefinitionLanguage.g:720:3: ( rule__TypeRule__Alternatives )
+            // InternalDefinitionLanguage.g:720:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -2134,11 +2205,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalDefinitionLanguage.g:704:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalDefinitionLanguage.g:729:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:705:1: ( ruleLiteralTypeRule EOF )
-            // InternalDefinitionLanguage.g:706:1: ruleLiteralTypeRule EOF
+            // InternalDefinitionLanguage.g:730:1: ( ruleLiteralTypeRule EOF )
+            // InternalDefinitionLanguage.g:731:1: ruleLiteralTypeRule EOF
             {
              before(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2164,21 +2235,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalDefinitionLanguage.g:713:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:738:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:717:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:718:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:742:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:743:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:718:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:719:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:743:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:744:3: ( rule__LiteralTypeRule__Group__0 )
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:720:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:720:4: rule__LiteralTypeRule__Group__0
+            // InternalDefinitionLanguage.g:745:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:745:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -2211,11 +2282,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalDefinitionLanguage.g:729:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalDefinitionLanguage.g:754:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:730:1: ( ruleInstanceTypeRule EOF )
-            // InternalDefinitionLanguage.g:731:1: ruleInstanceTypeRule EOF
+            // InternalDefinitionLanguage.g:755:1: ( ruleInstanceTypeRule EOF )
+            // InternalDefinitionLanguage.g:756:1: ruleInstanceTypeRule EOF
             {
              before(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2241,21 +2312,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalDefinitionLanguage.g:738:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:763:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:742:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:743:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:767:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:768:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:743:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:744:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:768:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:769:3: ( rule__InstanceTypeRule__Group__0 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:745:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:745:4: rule__InstanceTypeRule__Group__0
+            // InternalDefinitionLanguage.g:770:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:770:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -2288,11 +2359,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalDefinitionLanguage.g:754:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalDefinitionLanguage.g:779:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:755:1: ( ruleStringTypeRule EOF )
-            // InternalDefinitionLanguage.g:756:1: ruleStringTypeRule EOF
+            // InternalDefinitionLanguage.g:780:1: ( ruleStringTypeRule EOF )
+            // InternalDefinitionLanguage.g:781:1: ruleStringTypeRule EOF
             {
              before(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2318,21 +2389,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalDefinitionLanguage.g:763:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:788:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:767:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:768:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:792:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:793:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:768:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:769:3: ( rule__StringTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:793:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:794:3: ( rule__StringTypeRule__Group__0 )
             {
              before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:770:3: ( rule__StringTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:770:4: rule__StringTypeRule__Group__0
+            // InternalDefinitionLanguage.g:795:3: ( rule__StringTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:795:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -2365,11 +2436,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalDefinitionLanguage.g:779:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalDefinitionLanguage.g:804:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:780:1: ( ruleExpressionTypeRule EOF )
-            // InternalDefinitionLanguage.g:781:1: ruleExpressionTypeRule EOF
+            // InternalDefinitionLanguage.g:805:1: ( ruleExpressionTypeRule EOF )
+            // InternalDefinitionLanguage.g:806:1: ruleExpressionTypeRule EOF
             {
              before(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2395,21 +2466,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalDefinitionLanguage.g:788:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:813:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:792:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:793:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:817:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:818:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:793:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:794:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:818:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:819:3: ( rule__ExpressionTypeRule__Group__0 )
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:795:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:795:4: rule__ExpressionTypeRule__Group__0
+            // InternalDefinitionLanguage.g:820:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:820:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -2442,11 +2513,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalDefinitionLanguage.g:804:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalDefinitionLanguage.g:829:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:805:1: ( ruleIntTypeRule EOF )
-            // InternalDefinitionLanguage.g:806:1: ruleIntTypeRule EOF
+            // InternalDefinitionLanguage.g:830:1: ( ruleIntTypeRule EOF )
+            // InternalDefinitionLanguage.g:831:1: ruleIntTypeRule EOF
             {
              before(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2472,21 +2543,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalDefinitionLanguage.g:813:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:838:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:817:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:818:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:842:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:843:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:818:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:819:3: ( rule__IntTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:843:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:844:3: ( rule__IntTypeRule__Group__0 )
             {
              before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:820:3: ( rule__IntTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:820:4: rule__IntTypeRule__Group__0
+            // InternalDefinitionLanguage.g:845:3: ( rule__IntTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:845:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -2519,11 +2590,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalDefinitionLanguage.g:829:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalDefinitionLanguage.g:854:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:830:1: ( ruleFloatTypeRule EOF )
-            // InternalDefinitionLanguage.g:831:1: ruleFloatTypeRule EOF
+            // InternalDefinitionLanguage.g:855:1: ( ruleFloatTypeRule EOF )
+            // InternalDefinitionLanguage.g:856:1: ruleFloatTypeRule EOF
             {
              before(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2549,21 +2620,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalDefinitionLanguage.g:838:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:863:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:842:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:843:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:867:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:868:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:843:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:844:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:868:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:869:3: ( rule__FloatTypeRule__Group__0 )
             {
              before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:845:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:845:4: rule__FloatTypeRule__Group__0
+            // InternalDefinitionLanguage.g:870:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:870:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -2596,11 +2667,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalDefinitionLanguage.g:854:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalDefinitionLanguage.g:879:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:855:1: ( ruleBooleanTypeRule EOF )
-            // InternalDefinitionLanguage.g:856:1: ruleBooleanTypeRule EOF
+            // InternalDefinitionLanguage.g:880:1: ( ruleBooleanTypeRule EOF )
+            // InternalDefinitionLanguage.g:881:1: ruleBooleanTypeRule EOF
             {
              before(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2626,21 +2697,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalDefinitionLanguage.g:863:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:888:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:867:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:868:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:892:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:893:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:868:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:869:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:893:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:894:3: ( rule__BooleanTypeRule__Group__0 )
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:870:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:870:4: rule__BooleanTypeRule__Group__0
+            // InternalDefinitionLanguage.g:895:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:895:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -2673,11 +2744,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalDefinitionLanguage.g:879:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalDefinitionLanguage.g:904:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:880:1: ( ruleVoidTypeRule EOF )
-            // InternalDefinitionLanguage.g:881:1: ruleVoidTypeRule EOF
+            // InternalDefinitionLanguage.g:905:1: ( ruleVoidTypeRule EOF )
+            // InternalDefinitionLanguage.g:906:1: ruleVoidTypeRule EOF
             {
              before(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2703,21 +2774,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalDefinitionLanguage.g:888:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:913:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:892:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:893:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:917:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:918:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:893:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:894:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:918:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:919:3: ( rule__VoidTypeRule__Group__0 )
             {
              before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:895:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:895:4: rule__VoidTypeRule__Group__0
+            // InternalDefinitionLanguage.g:920:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:920:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -2750,11 +2821,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalDefinitionLanguage.g:904:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalDefinitionLanguage.g:929:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:905:1: ( ruleDataTypeRule EOF )
-            // InternalDefinitionLanguage.g:906:1: ruleDataTypeRule EOF
+            // InternalDefinitionLanguage.g:930:1: ( ruleDataTypeRule EOF )
+            // InternalDefinitionLanguage.g:931:1: ruleDataTypeRule EOF
             {
              before(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2780,21 +2851,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalDefinitionLanguage.g:913:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:938:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:917:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:918:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:942:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:943:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:918:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:919:3: ( rule__DataTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:943:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:944:3: ( rule__DataTypeRule__Group__0 )
             {
              before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:920:3: ( rule__DataTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:920:4: rule__DataTypeRule__Group__0
+            // InternalDefinitionLanguage.g:945:3: ( rule__DataTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:945:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -2827,11 +2898,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalDefinitionLanguage.g:929:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalDefinitionLanguage.g:954:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:930:1: ( ruleArrayTypeRule EOF )
-            // InternalDefinitionLanguage.g:931:1: ruleArrayTypeRule EOF
+            // InternalDefinitionLanguage.g:955:1: ( ruleArrayTypeRule EOF )
+            // InternalDefinitionLanguage.g:956:1: ruleArrayTypeRule EOF
             {
              before(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2857,21 +2928,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalDefinitionLanguage.g:938:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:963:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:942:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:943:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:967:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:968:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:943:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:944:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:968:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:969:3: ( rule__ArrayTypeRule__Group__0 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:945:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalDefinitionLanguage.g:945:4: rule__ArrayTypeRule__Group__0
+            // InternalDefinitionLanguage.g:970:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalDefinitionLanguage.g:970:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -2904,11 +2975,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleFunctionDefinitionRule"
-    // InternalDefinitionLanguage.g:954:1: entryRuleFunctionDefinitionRule : ruleFunctionDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:979:1: entryRuleFunctionDefinitionRule : ruleFunctionDefinitionRule EOF ;
     public final void entryRuleFunctionDefinitionRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:955:1: ( ruleFunctionDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:956:1: ruleFunctionDefinitionRule EOF
+            // InternalDefinitionLanguage.g:980:1: ( ruleFunctionDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:981:1: ruleFunctionDefinitionRule EOF
             {
              before(grammarAccess.getFunctionDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2934,21 +3005,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleFunctionDefinitionRule"
-    // InternalDefinitionLanguage.g:963:1: ruleFunctionDefinitionRule : ( ( rule__FunctionDefinitionRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:988:1: ruleFunctionDefinitionRule : ( ( rule__FunctionDefinitionRule__Group__0 ) ) ;
     public final void ruleFunctionDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:967:2: ( ( ( rule__FunctionDefinitionRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:968:2: ( ( rule__FunctionDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:992:2: ( ( ( rule__FunctionDefinitionRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:993:2: ( ( rule__FunctionDefinitionRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:968:2: ( ( rule__FunctionDefinitionRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:969:3: ( rule__FunctionDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:993:2: ( ( rule__FunctionDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:994:3: ( rule__FunctionDefinitionRule__Group__0 )
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:970:3: ( rule__FunctionDefinitionRule__Group__0 )
-            // InternalDefinitionLanguage.g:970:4: rule__FunctionDefinitionRule__Group__0
+            // InternalDefinitionLanguage.g:995:3: ( rule__FunctionDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:995:4: rule__FunctionDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__Group__0();
@@ -2980,12 +3051,89 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "ruleFunctionDefinitionRule"
 
 
+    // $ANTLR start "entryRuleConstantDefinitionRule"
+    // InternalDefinitionLanguage.g:1004:1: entryRuleConstantDefinitionRule : ruleConstantDefinitionRule EOF ;
+    public final void entryRuleConstantDefinitionRule() throws RecognitionException {
+        try {
+            // InternalDefinitionLanguage.g:1005:1: ( ruleConstantDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:1006:1: ruleConstantDefinitionRule EOF
+            {
+             before(grammarAccess.getConstantDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDefinitionRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantDefinitionRule"
+
+
+    // $ANTLR start "ruleConstantDefinitionRule"
+    // InternalDefinitionLanguage.g:1013:1: ruleConstantDefinitionRule : ( ( rule__ConstantDefinitionRule__Group__0 ) ) ;
+    public final void ruleConstantDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:1017:2: ( ( ( rule__ConstantDefinitionRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:1018:2: ( ( rule__ConstantDefinitionRule__Group__0 ) )
+            {
+            // InternalDefinitionLanguage.g:1018:2: ( ( rule__ConstantDefinitionRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:1019:3: ( rule__ConstantDefinitionRule__Group__0 )
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getGroup()); 
+            // InternalDefinitionLanguage.g:1020:3: ( rule__ConstantDefinitionRule__Group__0 )
+            // InternalDefinitionLanguage.g:1020:4: rule__ConstantDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ConstantDefinitionRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleConstantDefinitionRule"
+
+
     // $ANTLR start "entryRuleParameterRule"
-    // InternalDefinitionLanguage.g:979:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalDefinitionLanguage.g:1029:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:980:1: ( ruleParameterRule EOF )
-            // InternalDefinitionLanguage.g:981:1: ruleParameterRule EOF
+            // InternalDefinitionLanguage.g:1030:1: ( ruleParameterRule EOF )
+            // InternalDefinitionLanguage.g:1031:1: ruleParameterRule EOF
             {
              before(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3011,21 +3159,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalDefinitionLanguage.g:988:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:1038:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:992:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:993:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:1042:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:1043:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:993:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalDefinitionLanguage.g:994:3: ( rule__ParameterRule__Group__0 )
+            // InternalDefinitionLanguage.g:1043:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalDefinitionLanguage.g:1044:3: ( rule__ParameterRule__Group__0 )
             {
              before(grammarAccess.getParameterRuleAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:995:3: ( rule__ParameterRule__Group__0 )
-            // InternalDefinitionLanguage.g:995:4: rule__ParameterRule__Group__0
+            // InternalDefinitionLanguage.g:1045:3: ( rule__ParameterRule__Group__0 )
+            // InternalDefinitionLanguage.g:1045:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -3058,11 +3206,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalDefinitionLanguage.g:1004:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalDefinitionLanguage.g:1054:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:1005:1: ( ruleFunctionNameRule EOF )
-            // InternalDefinitionLanguage.g:1006:1: ruleFunctionNameRule EOF
+            // InternalDefinitionLanguage.g:1055:1: ( ruleFunctionNameRule EOF )
+            // InternalDefinitionLanguage.g:1056:1: ruleFunctionNameRule EOF
             {
              before(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3088,21 +3236,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalDefinitionLanguage.g:1013:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalDefinitionLanguage.g:1063:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1017:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalDefinitionLanguage.g:1018:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalDefinitionLanguage.g:1067:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalDefinitionLanguage.g:1068:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalDefinitionLanguage.g:1018:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalDefinitionLanguage.g:1019:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalDefinitionLanguage.g:1068:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalDefinitionLanguage.g:1069:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
-            // InternalDefinitionLanguage.g:1020:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalDefinitionLanguage.g:1020:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalDefinitionLanguage.g:1070:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalDefinitionLanguage.g:1070:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -3135,11 +3283,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalDefinitionLanguage.g:1029:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalDefinitionLanguage.g:1079:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:1030:1: ( ruleQualifiedName EOF )
-            // InternalDefinitionLanguage.g:1031:1: ruleQualifiedName EOF
+            // InternalDefinitionLanguage.g:1080:1: ( ruleQualifiedName EOF )
+            // InternalDefinitionLanguage.g:1081:1: ruleQualifiedName EOF
             {
              before(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -3165,21 +3313,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalDefinitionLanguage.g:1038:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalDefinitionLanguage.g:1088:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1042:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalDefinitionLanguage.g:1043:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalDefinitionLanguage.g:1092:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalDefinitionLanguage.g:1093:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalDefinitionLanguage.g:1043:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalDefinitionLanguage.g:1044:3: ( rule__QualifiedName__Group__0 )
+            // InternalDefinitionLanguage.g:1093:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalDefinitionLanguage.g:1094:3: ( rule__QualifiedName__Group__0 )
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            // InternalDefinitionLanguage.g:1045:3: ( rule__QualifiedName__Group__0 )
-            // InternalDefinitionLanguage.g:1045:4: rule__QualifiedName__Group__0
+            // InternalDefinitionLanguage.g:1095:3: ( rule__QualifiedName__Group__0 )
+            // InternalDefinitionLanguage.g:1095:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -3212,11 +3360,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalDefinitionLanguage.g:1054:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalDefinitionLanguage.g:1104:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:1055:1: ( ruleStringOrId EOF )
-            // InternalDefinitionLanguage.g:1056:1: ruleStringOrId EOF
+            // InternalDefinitionLanguage.g:1105:1: ( ruleStringOrId EOF )
+            // InternalDefinitionLanguage.g:1106:1: ruleStringOrId EOF
             {
              before(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -3242,21 +3390,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalDefinitionLanguage.g:1063:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:1113:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1067:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:1068:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalDefinitionLanguage.g:1117:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:1118:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:1068:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalDefinitionLanguage.g:1069:3: ( rule__StringOrId__Alternatives )
+            // InternalDefinitionLanguage.g:1118:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalDefinitionLanguage.g:1119:3: ( rule__StringOrId__Alternatives )
             {
              before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:1070:3: ( rule__StringOrId__Alternatives )
-            // InternalDefinitionLanguage.g:1070:4: rule__StringOrId__Alternatives
+            // InternalDefinitionLanguage.g:1120:3: ( rule__StringOrId__Alternatives )
+            // InternalDefinitionLanguage.g:1120:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -3289,21 +3437,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalDefinitionLanguage.g:1079:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:1129:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1083:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:1084:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1133:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:1134:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:1084:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:1085:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1134:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1135:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
              before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:1086:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalDefinitionLanguage.g:1086:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalDefinitionLanguage.g:1136:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1136:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -3336,21 +3484,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalDefinitionLanguage.g:1095:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:1145:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1099:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:1100:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1149:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:1150:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:1100:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:1101:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1150:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1151:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
              before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:1102:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalDefinitionLanguage.g:1102:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalDefinitionLanguage.g:1152:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1152:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -3383,21 +3531,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalDefinitionLanguage.g:1111:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:1161:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1115:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:1116:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1165:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:1166:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:1116:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:1117:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1166:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1167:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
              before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:1118:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalDefinitionLanguage.g:1118:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalDefinitionLanguage.g:1168:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1168:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -3430,21 +3578,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalDefinitionLanguage.g:1127:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalDefinitionLanguage.g:1177:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1131:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalDefinitionLanguage.g:1132:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1181:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalDefinitionLanguage.g:1182:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalDefinitionLanguage.g:1132:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalDefinitionLanguage.g:1133:3: ( rule__FactorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1182:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalDefinitionLanguage.g:1183:3: ( rule__FactorRule__Alternatives )
             {
              before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
-            // InternalDefinitionLanguage.g:1134:3: ( rule__FactorRule__Alternatives )
-            // InternalDefinitionLanguage.g:1134:4: rule__FactorRule__Alternatives
+            // InternalDefinitionLanguage.g:1184:3: ( rule__FactorRule__Alternatives )
+            // InternalDefinitionLanguage.g:1184:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -3477,38 +3625,48 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Alternatives_4"
-    // InternalDefinitionLanguage.g:1142:1: rule__DefinitionModelRule__Alternatives_4 : ( ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) ) | ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) ) );
+    // InternalDefinitionLanguage.g:1192:1: rule__DefinitionModelRule__Alternatives_4 : ( ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) ) | ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) ) | ( ( rule__DefinitionModelRule__ConstantsAssignment_4_2 ) ) );
     public final void rule__DefinitionModelRule__Alternatives_4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1146:1: ( ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) ) | ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) ) )
-            int alt1=2;
-            int LA1_0 = input.LA(1);
-
-            if ( (LA1_0==60||LA1_0==79) ) {
+            // InternalDefinitionLanguage.g:1196:1: ( ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) ) | ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) ) | ( ( rule__DefinitionModelRule__ConstantsAssignment_4_2 ) ) )
+            int alt1=3;
+            switch ( input.LA(1) ) {
+            case 59:
+            case 79:
+                {
                 alt1=1;
-            }
-            else if ( (LA1_0==75) ) {
+                }
+                break;
+            case 74:
+                {
                 alt1=2;
-            }
-            else {
+                }
+                break;
+            case 75:
+                {
+                alt1=3;
+                }
+                break;
+            default:
                 NoViableAltException nvae =
                     new NoViableAltException("", 1, 0, input);
 
                 throw nvae;
             }
+
             switch (alt1) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1147:2: ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) )
+                    // InternalDefinitionLanguage.g:1197:2: ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) )
                     {
-                    // InternalDefinitionLanguage.g:1147:2: ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) )
-                    // InternalDefinitionLanguage.g:1148:3: ( rule__DefinitionModelRule__TypesAssignment_4_0 )
+                    // InternalDefinitionLanguage.g:1197:2: ( ( rule__DefinitionModelRule__TypesAssignment_4_0 ) )
+                    // InternalDefinitionLanguage.g:1198:3: ( rule__DefinitionModelRule__TypesAssignment_4_0 )
                     {
                      before(grammarAccess.getDefinitionModelRuleAccess().getTypesAssignment_4_0()); 
-                    // InternalDefinitionLanguage.g:1149:3: ( rule__DefinitionModelRule__TypesAssignment_4_0 )
-                    // InternalDefinitionLanguage.g:1149:4: rule__DefinitionModelRule__TypesAssignment_4_0
+                    // InternalDefinitionLanguage.g:1199:3: ( rule__DefinitionModelRule__TypesAssignment_4_0 )
+                    // InternalDefinitionLanguage.g:1199:4: rule__DefinitionModelRule__TypesAssignment_4_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__DefinitionModelRule__TypesAssignment_4_0();
@@ -3526,14 +3684,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1153:2: ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) )
+                    // InternalDefinitionLanguage.g:1203:2: ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) )
                     {
-                    // InternalDefinitionLanguage.g:1153:2: ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) )
-                    // InternalDefinitionLanguage.g:1154:3: ( rule__DefinitionModelRule__FunctionsAssignment_4_1 )
+                    // InternalDefinitionLanguage.g:1203:2: ( ( rule__DefinitionModelRule__FunctionsAssignment_4_1 ) )
+                    // InternalDefinitionLanguage.g:1204:3: ( rule__DefinitionModelRule__FunctionsAssignment_4_1 )
                     {
                      before(grammarAccess.getDefinitionModelRuleAccess().getFunctionsAssignment_4_1()); 
-                    // InternalDefinitionLanguage.g:1155:3: ( rule__DefinitionModelRule__FunctionsAssignment_4_1 )
-                    // InternalDefinitionLanguage.g:1155:4: rule__DefinitionModelRule__FunctionsAssignment_4_1
+                    // InternalDefinitionLanguage.g:1205:3: ( rule__DefinitionModelRule__FunctionsAssignment_4_1 )
+                    // InternalDefinitionLanguage.g:1205:4: rule__DefinitionModelRule__FunctionsAssignment_4_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__DefinitionModelRule__FunctionsAssignment_4_1();
@@ -3548,6 +3706,31 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
 
 
+                    }
+                    break;
+                case 3 :
+                    // InternalDefinitionLanguage.g:1209:2: ( ( rule__DefinitionModelRule__ConstantsAssignment_4_2 ) )
+                    {
+                    // InternalDefinitionLanguage.g:1209:2: ( ( rule__DefinitionModelRule__ConstantsAssignment_4_2 ) )
+                    // InternalDefinitionLanguage.g:1210:3: ( rule__DefinitionModelRule__ConstantsAssignment_4_2 )
+                    {
+                     before(grammarAccess.getDefinitionModelRuleAccess().getConstantsAssignment_4_2()); 
+                    // InternalDefinitionLanguage.g:1211:3: ( rule__DefinitionModelRule__ConstantsAssignment_4_2 )
+                    // InternalDefinitionLanguage.g:1211:4: rule__DefinitionModelRule__ConstantsAssignment_4_2
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DefinitionModelRule__ConstantsAssignment_4_2();
+
+                    state._fsp--;
+
+
+                    }
+
+                     after(grammarAccess.getDefinitionModelRuleAccess().getConstantsAssignment_4_2()); 
+
+                    }
+
+
                     }
                     break;
 
@@ -3568,53 +3751,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalDefinitionLanguage.g:1163:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalDefinitionLanguage.g:1219:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1167:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalDefinitionLanguage.g:1223:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt2=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt2=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 15:
-            case 78:
-                {
-                alt2=2;
-                }
-                break;
-            case 56:
-                {
-                alt2=3;
-                }
-                break;
-            case 59:
-                {
-                alt2=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 2, 0, input);
-
-                throw nvae;
-            }
-
+            alt2 = dfa2.predict(input);
             switch (alt2) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1168:2: ( ruleCallRule )
+                    // InternalDefinitionLanguage.g:1224:2: ( ruleCallRule )
                     {
-                    // InternalDefinitionLanguage.g:1168:2: ( ruleCallRule )
-                    // InternalDefinitionLanguage.g:1169:3: ruleCallRule
+                    // InternalDefinitionLanguage.g:1224:2: ( ruleCallRule )
+                    // InternalDefinitionLanguage.g:1225:3: ruleCallRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3630,10 +3781,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1174:2: ( ruleLiteralRule )
+                    // InternalDefinitionLanguage.g:1230:2: ( ruleLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1174:2: ( ruleLiteralRule )
-                    // InternalDefinitionLanguage.g:1175:3: ruleLiteralRule
+                    // InternalDefinitionLanguage.g:1230:2: ( ruleLiteralRule )
+                    // InternalDefinitionLanguage.g:1231:3: ruleLiteralRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3649,10 +3800,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1180:2: ( ruleParanthesesRule )
+                    // InternalDefinitionLanguage.g:1236:2: ( ruleParanthesesRule )
                     {
-                    // InternalDefinitionLanguage.g:1180:2: ( ruleParanthesesRule )
-                    // InternalDefinitionLanguage.g:1181:3: ruleParanthesesRule
+                    // InternalDefinitionLanguage.g:1236:2: ( ruleParanthesesRule )
+                    // InternalDefinitionLanguage.g:1237:3: ruleParanthesesRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3668,10 +3819,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:1186:2: ( ruleValueReferenceRule )
+                    // InternalDefinitionLanguage.g:1242:2: ( ruleValueReferenceRule )
                     {
-                    // InternalDefinitionLanguage.g:1186:2: ( ruleValueReferenceRule )
-                    // InternalDefinitionLanguage.g:1187:3: ruleValueReferenceRule
+                    // InternalDefinitionLanguage.g:1242:2: ( ruleValueReferenceRule )
+                    // InternalDefinitionLanguage.g:1243:3: ruleValueReferenceRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -3704,13 +3855,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalDefinitionLanguage.g:1196:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalDefinitionLanguage.g:1252:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1200:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalDefinitionLanguage.g:1256:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt3=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -3739,10 +3890,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
             switch (alt3) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1201:2: ( ruleNumberLiteralRule )
+                    // InternalDefinitionLanguage.g:1257:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1201:2: ( ruleNumberLiteralRule )
-                    // InternalDefinitionLanguage.g:1202:3: ruleNumberLiteralRule
+                    // InternalDefinitionLanguage.g:1257:2: ( ruleNumberLiteralRule )
+                    // InternalDefinitionLanguage.g:1258:3: ruleNumberLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3758,10 +3909,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1207:2: ( ruleStringLiteralRule )
+                    // InternalDefinitionLanguage.g:1263:2: ( ruleStringLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1207:2: ( ruleStringLiteralRule )
-                    // InternalDefinitionLanguage.g:1208:3: ruleStringLiteralRule
+                    // InternalDefinitionLanguage.g:1263:2: ( ruleStringLiteralRule )
+                    // InternalDefinitionLanguage.g:1264:3: ruleStringLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3777,10 +3928,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1213:2: ( ruleBooleanLiteralRule )
+                    // InternalDefinitionLanguage.g:1269:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1213:2: ( ruleBooleanLiteralRule )
-                    // InternalDefinitionLanguage.g:1214:3: ruleBooleanLiteralRule
+                    // InternalDefinitionLanguage.g:1269:2: ( ruleBooleanLiteralRule )
+                    // InternalDefinitionLanguage.g:1270:3: ruleBooleanLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3813,13 +3964,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalDefinitionLanguage.g:1223:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalDefinitionLanguage.g:1279:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1227:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalDefinitionLanguage.g:1283:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -3837,10 +3988,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt4) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1228:2: ( ruleDoubleLiteralRule )
+                    // InternalDefinitionLanguage.g:1284:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1228:2: ( ruleDoubleLiteralRule )
-                    // InternalDefinitionLanguage.g:1229:3: ruleDoubleLiteralRule
+                    // InternalDefinitionLanguage.g:1284:2: ( ruleDoubleLiteralRule )
+                    // InternalDefinitionLanguage.g:1285:3: ruleDoubleLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3856,10 +4007,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1234:2: ( ruleIntegerLiteralRule )
+                    // InternalDefinitionLanguage.g:1290:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalDefinitionLanguage.g:1234:2: ( ruleIntegerLiteralRule )
-                    // InternalDefinitionLanguage.g:1235:3: ruleIntegerLiteralRule
+                    // InternalDefinitionLanguage.g:1290:2: ( ruleIntegerLiteralRule )
+                    // InternalDefinitionLanguage.g:1291:3: ruleIntegerLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3892,13 +4043,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalDefinitionLanguage.g:1244:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalDefinitionLanguage.g:1300:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1248:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalDefinitionLanguage.g:1304:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt5=2;
             int LA5_0 = input.LA(1);
 
@@ -3916,14 +4067,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt5) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1249:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalDefinitionLanguage.g:1305:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalDefinitionLanguage.g:1249:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalDefinitionLanguage.g:1250:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalDefinitionLanguage.g:1305:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalDefinitionLanguage.g:1306:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
-                    // InternalDefinitionLanguage.g:1251:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalDefinitionLanguage.g:1251:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalDefinitionLanguage.g:1307:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalDefinitionLanguage.g:1307:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -3941,10 +4092,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1255:2: ( 'false' )
+                    // InternalDefinitionLanguage.g:1311:2: ( 'false' )
                     {
-                    // InternalDefinitionLanguage.g:1255:2: ( 'false' )
-                    // InternalDefinitionLanguage.g:1256:3: 'false'
+                    // InternalDefinitionLanguage.g:1311:2: ( 'false' )
+                    // InternalDefinitionLanguage.g:1312:3: 'false'
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
                     match(input,15,FOLLOW_2); 
@@ -3973,61 +4124,61 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalDefinitionLanguage.g:1265:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalDefinitionLanguage.g:1321:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1269:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalDefinitionLanguage.g:1325:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt6=10;
             switch ( input.LA(1) ) {
-            case 67:
+            case 66:
                 {
                 alt6=1;
                 }
                 break;
-            case 69:
+            case 68:
                 {
                 alt6=2;
                 }
                 break;
-            case 70:
+            case 69:
                 {
                 alt6=3;
                 }
                 break;
-            case 71:
+            case 70:
                 {
                 alt6=4;
                 }
                 break;
-            case 64:
+            case 63:
                 {
                 alt6=5;
                 }
                 break;
-            case 74:
+            case 73:
                 {
                 alt6=6;
                 }
                 break;
-            case 65:
+            case 64:
                 {
                 alt6=7;
                 }
                 break;
-            case 72:
+            case 71:
                 {
                 alt6=8;
                 }
                 break;
-            case 68:
+            case 67:
                 {
                 alt6=9;
                 }
                 break;
-            case 73:
+            case 72:
                 {
                 alt6=10;
                 }
@@ -4041,10 +4192,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
             switch (alt6) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1270:2: ( ruleStringTypeRule )
+                    // InternalDefinitionLanguage.g:1326:2: ( ruleStringTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1270:2: ( ruleStringTypeRule )
-                    // InternalDefinitionLanguage.g:1271:3: ruleStringTypeRule
+                    // InternalDefinitionLanguage.g:1326:2: ( ruleStringTypeRule )
+                    // InternalDefinitionLanguage.g:1327:3: ruleStringTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4060,10 +4211,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1276:2: ( ruleIntTypeRule )
+                    // InternalDefinitionLanguage.g:1332:2: ( ruleIntTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1276:2: ( ruleIntTypeRule )
-                    // InternalDefinitionLanguage.g:1277:3: ruleIntTypeRule
+                    // InternalDefinitionLanguage.g:1332:2: ( ruleIntTypeRule )
+                    // InternalDefinitionLanguage.g:1333:3: ruleIntTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4079,10 +4230,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1282:2: ( ruleFloatTypeRule )
+                    // InternalDefinitionLanguage.g:1338:2: ( ruleFloatTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1282:2: ( ruleFloatTypeRule )
-                    // InternalDefinitionLanguage.g:1283:3: ruleFloatTypeRule
+                    // InternalDefinitionLanguage.g:1338:2: ( ruleFloatTypeRule )
+                    // InternalDefinitionLanguage.g:1339:3: ruleFloatTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4098,10 +4249,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:1288:2: ( ruleBooleanTypeRule )
+                    // InternalDefinitionLanguage.g:1344:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1288:2: ( ruleBooleanTypeRule )
-                    // InternalDefinitionLanguage.g:1289:3: ruleBooleanTypeRule
+                    // InternalDefinitionLanguage.g:1344:2: ( ruleBooleanTypeRule )
+                    // InternalDefinitionLanguage.g:1345:3: ruleBooleanTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -4117,10 +4268,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:1294:2: ( ruleLiteralTypeRule )
+                    // InternalDefinitionLanguage.g:1350:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1294:2: ( ruleLiteralTypeRule )
-                    // InternalDefinitionLanguage.g:1295:3: ruleLiteralTypeRule
+                    // InternalDefinitionLanguage.g:1350:2: ( ruleLiteralTypeRule )
+                    // InternalDefinitionLanguage.g:1351:3: ruleLiteralTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
                     pushFollow(FOLLOW_2);
@@ -4136,10 +4287,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:1300:2: ( ruleArrayTypeRule )
+                    // InternalDefinitionLanguage.g:1356:2: ( ruleArrayTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1300:2: ( ruleArrayTypeRule )
-                    // InternalDefinitionLanguage.g:1301:3: ruleArrayTypeRule
+                    // InternalDefinitionLanguage.g:1356:2: ( ruleArrayTypeRule )
+                    // InternalDefinitionLanguage.g:1357:3: ruleArrayTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
                     pushFollow(FOLLOW_2);
@@ -4155,10 +4306,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 7 :
-                    // InternalDefinitionLanguage.g:1306:2: ( ruleInstanceTypeRule )
+                    // InternalDefinitionLanguage.g:1362:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1306:2: ( ruleInstanceTypeRule )
-                    // InternalDefinitionLanguage.g:1307:3: ruleInstanceTypeRule
+                    // InternalDefinitionLanguage.g:1362:2: ( ruleInstanceTypeRule )
+                    // InternalDefinitionLanguage.g:1363:3: ruleInstanceTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
                     pushFollow(FOLLOW_2);
@@ -4174,10 +4325,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 8 :
-                    // InternalDefinitionLanguage.g:1312:2: ( ruleVoidTypeRule )
+                    // InternalDefinitionLanguage.g:1368:2: ( ruleVoidTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1312:2: ( ruleVoidTypeRule )
-                    // InternalDefinitionLanguage.g:1313:3: ruleVoidTypeRule
+                    // InternalDefinitionLanguage.g:1368:2: ( ruleVoidTypeRule )
+                    // InternalDefinitionLanguage.g:1369:3: ruleVoidTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
                     pushFollow(FOLLOW_2);
@@ -4193,10 +4344,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 9 :
-                    // InternalDefinitionLanguage.g:1318:2: ( ruleExpressionTypeRule )
+                    // InternalDefinitionLanguage.g:1374:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1318:2: ( ruleExpressionTypeRule )
-                    // InternalDefinitionLanguage.g:1319:3: ruleExpressionTypeRule
+                    // InternalDefinitionLanguage.g:1374:2: ( ruleExpressionTypeRule )
+                    // InternalDefinitionLanguage.g:1375:3: ruleExpressionTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
                     pushFollow(FOLLOW_2);
@@ -4212,10 +4363,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 10 :
-                    // InternalDefinitionLanguage.g:1324:2: ( ruleDataTypeRule )
+                    // InternalDefinitionLanguage.g:1380:2: ( ruleDataTypeRule )
                     {
-                    // InternalDefinitionLanguage.g:1324:2: ( ruleDataTypeRule )
-                    // InternalDefinitionLanguage.g:1325:3: ruleDataTypeRule
+                    // InternalDefinitionLanguage.g:1380:2: ( ruleDataTypeRule )
+                    // InternalDefinitionLanguage.g:1381:3: ruleDataTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
                     pushFollow(FOLLOW_2);
@@ -4248,13 +4399,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalDefinitionLanguage.g:1334:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalDefinitionLanguage.g:1390:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1338:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalDefinitionLanguage.g:1394:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -4272,10 +4423,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt7) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1339:2: ( RULE_QUOTED_ID )
+                    // InternalDefinitionLanguage.g:1395:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalDefinitionLanguage.g:1339:2: ( RULE_QUOTED_ID )
-                    // InternalDefinitionLanguage.g:1340:3: RULE_QUOTED_ID
+                    // InternalDefinitionLanguage.g:1395:2: ( RULE_QUOTED_ID )
+                    // InternalDefinitionLanguage.g:1396:3: RULE_QUOTED_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
                     match(input,RULE_QUOTED_ID,FOLLOW_2); 
@@ -4287,10 +4438,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1345:2: ( RULE_ID )
+                    // InternalDefinitionLanguage.g:1401:2: ( RULE_ID )
                     {
-                    // InternalDefinitionLanguage.g:1345:2: ( RULE_ID )
-                    // InternalDefinitionLanguage.g:1346:3: RULE_ID
+                    // InternalDefinitionLanguage.g:1401:2: ( RULE_ID )
+                    // InternalDefinitionLanguage.g:1402:3: RULE_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
                     match(input,RULE_ID,FOLLOW_2); 
@@ -4319,13 +4470,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalDefinitionLanguage.g:1355:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalDefinitionLanguage.g:1411:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1359:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalDefinitionLanguage.g:1415:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt8=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -4367,14 +4518,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
             switch (alt8) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1360:2: ( ( '>=' ) )
+                    // InternalDefinitionLanguage.g:1416:2: ( ( '>=' ) )
                     {
-                    // InternalDefinitionLanguage.g:1360:2: ( ( '>=' ) )
-                    // InternalDefinitionLanguage.g:1361:3: ( '>=' )
+                    // InternalDefinitionLanguage.g:1416:2: ( ( '>=' ) )
+                    // InternalDefinitionLanguage.g:1417:3: ( '>=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
-                    // InternalDefinitionLanguage.g:1362:3: ( '>=' )
-                    // InternalDefinitionLanguage.g:1362:4: '>='
+                    // InternalDefinitionLanguage.g:1418:3: ( '>=' )
+                    // InternalDefinitionLanguage.g:1418:4: '>='
                     {
                     match(input,16,FOLLOW_2); 
 
@@ -4388,14 +4539,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1366:2: ( ( '>' ) )
+                    // InternalDefinitionLanguage.g:1422:2: ( ( '>' ) )
                     {
-                    // InternalDefinitionLanguage.g:1366:2: ( ( '>' ) )
-                    // InternalDefinitionLanguage.g:1367:3: ( '>' )
+                    // InternalDefinitionLanguage.g:1422:2: ( ( '>' ) )
+                    // InternalDefinitionLanguage.g:1423:3: ( '>' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
-                    // InternalDefinitionLanguage.g:1368:3: ( '>' )
-                    // InternalDefinitionLanguage.g:1368:4: '>'
+                    // InternalDefinitionLanguage.g:1424:3: ( '>' )
+                    // InternalDefinitionLanguage.g:1424:4: '>'
                     {
                     match(input,17,FOLLOW_2); 
 
@@ -4409,14 +4560,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1372:2: ( ( '=' ) )
+                    // InternalDefinitionLanguage.g:1428:2: ( ( '=' ) )
                     {
-                    // InternalDefinitionLanguage.g:1372:2: ( ( '=' ) )
-                    // InternalDefinitionLanguage.g:1373:3: ( '=' )
+                    // InternalDefinitionLanguage.g:1428:2: ( ( '=' ) )
+                    // InternalDefinitionLanguage.g:1429:3: ( '=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
-                    // InternalDefinitionLanguage.g:1374:3: ( '=' )
-                    // InternalDefinitionLanguage.g:1374:4: '='
+                    // InternalDefinitionLanguage.g:1430:3: ( '=' )
+                    // InternalDefinitionLanguage.g:1430:4: '='
                     {
                     match(input,18,FOLLOW_2); 
 
@@ -4430,14 +4581,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:1378:2: ( ( '!=' ) )
+                    // InternalDefinitionLanguage.g:1434:2: ( ( '!=' ) )
                     {
-                    // InternalDefinitionLanguage.g:1378:2: ( ( '!=' ) )
-                    // InternalDefinitionLanguage.g:1379:3: ( '!=' )
+                    // InternalDefinitionLanguage.g:1434:2: ( ( '!=' ) )
+                    // InternalDefinitionLanguage.g:1435:3: ( '!=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
-                    // InternalDefinitionLanguage.g:1380:3: ( '!=' )
-                    // InternalDefinitionLanguage.g:1380:4: '!='
+                    // InternalDefinitionLanguage.g:1436:3: ( '!=' )
+                    // InternalDefinitionLanguage.g:1436:4: '!='
                     {
                     match(input,19,FOLLOW_2); 
 
@@ -4451,14 +4602,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:1384:2: ( ( '<' ) )
+                    // InternalDefinitionLanguage.g:1440:2: ( ( '<' ) )
                     {
-                    // InternalDefinitionLanguage.g:1384:2: ( ( '<' ) )
-                    // InternalDefinitionLanguage.g:1385:3: ( '<' )
+                    // InternalDefinitionLanguage.g:1440:2: ( ( '<' ) )
+                    // InternalDefinitionLanguage.g:1441:3: ( '<' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
-                    // InternalDefinitionLanguage.g:1386:3: ( '<' )
-                    // InternalDefinitionLanguage.g:1386:4: '<'
+                    // InternalDefinitionLanguage.g:1442:3: ( '<' )
+                    // InternalDefinitionLanguage.g:1442:4: '<'
                     {
                     match(input,20,FOLLOW_2); 
 
@@ -4472,14 +4623,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:1390:2: ( ( '<=' ) )
+                    // InternalDefinitionLanguage.g:1446:2: ( ( '<=' ) )
                     {
-                    // InternalDefinitionLanguage.g:1390:2: ( ( '<=' ) )
-                    // InternalDefinitionLanguage.g:1391:3: ( '<=' )
+                    // InternalDefinitionLanguage.g:1446:2: ( ( '<=' ) )
+                    // InternalDefinitionLanguage.g:1447:3: ( '<=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
-                    // InternalDefinitionLanguage.g:1392:3: ( '<=' )
-                    // InternalDefinitionLanguage.g:1392:4: '<='
+                    // InternalDefinitionLanguage.g:1448:3: ( '<=' )
+                    // InternalDefinitionLanguage.g:1448:4: '<='
                     {
                     match(input,21,FOLLOW_2); 
 
@@ -4510,13 +4661,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalDefinitionLanguage.g:1400:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalDefinitionLanguage.g:1456:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1404:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalDefinitionLanguage.g:1460:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -4534,14 +4685,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt9) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1405:2: ( ( '+' ) )
+                    // InternalDefinitionLanguage.g:1461:2: ( ( '+' ) )
                     {
-                    // InternalDefinitionLanguage.g:1405:2: ( ( '+' ) )
-                    // InternalDefinitionLanguage.g:1406:3: ( '+' )
+                    // InternalDefinitionLanguage.g:1461:2: ( ( '+' ) )
+                    // InternalDefinitionLanguage.g:1462:3: ( '+' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
-                    // InternalDefinitionLanguage.g:1407:3: ( '+' )
-                    // InternalDefinitionLanguage.g:1407:4: '+'
+                    // InternalDefinitionLanguage.g:1463:3: ( '+' )
+                    // InternalDefinitionLanguage.g:1463:4: '+'
                     {
                     match(input,22,FOLLOW_2); 
 
@@ -4555,14 +4706,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1411:2: ( ( '-' ) )
+                    // InternalDefinitionLanguage.g:1467:2: ( ( '-' ) )
                     {
-                    // InternalDefinitionLanguage.g:1411:2: ( ( '-' ) )
-                    // InternalDefinitionLanguage.g:1412:3: ( '-' )
+                    // InternalDefinitionLanguage.g:1467:2: ( ( '-' ) )
+                    // InternalDefinitionLanguage.g:1468:3: ( '-' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
-                    // InternalDefinitionLanguage.g:1413:3: ( '-' )
-                    // InternalDefinitionLanguage.g:1413:4: '-'
+                    // InternalDefinitionLanguage.g:1469:3: ( '-' )
+                    // InternalDefinitionLanguage.g:1469:4: '-'
                     {
                     match(input,23,FOLLOW_2); 
 
@@ -4593,13 +4744,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalDefinitionLanguage.g:1421:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalDefinitionLanguage.g:1477:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1425:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalDefinitionLanguage.g:1481:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt10=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -4626,14 +4777,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
             switch (alt10) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1426:2: ( ( '*' ) )
+                    // InternalDefinitionLanguage.g:1482:2: ( ( '*' ) )
                     {
-                    // InternalDefinitionLanguage.g:1426:2: ( ( '*' ) )
-                    // InternalDefinitionLanguage.g:1427:3: ( '*' )
+                    // InternalDefinitionLanguage.g:1482:2: ( ( '*' ) )
+                    // InternalDefinitionLanguage.g:1483:3: ( '*' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
-                    // InternalDefinitionLanguage.g:1428:3: ( '*' )
-                    // InternalDefinitionLanguage.g:1428:4: '*'
+                    // InternalDefinitionLanguage.g:1484:3: ( '*' )
+                    // InternalDefinitionLanguage.g:1484:4: '*'
                     {
                     match(input,24,FOLLOW_2); 
 
@@ -4647,14 +4798,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1432:2: ( ( '/' ) )
+                    // InternalDefinitionLanguage.g:1488:2: ( ( '/' ) )
                     {
-                    // InternalDefinitionLanguage.g:1432:2: ( ( '/' ) )
-                    // InternalDefinitionLanguage.g:1433:3: ( '/' )
+                    // InternalDefinitionLanguage.g:1488:2: ( ( '/' ) )
+                    // InternalDefinitionLanguage.g:1489:3: ( '/' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
-                    // InternalDefinitionLanguage.g:1434:3: ( '/' )
-                    // InternalDefinitionLanguage.g:1434:4: '/'
+                    // InternalDefinitionLanguage.g:1490:3: ( '/' )
+                    // InternalDefinitionLanguage.g:1490:4: '/'
                     {
                     match(input,25,FOLLOW_2); 
 
@@ -4668,14 +4819,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1438:2: ( ( '%' ) )
+                    // InternalDefinitionLanguage.g:1494:2: ( ( '%' ) )
                     {
-                    // InternalDefinitionLanguage.g:1438:2: ( ( '%' ) )
-                    // InternalDefinitionLanguage.g:1439:3: ( '%' )
+                    // InternalDefinitionLanguage.g:1494:2: ( ( '%' ) )
+                    // InternalDefinitionLanguage.g:1495:3: ( '%' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
-                    // InternalDefinitionLanguage.g:1440:3: ( '%' )
-                    // InternalDefinitionLanguage.g:1440:4: '%'
+                    // InternalDefinitionLanguage.g:1496:3: ( '%' )
+                    // InternalDefinitionLanguage.g:1496:4: '%'
                     {
                     match(input,26,FOLLOW_2); 
 
@@ -4706,13 +4857,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalDefinitionLanguage.g:1448:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalDefinitionLanguage.g:1504:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1452:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalDefinitionLanguage.g:1508:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt11=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -4824,14 +4975,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
             switch (alt11) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1453:2: ( ( 'Y' ) )
+                    // InternalDefinitionLanguage.g:1509:2: ( ( 'Y' ) )
                     {
-                    // InternalDefinitionLanguage.g:1453:2: ( ( 'Y' ) )
-                    // InternalDefinitionLanguage.g:1454:3: ( 'Y' )
+                    // InternalDefinitionLanguage.g:1509:2: ( ( 'Y' ) )
+                    // InternalDefinitionLanguage.g:1510:3: ( 'Y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
-                    // InternalDefinitionLanguage.g:1455:3: ( 'Y' )
-                    // InternalDefinitionLanguage.g:1455:4: 'Y'
+                    // InternalDefinitionLanguage.g:1511:3: ( 'Y' )
+                    // InternalDefinitionLanguage.g:1511:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); 
 
@@ -4845,14 +4996,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1459:2: ( ( 'Z' ) )
+                    // InternalDefinitionLanguage.g:1515:2: ( ( 'Z' ) )
                     {
-                    // InternalDefinitionLanguage.g:1459:2: ( ( 'Z' ) )
-                    // InternalDefinitionLanguage.g:1460:3: ( 'Z' )
+                    // InternalDefinitionLanguage.g:1515:2: ( ( 'Z' ) )
+                    // InternalDefinitionLanguage.g:1516:3: ( 'Z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
-                    // InternalDefinitionLanguage.g:1461:3: ( 'Z' )
-                    // InternalDefinitionLanguage.g:1461:4: 'Z'
+                    // InternalDefinitionLanguage.g:1517:3: ( 'Z' )
+                    // InternalDefinitionLanguage.g:1517:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); 
 
@@ -4866,14 +5017,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1465:2: ( ( 'E' ) )
+                    // InternalDefinitionLanguage.g:1521:2: ( ( 'E' ) )
                     {
-                    // InternalDefinitionLanguage.g:1465:2: ( ( 'E' ) )
-                    // InternalDefinitionLanguage.g:1466:3: ( 'E' )
+                    // InternalDefinitionLanguage.g:1521:2: ( ( 'E' ) )
+                    // InternalDefinitionLanguage.g:1522:3: ( 'E' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
-                    // InternalDefinitionLanguage.g:1467:3: ( 'E' )
-                    // InternalDefinitionLanguage.g:1467:4: 'E'
+                    // InternalDefinitionLanguage.g:1523:3: ( 'E' )
+                    // InternalDefinitionLanguage.g:1523:4: 'E'
                     {
                     match(input,29,FOLLOW_2); 
 
@@ -4887,14 +5038,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:1471:2: ( ( 'P' ) )
+                    // InternalDefinitionLanguage.g:1527:2: ( ( 'P' ) )
                     {
-                    // InternalDefinitionLanguage.g:1471:2: ( ( 'P' ) )
-                    // InternalDefinitionLanguage.g:1472:3: ( 'P' )
+                    // InternalDefinitionLanguage.g:1527:2: ( ( 'P' ) )
+                    // InternalDefinitionLanguage.g:1528:3: ( 'P' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
-                    // InternalDefinitionLanguage.g:1473:3: ( 'P' )
-                    // InternalDefinitionLanguage.g:1473:4: 'P'
+                    // InternalDefinitionLanguage.g:1529:3: ( 'P' )
+                    // InternalDefinitionLanguage.g:1529:4: 'P'
                     {
                     match(input,30,FOLLOW_2); 
 
@@ -4908,14 +5059,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:1477:2: ( ( 'T' ) )
+                    // InternalDefinitionLanguage.g:1533:2: ( ( 'T' ) )
                     {
-                    // InternalDefinitionLanguage.g:1477:2: ( ( 'T' ) )
-                    // InternalDefinitionLanguage.g:1478:3: ( 'T' )
+                    // InternalDefinitionLanguage.g:1533:2: ( ( 'T' ) )
+                    // InternalDefinitionLanguage.g:1534:3: ( 'T' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
-                    // InternalDefinitionLanguage.g:1479:3: ( 'T' )
-                    // InternalDefinitionLanguage.g:1479:4: 'T'
+                    // InternalDefinitionLanguage.g:1535:3: ( 'T' )
+                    // InternalDefinitionLanguage.g:1535:4: 'T'
                     {
                     match(input,31,FOLLOW_2); 
 
@@ -4929,14 +5080,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:1483:2: ( ( 'G' ) )
+                    // InternalDefinitionLanguage.g:1539:2: ( ( 'G' ) )
                     {
-                    // InternalDefinitionLanguage.g:1483:2: ( ( 'G' ) )
-                    // InternalDefinitionLanguage.g:1484:3: ( 'G' )
+                    // InternalDefinitionLanguage.g:1539:2: ( ( 'G' ) )
+                    // InternalDefinitionLanguage.g:1540:3: ( 'G' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
-                    // InternalDefinitionLanguage.g:1485:3: ( 'G' )
-                    // InternalDefinitionLanguage.g:1485:4: 'G'
+                    // InternalDefinitionLanguage.g:1541:3: ( 'G' )
+                    // InternalDefinitionLanguage.g:1541:4: 'G'
                     {
                     match(input,32,FOLLOW_2); 
 
@@ -4950,14 +5101,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 7 :
-                    // InternalDefinitionLanguage.g:1489:2: ( ( 'M' ) )
+                    // InternalDefinitionLanguage.g:1545:2: ( ( 'M' ) )
                     {
-                    // InternalDefinitionLanguage.g:1489:2: ( ( 'M' ) )
-                    // InternalDefinitionLanguage.g:1490:3: ( 'M' )
+                    // InternalDefinitionLanguage.g:1545:2: ( ( 'M' ) )
+                    // InternalDefinitionLanguage.g:1546:3: ( 'M' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
-                    // InternalDefinitionLanguage.g:1491:3: ( 'M' )
-                    // InternalDefinitionLanguage.g:1491:4: 'M'
+                    // InternalDefinitionLanguage.g:1547:3: ( 'M' )
+                    // InternalDefinitionLanguage.g:1547:4: 'M'
                     {
                     match(input,33,FOLLOW_2); 
 
@@ -4971,14 +5122,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 8 :
-                    // InternalDefinitionLanguage.g:1495:2: ( ( 'k' ) )
+                    // InternalDefinitionLanguage.g:1551:2: ( ( 'k' ) )
                     {
-                    // InternalDefinitionLanguage.g:1495:2: ( ( 'k' ) )
-                    // InternalDefinitionLanguage.g:1496:3: ( 'k' )
+                    // InternalDefinitionLanguage.g:1551:2: ( ( 'k' ) )
+                    // InternalDefinitionLanguage.g:1552:3: ( 'k' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
-                    // InternalDefinitionLanguage.g:1497:3: ( 'k' )
-                    // InternalDefinitionLanguage.g:1497:4: 'k'
+                    // InternalDefinitionLanguage.g:1553:3: ( 'k' )
+                    // InternalDefinitionLanguage.g:1553:4: 'k'
                     {
                     match(input,34,FOLLOW_2); 
 
@@ -4992,14 +5143,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 9 :
-                    // InternalDefinitionLanguage.g:1501:2: ( ( 'h' ) )
+                    // InternalDefinitionLanguage.g:1557:2: ( ( 'h' ) )
                     {
-                    // InternalDefinitionLanguage.g:1501:2: ( ( 'h' ) )
-                    // InternalDefinitionLanguage.g:1502:3: ( 'h' )
+                    // InternalDefinitionLanguage.g:1557:2: ( ( 'h' ) )
+                    // InternalDefinitionLanguage.g:1558:3: ( 'h' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
-                    // InternalDefinitionLanguage.g:1503:3: ( 'h' )
-                    // InternalDefinitionLanguage.g:1503:4: 'h'
+                    // InternalDefinitionLanguage.g:1559:3: ( 'h' )
+                    // InternalDefinitionLanguage.g:1559:4: 'h'
                     {
                     match(input,35,FOLLOW_2); 
 
@@ -5013,14 +5164,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 10 :
-                    // InternalDefinitionLanguage.g:1507:2: ( ( 'da' ) )
+                    // InternalDefinitionLanguage.g:1563:2: ( ( 'da' ) )
                     {
-                    // InternalDefinitionLanguage.g:1507:2: ( ( 'da' ) )
-                    // InternalDefinitionLanguage.g:1508:3: ( 'da' )
+                    // InternalDefinitionLanguage.g:1563:2: ( ( 'da' ) )
+                    // InternalDefinitionLanguage.g:1564:3: ( 'da' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
-                    // InternalDefinitionLanguage.g:1509:3: ( 'da' )
-                    // InternalDefinitionLanguage.g:1509:4: 'da'
+                    // InternalDefinitionLanguage.g:1565:3: ( 'da' )
+                    // InternalDefinitionLanguage.g:1565:4: 'da'
                     {
                     match(input,36,FOLLOW_2); 
 
@@ -5034,14 +5185,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 11 :
-                    // InternalDefinitionLanguage.g:1513:2: ( ( 'd' ) )
+                    // InternalDefinitionLanguage.g:1569:2: ( ( 'd' ) )
                     {
-                    // InternalDefinitionLanguage.g:1513:2: ( ( 'd' ) )
-                    // InternalDefinitionLanguage.g:1514:3: ( 'd' )
+                    // InternalDefinitionLanguage.g:1569:2: ( ( 'd' ) )
+                    // InternalDefinitionLanguage.g:1570:3: ( 'd' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
-                    // InternalDefinitionLanguage.g:1515:3: ( 'd' )
-                    // InternalDefinitionLanguage.g:1515:4: 'd'
+                    // InternalDefinitionLanguage.g:1571:3: ( 'd' )
+                    // InternalDefinitionLanguage.g:1571:4: 'd'
                     {
                     match(input,37,FOLLOW_2); 
 
@@ -5055,14 +5206,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 12 :
-                    // InternalDefinitionLanguage.g:1519:2: ( ( 'c' ) )
+                    // InternalDefinitionLanguage.g:1575:2: ( ( 'c' ) )
                     {
-                    // InternalDefinitionLanguage.g:1519:2: ( ( 'c' ) )
-                    // InternalDefinitionLanguage.g:1520:3: ( 'c' )
+                    // InternalDefinitionLanguage.g:1575:2: ( ( 'c' ) )
+                    // InternalDefinitionLanguage.g:1576:3: ( 'c' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
-                    // InternalDefinitionLanguage.g:1521:3: ( 'c' )
-                    // InternalDefinitionLanguage.g:1521:4: 'c'
+                    // InternalDefinitionLanguage.g:1577:3: ( 'c' )
+                    // InternalDefinitionLanguage.g:1577:4: 'c'
                     {
                     match(input,38,FOLLOW_2); 
 
@@ -5076,14 +5227,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 13 :
-                    // InternalDefinitionLanguage.g:1525:2: ( ( 'm' ) )
+                    // InternalDefinitionLanguage.g:1581:2: ( ( 'm' ) )
                     {
-                    // InternalDefinitionLanguage.g:1525:2: ( ( 'm' ) )
-                    // InternalDefinitionLanguage.g:1526:3: ( 'm' )
+                    // InternalDefinitionLanguage.g:1581:2: ( ( 'm' ) )
+                    // InternalDefinitionLanguage.g:1582:3: ( 'm' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
-                    // InternalDefinitionLanguage.g:1527:3: ( 'm' )
-                    // InternalDefinitionLanguage.g:1527:4: 'm'
+                    // InternalDefinitionLanguage.g:1583:3: ( 'm' )
+                    // InternalDefinitionLanguage.g:1583:4: 'm'
                     {
                     match(input,39,FOLLOW_2); 
 
@@ -5097,14 +5248,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 14 :
-                    // InternalDefinitionLanguage.g:1531:2: ( ( '\\u00B5' ) )
+                    // InternalDefinitionLanguage.g:1587:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalDefinitionLanguage.g:1531:2: ( ( '\\u00B5' ) )
-                    // InternalDefinitionLanguage.g:1532:3: ( '\\u00B5' )
+                    // InternalDefinitionLanguage.g:1587:2: ( ( '\\u00B5' ) )
+                    // InternalDefinitionLanguage.g:1588:3: ( '\\u00B5' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
-                    // InternalDefinitionLanguage.g:1533:3: ( '\\u00B5' )
-                    // InternalDefinitionLanguage.g:1533:4: '\\u00B5'
+                    // InternalDefinitionLanguage.g:1589:3: ( '\\u00B5' )
+                    // InternalDefinitionLanguage.g:1589:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); 
 
@@ -5118,14 +5269,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 15 :
-                    // InternalDefinitionLanguage.g:1537:2: ( ( 'n' ) )
+                    // InternalDefinitionLanguage.g:1593:2: ( ( 'n' ) )
                     {
-                    // InternalDefinitionLanguage.g:1537:2: ( ( 'n' ) )
-                    // InternalDefinitionLanguage.g:1538:3: ( 'n' )
+                    // InternalDefinitionLanguage.g:1593:2: ( ( 'n' ) )
+                    // InternalDefinitionLanguage.g:1594:3: ( 'n' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
-                    // InternalDefinitionLanguage.g:1539:3: ( 'n' )
-                    // InternalDefinitionLanguage.g:1539:4: 'n'
+                    // InternalDefinitionLanguage.g:1595:3: ( 'n' )
+                    // InternalDefinitionLanguage.g:1595:4: 'n'
                     {
                     match(input,41,FOLLOW_2); 
 
@@ -5139,14 +5290,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 16 :
-                    // InternalDefinitionLanguage.g:1543:2: ( ( 'p' ) )
+                    // InternalDefinitionLanguage.g:1599:2: ( ( 'p' ) )
                     {
-                    // InternalDefinitionLanguage.g:1543:2: ( ( 'p' ) )
-                    // InternalDefinitionLanguage.g:1544:3: ( 'p' )
+                    // InternalDefinitionLanguage.g:1599:2: ( ( 'p' ) )
+                    // InternalDefinitionLanguage.g:1600:3: ( 'p' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
-                    // InternalDefinitionLanguage.g:1545:3: ( 'p' )
-                    // InternalDefinitionLanguage.g:1545:4: 'p'
+                    // InternalDefinitionLanguage.g:1601:3: ( 'p' )
+                    // InternalDefinitionLanguage.g:1601:4: 'p'
                     {
                     match(input,42,FOLLOW_2); 
 
@@ -5160,14 +5311,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 17 :
-                    // InternalDefinitionLanguage.g:1549:2: ( ( 'f' ) )
+                    // InternalDefinitionLanguage.g:1605:2: ( ( 'f' ) )
                     {
-                    // InternalDefinitionLanguage.g:1549:2: ( ( 'f' ) )
-                    // InternalDefinitionLanguage.g:1550:3: ( 'f' )
+                    // InternalDefinitionLanguage.g:1605:2: ( ( 'f' ) )
+                    // InternalDefinitionLanguage.g:1606:3: ( 'f' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
-                    // InternalDefinitionLanguage.g:1551:3: ( 'f' )
-                    // InternalDefinitionLanguage.g:1551:4: 'f'
+                    // InternalDefinitionLanguage.g:1607:3: ( 'f' )
+                    // InternalDefinitionLanguage.g:1607:4: 'f'
                     {
                     match(input,43,FOLLOW_2); 
 
@@ -5181,14 +5332,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 18 :
-                    // InternalDefinitionLanguage.g:1555:2: ( ( 'a' ) )
+                    // InternalDefinitionLanguage.g:1611:2: ( ( 'a' ) )
                     {
-                    // InternalDefinitionLanguage.g:1555:2: ( ( 'a' ) )
-                    // InternalDefinitionLanguage.g:1556:3: ( 'a' )
+                    // InternalDefinitionLanguage.g:1611:2: ( ( 'a' ) )
+                    // InternalDefinitionLanguage.g:1612:3: ( 'a' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
-                    // InternalDefinitionLanguage.g:1557:3: ( 'a' )
-                    // InternalDefinitionLanguage.g:1557:4: 'a'
+                    // InternalDefinitionLanguage.g:1613:3: ( 'a' )
+                    // InternalDefinitionLanguage.g:1613:4: 'a'
                     {
                     match(input,44,FOLLOW_2); 
 
@@ -5202,14 +5353,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 19 :
-                    // InternalDefinitionLanguage.g:1561:2: ( ( 'z' ) )
+                    // InternalDefinitionLanguage.g:1617:2: ( ( 'z' ) )
                     {
-                    // InternalDefinitionLanguage.g:1561:2: ( ( 'z' ) )
-                    // InternalDefinitionLanguage.g:1562:3: ( 'z' )
+                    // InternalDefinitionLanguage.g:1617:2: ( ( 'z' ) )
+                    // InternalDefinitionLanguage.g:1618:3: ( 'z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
-                    // InternalDefinitionLanguage.g:1563:3: ( 'z' )
-                    // InternalDefinitionLanguage.g:1563:4: 'z'
+                    // InternalDefinitionLanguage.g:1619:3: ( 'z' )
+                    // InternalDefinitionLanguage.g:1619:4: 'z'
                     {
                     match(input,45,FOLLOW_2); 
 
@@ -5223,14 +5374,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
                     }
                     break;
                 case 20 :
-                    // InternalDefinitionLanguage.g:1567:2: ( ( 'y' ) )
+                    // InternalDefinitionLanguage.g:1623:2: ( ( 'y' ) )
                     {
-                    // InternalDefinitionLanguage.g:1567:2: ( ( 'y' ) )
-                    // InternalDefinitionLanguage.g:1568:3: ( 'y' )
+                    // InternalDefinitionLanguage.g:1623:2: ( ( 'y' ) )
+                    // InternalDefinitionLanguage.g:1624:3: ( 'y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
-                    // InternalDefinitionLanguage.g:1569:3: ( 'y' )
-                    // InternalDefinitionLanguage.g:1569:4: 'y'
+                    // InternalDefinitionLanguage.g:1625:3: ( 'y' )
+                    // InternalDefinitionLanguage.g:1625:4: 'y'
                     {
                     match(input,46,FOLLOW_2); 
 
@@ -5261,14 +5412,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__0"
-    // InternalDefinitionLanguage.g:1577:1: rule__DefinitionModelRule__Group__0 : rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1 ;
+    // InternalDefinitionLanguage.g:1633:1: rule__DefinitionModelRule__Group__0 : rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1 ;
     public final void rule__DefinitionModelRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1581:1: ( rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1 )
-            // InternalDefinitionLanguage.g:1582:2: rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1
+            // InternalDefinitionLanguage.g:1637:1: ( rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1 )
+            // InternalDefinitionLanguage.g:1638:2: rule__DefinitionModelRule__Group__0__Impl rule__DefinitionModelRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__DefinitionModelRule__Group__0__Impl();
@@ -5299,20 +5450,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:1589:1: rule__DefinitionModelRule__Group__0__Impl : ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* ) ;
+    // InternalDefinitionLanguage.g:1645:1: rule__DefinitionModelRule__Group__0__Impl : ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* ) ;
     public final void rule__DefinitionModelRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1593:1: ( ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* ) )
-            // InternalDefinitionLanguage.g:1594:1: ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* )
+            // InternalDefinitionLanguage.g:1649:1: ( ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* ) )
+            // InternalDefinitionLanguage.g:1650:1: ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* )
             {
-            // InternalDefinitionLanguage.g:1594:1: ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* )
-            // InternalDefinitionLanguage.g:1595:2: ( rule__DefinitionModelRule__ImportsAssignment_0 )*
+            // InternalDefinitionLanguage.g:1650:1: ( ( rule__DefinitionModelRule__ImportsAssignment_0 )* )
+            // InternalDefinitionLanguage.g:1651:2: ( rule__DefinitionModelRule__ImportsAssignment_0 )*
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getImportsAssignment_0()); 
-            // InternalDefinitionLanguage.g:1596:2: ( rule__DefinitionModelRule__ImportsAssignment_0 )*
+            // InternalDefinitionLanguage.g:1652:2: ( rule__DefinitionModelRule__ImportsAssignment_0 )*
             loop12:
             do {
                 int alt12=2;
@@ -5325,7 +5476,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1596:3: rule__DefinitionModelRule__ImportsAssignment_0
+            	    // InternalDefinitionLanguage.g:1652:3: rule__DefinitionModelRule__ImportsAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__DefinitionModelRule__ImportsAssignment_0();
@@ -5364,14 +5515,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__1"
-    // InternalDefinitionLanguage.g:1604:1: rule__DefinitionModelRule__Group__1 : rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2 ;
+    // InternalDefinitionLanguage.g:1660:1: rule__DefinitionModelRule__Group__1 : rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2 ;
     public final void rule__DefinitionModelRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1608:1: ( rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2 )
-            // InternalDefinitionLanguage.g:1609:2: rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2
+            // InternalDefinitionLanguage.g:1664:1: ( rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2 )
+            // InternalDefinitionLanguage.g:1665:2: rule__DefinitionModelRule__Group__1__Impl rule__DefinitionModelRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__DefinitionModelRule__Group__1__Impl();
@@ -5402,17 +5553,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:1616:1: rule__DefinitionModelRule__Group__1__Impl : ( 'module' ) ;
+    // InternalDefinitionLanguage.g:1672:1: rule__DefinitionModelRule__Group__1__Impl : ( 'module' ) ;
     public final void rule__DefinitionModelRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1620:1: ( ( 'module' ) )
-            // InternalDefinitionLanguage.g:1621:1: ( 'module' )
+            // InternalDefinitionLanguage.g:1676:1: ( ( 'module' ) )
+            // InternalDefinitionLanguage.g:1677:1: ( 'module' )
             {
-            // InternalDefinitionLanguage.g:1621:1: ( 'module' )
-            // InternalDefinitionLanguage.g:1622:2: 'module'
+            // InternalDefinitionLanguage.g:1677:1: ( 'module' )
+            // InternalDefinitionLanguage.g:1678:2: 'module'
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getModuleKeyword_1()); 
             match(input,47,FOLLOW_2); 
@@ -5439,14 +5590,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__2"
-    // InternalDefinitionLanguage.g:1631:1: rule__DefinitionModelRule__Group__2 : rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3 ;
+    // InternalDefinitionLanguage.g:1687:1: rule__DefinitionModelRule__Group__2 : rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3 ;
     public final void rule__DefinitionModelRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1635:1: ( rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3 )
-            // InternalDefinitionLanguage.g:1636:2: rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3
+            // InternalDefinitionLanguage.g:1691:1: ( rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3 )
+            // InternalDefinitionLanguage.g:1692:2: rule__DefinitionModelRule__Group__2__Impl rule__DefinitionModelRule__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__DefinitionModelRule__Group__2__Impl();
@@ -5477,21 +5628,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:1643:1: rule__DefinitionModelRule__Group__2__Impl : ( ( rule__DefinitionModelRule__NameAssignment_2 ) ) ;
+    // InternalDefinitionLanguage.g:1699:1: rule__DefinitionModelRule__Group__2__Impl : ( ( rule__DefinitionModelRule__NameAssignment_2 ) ) ;
     public final void rule__DefinitionModelRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1647:1: ( ( ( rule__DefinitionModelRule__NameAssignment_2 ) ) )
-            // InternalDefinitionLanguage.g:1648:1: ( ( rule__DefinitionModelRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:1703:1: ( ( ( rule__DefinitionModelRule__NameAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:1704:1: ( ( rule__DefinitionModelRule__NameAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:1648:1: ( ( rule__DefinitionModelRule__NameAssignment_2 ) )
-            // InternalDefinitionLanguage.g:1649:2: ( rule__DefinitionModelRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:1704:1: ( ( rule__DefinitionModelRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:1705:2: ( rule__DefinitionModelRule__NameAssignment_2 )
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getNameAssignment_2()); 
-            // InternalDefinitionLanguage.g:1650:2: ( rule__DefinitionModelRule__NameAssignment_2 )
-            // InternalDefinitionLanguage.g:1650:3: rule__DefinitionModelRule__NameAssignment_2
+            // InternalDefinitionLanguage.g:1706:2: ( rule__DefinitionModelRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:1706:3: rule__DefinitionModelRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DefinitionModelRule__NameAssignment_2();
@@ -5524,14 +5675,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__3"
-    // InternalDefinitionLanguage.g:1658:1: rule__DefinitionModelRule__Group__3 : rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4 ;
+    // InternalDefinitionLanguage.g:1714:1: rule__DefinitionModelRule__Group__3 : rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4 ;
     public final void rule__DefinitionModelRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1662:1: ( rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4 )
-            // InternalDefinitionLanguage.g:1663:2: rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4
+            // InternalDefinitionLanguage.g:1718:1: ( rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4 )
+            // InternalDefinitionLanguage.g:1719:2: rule__DefinitionModelRule__Group__3__Impl rule__DefinitionModelRule__Group__4
             {
             pushFollow(FOLLOW_7);
             rule__DefinitionModelRule__Group__3__Impl();
@@ -5562,17 +5713,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:1670:1: rule__DefinitionModelRule__Group__3__Impl : ( '{' ) ;
+    // InternalDefinitionLanguage.g:1726:1: rule__DefinitionModelRule__Group__3__Impl : ( '{' ) ;
     public final void rule__DefinitionModelRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1674:1: ( ( '{' ) )
-            // InternalDefinitionLanguage.g:1675:1: ( '{' )
+            // InternalDefinitionLanguage.g:1730:1: ( ( '{' ) )
+            // InternalDefinitionLanguage.g:1731:1: ( '{' )
             {
-            // InternalDefinitionLanguage.g:1675:1: ( '{' )
-            // InternalDefinitionLanguage.g:1676:2: '{'
+            // InternalDefinitionLanguage.g:1731:1: ( '{' )
+            // InternalDefinitionLanguage.g:1732:2: '{'
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getLeftCurlyBracketKeyword_3()); 
             match(input,48,FOLLOW_2); 
@@ -5599,14 +5750,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__4"
-    // InternalDefinitionLanguage.g:1685:1: rule__DefinitionModelRule__Group__4 : rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5 ;
+    // InternalDefinitionLanguage.g:1741:1: rule__DefinitionModelRule__Group__4 : rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5 ;
     public final void rule__DefinitionModelRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1689:1: ( rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5 )
-            // InternalDefinitionLanguage.g:1690:2: rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5
+            // InternalDefinitionLanguage.g:1745:1: ( rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5 )
+            // InternalDefinitionLanguage.g:1746:2: rule__DefinitionModelRule__Group__4__Impl rule__DefinitionModelRule__Group__5
             {
             pushFollow(FOLLOW_7);
             rule__DefinitionModelRule__Group__4__Impl();
@@ -5637,33 +5788,33 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__4__Impl"
-    // InternalDefinitionLanguage.g:1697:1: rule__DefinitionModelRule__Group__4__Impl : ( ( rule__DefinitionModelRule__Alternatives_4 )* ) ;
+    // InternalDefinitionLanguage.g:1753:1: rule__DefinitionModelRule__Group__4__Impl : ( ( rule__DefinitionModelRule__Alternatives_4 )* ) ;
     public final void rule__DefinitionModelRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1701:1: ( ( ( rule__DefinitionModelRule__Alternatives_4 )* ) )
-            // InternalDefinitionLanguage.g:1702:1: ( ( rule__DefinitionModelRule__Alternatives_4 )* )
+            // InternalDefinitionLanguage.g:1757:1: ( ( ( rule__DefinitionModelRule__Alternatives_4 )* ) )
+            // InternalDefinitionLanguage.g:1758:1: ( ( rule__DefinitionModelRule__Alternatives_4 )* )
             {
-            // InternalDefinitionLanguage.g:1702:1: ( ( rule__DefinitionModelRule__Alternatives_4 )* )
-            // InternalDefinitionLanguage.g:1703:2: ( rule__DefinitionModelRule__Alternatives_4 )*
+            // InternalDefinitionLanguage.g:1758:1: ( ( rule__DefinitionModelRule__Alternatives_4 )* )
+            // InternalDefinitionLanguage.g:1759:2: ( rule__DefinitionModelRule__Alternatives_4 )*
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getAlternatives_4()); 
-            // InternalDefinitionLanguage.g:1704:2: ( rule__DefinitionModelRule__Alternatives_4 )*
+            // InternalDefinitionLanguage.g:1760:2: ( rule__DefinitionModelRule__Alternatives_4 )*
             loop13:
             do {
                 int alt13=2;
                 int LA13_0 = input.LA(1);
 
-                if ( (LA13_0==60||LA13_0==75||LA13_0==79) ) {
+                if ( (LA13_0==59||(LA13_0>=74 && LA13_0<=75)||LA13_0==79) ) {
                     alt13=1;
                 }
 
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1704:3: rule__DefinitionModelRule__Alternatives_4
+            	    // InternalDefinitionLanguage.g:1760:3: rule__DefinitionModelRule__Alternatives_4
             	    {
             	    pushFollow(FOLLOW_8);
             	    rule__DefinitionModelRule__Alternatives_4();
@@ -5702,14 +5853,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__5"
-    // InternalDefinitionLanguage.g:1712:1: rule__DefinitionModelRule__Group__5 : rule__DefinitionModelRule__Group__5__Impl ;
+    // InternalDefinitionLanguage.g:1768:1: rule__DefinitionModelRule__Group__5 : rule__DefinitionModelRule__Group__5__Impl ;
     public final void rule__DefinitionModelRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1716:1: ( rule__DefinitionModelRule__Group__5__Impl )
-            // InternalDefinitionLanguage.g:1717:2: rule__DefinitionModelRule__Group__5__Impl
+            // InternalDefinitionLanguage.g:1772:1: ( rule__DefinitionModelRule__Group__5__Impl )
+            // InternalDefinitionLanguage.g:1773:2: rule__DefinitionModelRule__Group__5__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DefinitionModelRule__Group__5__Impl();
@@ -5735,17 +5886,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__Group__5__Impl"
-    // InternalDefinitionLanguage.g:1723:1: rule__DefinitionModelRule__Group__5__Impl : ( '}' ) ;
+    // InternalDefinitionLanguage.g:1779:1: rule__DefinitionModelRule__Group__5__Impl : ( '}' ) ;
     public final void rule__DefinitionModelRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1727:1: ( ( '}' ) )
-            // InternalDefinitionLanguage.g:1728:1: ( '}' )
+            // InternalDefinitionLanguage.g:1783:1: ( ( '}' ) )
+            // InternalDefinitionLanguage.g:1784:1: ( '}' )
             {
-            // InternalDefinitionLanguage.g:1728:1: ( '}' )
-            // InternalDefinitionLanguage.g:1729:2: '}'
+            // InternalDefinitionLanguage.g:1784:1: ( '}' )
+            // InternalDefinitionLanguage.g:1785:2: '}'
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getRightCurlyBracketKeyword_5()); 
             match(input,49,FOLLOW_2); 
@@ -5772,14 +5923,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__0"
-    // InternalDefinitionLanguage.g:1739:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
+    // InternalDefinitionLanguage.g:1795:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
     public final void rule__ImportRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1743:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
-            // InternalDefinitionLanguage.g:1744:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
+            // InternalDefinitionLanguage.g:1799:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
+            // InternalDefinitionLanguage.g:1800:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ImportRule__Group__0__Impl();
@@ -5810,17 +5961,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:1751:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
+    // InternalDefinitionLanguage.g:1807:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
     public final void rule__ImportRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1755:1: ( ( 'import' ) )
-            // InternalDefinitionLanguage.g:1756:1: ( 'import' )
+            // InternalDefinitionLanguage.g:1811:1: ( ( 'import' ) )
+            // InternalDefinitionLanguage.g:1812:1: ( 'import' )
             {
-            // InternalDefinitionLanguage.g:1756:1: ( 'import' )
-            // InternalDefinitionLanguage.g:1757:2: 'import'
+            // InternalDefinitionLanguage.g:1812:1: ( 'import' )
+            // InternalDefinitionLanguage.g:1813:2: 'import'
             {
              before(grammarAccess.getImportRuleAccess().getImportKeyword_0()); 
             match(input,50,FOLLOW_2); 
@@ -5847,14 +5998,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__1"
-    // InternalDefinitionLanguage.g:1766:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
+    // InternalDefinitionLanguage.g:1822:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
     public final void rule__ImportRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1770:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
-            // InternalDefinitionLanguage.g:1771:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
+            // InternalDefinitionLanguage.g:1826:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
+            // InternalDefinitionLanguage.g:1827:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
             {
             pushFollow(FOLLOW_9);
             rule__ImportRule__Group__1__Impl();
@@ -5885,21 +6036,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:1778:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:1834:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
     public final void rule__ImportRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1782:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:1783:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalDefinitionLanguage.g:1838:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:1839:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:1783:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
-            // InternalDefinitionLanguage.g:1784:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalDefinitionLanguage.g:1839:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalDefinitionLanguage.g:1840:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
             {
              before(grammarAccess.getImportRuleAccess().getImportedNamespaceAssignment_1()); 
-            // InternalDefinitionLanguage.g:1785:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
-            // InternalDefinitionLanguage.g:1785:3: rule__ImportRule__ImportedNamespaceAssignment_1
+            // InternalDefinitionLanguage.g:1841:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalDefinitionLanguage.g:1841:3: rule__ImportRule__ImportedNamespaceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__ImportedNamespaceAssignment_1();
@@ -5932,14 +6083,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__2"
-    // InternalDefinitionLanguage.g:1793:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
+    // InternalDefinitionLanguage.g:1849:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
     public final void rule__ImportRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1797:1: ( rule__ImportRule__Group__2__Impl )
-            // InternalDefinitionLanguage.g:1798:2: rule__ImportRule__Group__2__Impl
+            // InternalDefinitionLanguage.g:1853:1: ( rule__ImportRule__Group__2__Impl )
+            // InternalDefinitionLanguage.g:1854:2: rule__ImportRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__Group__2__Impl();
@@ -5965,17 +6116,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ImportRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:1804:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
+    // InternalDefinitionLanguage.g:1860:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
     public final void rule__ImportRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1808:1: ( ( ';' ) )
-            // InternalDefinitionLanguage.g:1809:1: ( ';' )
+            // InternalDefinitionLanguage.g:1864:1: ( ( ';' ) )
+            // InternalDefinitionLanguage.g:1865:1: ( ';' )
             {
-            // InternalDefinitionLanguage.g:1809:1: ( ';' )
-            // InternalDefinitionLanguage.g:1810:2: ';'
+            // InternalDefinitionLanguage.g:1865:1: ( ';' )
+            // InternalDefinitionLanguage.g:1866:2: ';'
             {
              before(grammarAccess.getImportRuleAccess().getSemicolonKeyword_2()); 
             match(input,51,FOLLOW_2); 
@@ -6002,14 +6153,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:1820:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:1876:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
     public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1824:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:1825:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:1880:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:1881:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__OrExpressionRule__Group__0__Impl();
@@ -6040,21 +6191,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:1832:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:1888:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1836:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:1837:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:1892:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:1893:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:1837:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDefinitionLanguage.g:1838:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:1893:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:1894:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalDefinitionLanguage.g:1839:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDefinitionLanguage.g:1839:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+            // InternalDefinitionLanguage.g:1895:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:1895:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_0();
@@ -6087,14 +6238,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:1847:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:1903:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
     public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1851:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:1852:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:1907:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:1908:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__1__Impl();
@@ -6120,20 +6271,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:1858:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:1914:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
     public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1862:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:1863:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:1918:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:1919:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:1863:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:1864:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:1919:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:1920:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:1865:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:1921:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop14:
             do {
                 int alt14=2;
@@ -6146,7 +6297,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt14) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1865:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalDefinitionLanguage.g:1921:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__OrExpressionRule__Group_1__0();
@@ -6185,14 +6336,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:1874:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:1930:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
     public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1878:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:1879:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:1934:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:1935:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__OrExpressionRule__Group_1__0__Impl();
@@ -6223,17 +6374,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:1886:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    // InternalDefinitionLanguage.g:1942:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
     public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1890:1: ( ( 'OR' ) )
-            // InternalDefinitionLanguage.g:1891:1: ( 'OR' )
+            // InternalDefinitionLanguage.g:1946:1: ( ( 'OR' ) )
+            // InternalDefinitionLanguage.g:1947:1: ( 'OR' )
             {
-            // InternalDefinitionLanguage.g:1891:1: ( 'OR' )
-            // InternalDefinitionLanguage.g:1892:2: 'OR'
+            // InternalDefinitionLanguage.g:1947:1: ( 'OR' )
+            // InternalDefinitionLanguage.g:1948:2: 'OR'
             {
              before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             match(input,52,FOLLOW_2); 
@@ -6260,14 +6411,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:1901:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:1957:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
     public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1905:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:1906:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:1961:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:1962:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group_1__1__Impl();
@@ -6293,21 +6444,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:1912:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:1968:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1916:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:1917:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:1972:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:1973:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:1917:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:1918:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:1973:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:1974:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:1919:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDefinitionLanguage.g:1919:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDefinitionLanguage.g:1975:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:1975:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__SubExpressionsAssignment_1_1();
@@ -6340,14 +6491,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:1928:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:1984:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
     public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1932:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:1933:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:1988:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:1989:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
             pushFollow(FOLLOW_13);
             rule__XorExpressionRule__Group__0__Impl();
@@ -6378,21 +6529,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:1940:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:1996:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1944:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:1945:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2000:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2001:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:1945:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDefinitionLanguage.g:1946:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:2001:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2002:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalDefinitionLanguage.g:1947:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDefinitionLanguage.g:1947:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+            // InternalDefinitionLanguage.g:2003:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:2003:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_0();
@@ -6425,14 +6576,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:1955:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2011:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
     public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1959:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:1960:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2015:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2016:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__1__Impl();
@@ -6458,20 +6609,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:1966:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:2022:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
     public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1970:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:1971:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2026:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:2027:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:1971:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:1972:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2027:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2028:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:1973:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2029:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop15:
             do {
                 int alt15=2;
@@ -6484,7 +6635,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1973:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalDefinitionLanguage.g:2029:3: rule__XorExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_14);
             	    rule__XorExpressionRule__Group_1__0();
@@ -6523,14 +6674,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:1982:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:2038:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
     public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1986:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:1987:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:2042:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:2043:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__XorExpressionRule__Group_1__0__Impl();
@@ -6561,17 +6712,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:1994:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    // InternalDefinitionLanguage.g:2050:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
     public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:1998:1: ( ( 'XOR' ) )
-            // InternalDefinitionLanguage.g:1999:1: ( 'XOR' )
+            // InternalDefinitionLanguage.g:2054:1: ( ( 'XOR' ) )
+            // InternalDefinitionLanguage.g:2055:1: ( 'XOR' )
             {
-            // InternalDefinitionLanguage.g:1999:1: ( 'XOR' )
-            // InternalDefinitionLanguage.g:2000:2: 'XOR'
+            // InternalDefinitionLanguage.g:2055:1: ( 'XOR' )
+            // InternalDefinitionLanguage.g:2056:2: 'XOR'
             {
              before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             match(input,53,FOLLOW_2); 
@@ -6598,14 +6749,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:2009:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:2065:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
     public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2013:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:2014:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:2069:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:2070:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group_1__1__Impl();
@@ -6631,21 +6782,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:2020:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:2076:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2024:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2025:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2080:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:2081:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2025:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:2026:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2081:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2082:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:2027:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDefinitionLanguage.g:2027:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDefinitionLanguage.g:2083:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2083:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__SubExpressionsAssignment_1_1();
@@ -6678,14 +6829,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2036:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2092:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
     public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2040:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2041:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2096:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2097:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_15);
             rule__AndExpressionRule__Group__0__Impl();
@@ -6716,21 +6867,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2048:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2104:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
     public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2052:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2053:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2108:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2109:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2053:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2054:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:2109:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2110:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalDefinitionLanguage.g:2055:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalDefinitionLanguage.g:2055:3: rule__AndExpressionRule__SubExpressionsAssignment_0
+            // InternalDefinitionLanguage.g:2111:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalDefinitionLanguage.g:2111:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_0();
@@ -6763,14 +6914,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2063:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2119:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
     public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2067:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2068:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2123:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2124:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__1__Impl();
@@ -6796,20 +6947,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2074:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:2130:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
     public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2078:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:2079:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2134:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:2135:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:2079:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:2080:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2135:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2136:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:2081:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2137:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop16:
             do {
                 int alt16=2;
@@ -6822,7 +6973,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2081:3: rule__AndExpressionRule__Group_1__0
+            	    // InternalDefinitionLanguage.g:2137:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_16);
             	    rule__AndExpressionRule__Group_1__0();
@@ -6861,14 +7012,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:2090:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:2146:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
     public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2094:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:2095:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:2150:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:2151:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__AndExpressionRule__Group_1__0__Impl();
@@ -6899,17 +7050,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:2102:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    // InternalDefinitionLanguage.g:2158:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
     public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2106:1: ( ( 'AND' ) )
-            // InternalDefinitionLanguage.g:2107:1: ( 'AND' )
+            // InternalDefinitionLanguage.g:2162:1: ( ( 'AND' ) )
+            // InternalDefinitionLanguage.g:2163:1: ( 'AND' )
             {
-            // InternalDefinitionLanguage.g:2107:1: ( 'AND' )
-            // InternalDefinitionLanguage.g:2108:2: 'AND'
+            // InternalDefinitionLanguage.g:2163:1: ( 'AND' )
+            // InternalDefinitionLanguage.g:2164:2: 'AND'
             {
              before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             match(input,54,FOLLOW_2); 
@@ -6936,14 +7087,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:2117:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:2173:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
     public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2121:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:2122:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:2177:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:2178:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group_1__1__Impl();
@@ -6969,21 +7120,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:2128:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:2184:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
     public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2132:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2133:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2188:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:2189:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2133:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:2134:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2189:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2190:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:2135:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalDefinitionLanguage.g:2135:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalDefinitionLanguage.g:2191:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2191:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__SubExpressionsAssignment_1_1();
@@ -7016,14 +7167,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2144:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2200:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
     public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2148:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2149:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2204:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2205:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__NotExpressionRule__Group__0__Impl();
@@ -7054,20 +7205,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2156:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    // InternalDefinitionLanguage.g:2212:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
     public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2160:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalDefinitionLanguage.g:2161:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalDefinitionLanguage.g:2216:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalDefinitionLanguage.g:2217:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalDefinitionLanguage.g:2161:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalDefinitionLanguage.g:2162:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalDefinitionLanguage.g:2217:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalDefinitionLanguage.g:2218:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            // InternalDefinitionLanguage.g:2163:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalDefinitionLanguage.g:2219:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -7076,7 +7227,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt17) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2163:3: rule__NotExpressionRule__NegatedAssignment_0
+                    // InternalDefinitionLanguage.g:2219:3: rule__NotExpressionRule__NegatedAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__NotExpressionRule__NegatedAssignment_0();
@@ -7112,14 +7263,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2171:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2227:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
     public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2175:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2176:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2231:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2232:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__1__Impl();
@@ -7145,21 +7296,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2182:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:2238:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
     public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2186:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:2187:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2242:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:2243:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:2187:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalDefinitionLanguage.g:2188:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalDefinitionLanguage.g:2243:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2244:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
-            // InternalDefinitionLanguage.g:2189:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalDefinitionLanguage.g:2189:3: rule__NotExpressionRule__OperandAssignment_1
+            // InternalDefinitionLanguage.g:2245:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalDefinitionLanguage.g:2245:3: rule__NotExpressionRule__OperandAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__OperandAssignment_1();
@@ -7192,14 +7343,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2198:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2254:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
     public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2202:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2203:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2258:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2259:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_17);
             rule__ComparisonExpressionRule__Group__0__Impl();
@@ -7230,21 +7381,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2210:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2266:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2214:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2215:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2270:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2271:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2215:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2216:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2271:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2272:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalDefinitionLanguage.g:2217:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalDefinitionLanguage.g:2217:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            // InternalDefinitionLanguage.g:2273:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2273:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__LeftOperandAssignment_0();
@@ -7277,14 +7428,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2225:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2281:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
     public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2229:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2230:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2285:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2286:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__1__Impl();
@@ -7310,20 +7461,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2236:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    // InternalDefinitionLanguage.g:2292:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
     public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2240:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalDefinitionLanguage.g:2241:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalDefinitionLanguage.g:2296:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalDefinitionLanguage.g:2297:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalDefinitionLanguage.g:2241:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalDefinitionLanguage.g:2242:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalDefinitionLanguage.g:2297:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalDefinitionLanguage.g:2298:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
-            // InternalDefinitionLanguage.g:2243:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalDefinitionLanguage.g:2299:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             loop18:
             do {
                 int alt18=2;
@@ -7336,7 +7487,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2243:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalDefinitionLanguage.g:2299:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
             	    {
             	    pushFollow(FOLLOW_18);
             	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
@@ -7375,14 +7526,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2252:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2308:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
     public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2256:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2257:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2312:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2313:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__PartialComparisonExpressionRule__Group__0__Impl();
@@ -7413,21 +7564,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2264:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2320:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2268:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2269:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2324:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2325:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2269:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2270:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalDefinitionLanguage.g:2325:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2326:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
-            // InternalDefinitionLanguage.g:2271:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalDefinitionLanguage.g:2271:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            // InternalDefinitionLanguage.g:2327:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalDefinitionLanguage.g:2327:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__OperatorAssignment_0();
@@ -7460,14 +7611,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2279:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2335:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
     public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2283:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2284:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2339:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2340:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__1__Impl();
@@ -7493,21 +7644,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2290:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:2346:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2294:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:2295:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2350:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:2351:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:2295:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalDefinitionLanguage.g:2296:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2351:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2352:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalDefinitionLanguage.g:2297:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalDefinitionLanguage.g:2297:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+            // InternalDefinitionLanguage.g:2353:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2353:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
@@ -7540,14 +7691,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2306:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2362:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2310:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2311:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2366:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2367:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_19);
             rule__AddOrSubtractExpressionRule__Group__0__Impl();
@@ -7578,21 +7729,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2318:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2374:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2322:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2323:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2378:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2379:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2323:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2324:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2379:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2380:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalDefinitionLanguage.g:2325:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalDefinitionLanguage.g:2325:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+            // InternalDefinitionLanguage.g:2381:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2381:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
@@ -7625,14 +7776,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2333:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2389:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2337:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2338:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2393:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2394:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__1__Impl();
@@ -7658,20 +7809,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2344:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:2400:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
     public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2348:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:2349:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2404:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:2405:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:2349:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:2350:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2405:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2406:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:2351:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2407:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop19:
             do {
                 int alt19=2;
@@ -7684,7 +7835,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt19) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2351:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalDefinitionLanguage.g:2407:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_20);
             	    rule__AddOrSubtractExpressionRule__Group_1__0();
@@ -7723,14 +7874,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:2360:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:2416:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2364:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:2365:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:2420:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:2421:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
@@ -7761,21 +7912,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:2372:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalDefinitionLanguage.g:2428:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2376:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalDefinitionLanguage.g:2377:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDefinitionLanguage.g:2432:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalDefinitionLanguage.g:2433:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalDefinitionLanguage.g:2377:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalDefinitionLanguage.g:2378:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDefinitionLanguage.g:2433:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDefinitionLanguage.g:2434:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalDefinitionLanguage.g:2379:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalDefinitionLanguage.g:2379:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+            // InternalDefinitionLanguage.g:2435:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDefinitionLanguage.g:2435:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
@@ -7808,14 +7959,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:2387:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:2443:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2391:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:2392:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:2447:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:2448:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
@@ -7841,21 +7992,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:2398:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:2454:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2402:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2403:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2458:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:2459:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2403:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:2404:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2459:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2460:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:2405:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalDefinitionLanguage.g:2405:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+            // InternalDefinitionLanguage.g:2461:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2461:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
@@ -7888,14 +8039,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2414:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2470:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2418:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2419:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2474:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2475:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_21);
             rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
@@ -7926,21 +8077,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2426:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2482:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2430:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2431:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2486:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2487:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2431:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2432:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2487:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2488:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalDefinitionLanguage.g:2433:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalDefinitionLanguage.g:2433:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+            // InternalDefinitionLanguage.g:2489:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2489:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
@@ -7973,14 +8124,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2441:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2497:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2445:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2446:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2501:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2502:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
@@ -8006,20 +8157,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2452:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:2508:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2456:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:2457:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2512:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:2513:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:2457:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:2458:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2513:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:2514:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:2459:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalDefinitionLanguage.g:2515:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop20:
             do {
                 int alt20=2;
@@ -8032,7 +8183,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt20) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2459:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
+            	    // InternalDefinitionLanguage.g:2515:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_22);
             	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
@@ -8071,14 +8222,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:2468:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:2524:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2472:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:2473:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:2528:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:2529:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
@@ -8109,21 +8260,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:2480:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    // InternalDefinitionLanguage.g:2536:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2484:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalDefinitionLanguage.g:2485:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDefinitionLanguage.g:2540:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalDefinitionLanguage.g:2541:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalDefinitionLanguage.g:2485:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalDefinitionLanguage.g:2486:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDefinitionLanguage.g:2541:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalDefinitionLanguage.g:2542:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalDefinitionLanguage.g:2487:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalDefinitionLanguage.g:2487:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalDefinitionLanguage.g:2543:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalDefinitionLanguage.g:2543:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
@@ -8156,14 +8307,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:2495:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:2551:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2499:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:2500:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:2555:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:2556:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
@@ -8189,21 +8340,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:2506:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:2562:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2510:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2511:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2566:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:2567:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2511:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:2512:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2567:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2568:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:2513:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalDefinitionLanguage.g:2513:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+            // InternalDefinitionLanguage.g:2569:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2569:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
@@ -8236,14 +8387,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2522:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2578:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
     public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2526:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2527:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2582:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2583:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_23);
             rule__PowerOfExpressionRule__Group__0__Impl();
@@ -8274,21 +8425,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2534:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2590:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
     public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2538:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2539:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2594:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2595:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2539:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2540:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2595:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2596:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalDefinitionLanguage.g:2541:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalDefinitionLanguage.g:2541:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalDefinitionLanguage.g:2597:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalDefinitionLanguage.g:2597:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__LeftOperandAssignment_0();
@@ -8321,14 +8472,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2549:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2605:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2553:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2554:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2609:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2610:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__1__Impl();
@@ -8354,20 +8505,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2560:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    // InternalDefinitionLanguage.g:2616:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
     public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2564:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalDefinitionLanguage.g:2565:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalDefinitionLanguage.g:2620:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalDefinitionLanguage.g:2621:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalDefinitionLanguage.g:2565:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalDefinitionLanguage.g:2566:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalDefinitionLanguage.g:2621:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalDefinitionLanguage.g:2622:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:2567:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalDefinitionLanguage.g:2623:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -8376,7 +8527,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt21) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2567:3: rule__PowerOfExpressionRule__Group_1__0
+                    // InternalDefinitionLanguage.g:2623:3: rule__PowerOfExpressionRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PowerOfExpressionRule__Group_1__0();
@@ -8412,14 +8563,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalDefinitionLanguage.g:2576:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    // InternalDefinitionLanguage.g:2632:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
     public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2580:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalDefinitionLanguage.g:2581:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalDefinitionLanguage.g:2636:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalDefinitionLanguage.g:2637:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
             pushFollow(FOLLOW_12);
             rule__PowerOfExpressionRule__Group_1__0__Impl();
@@ -8450,17 +8601,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:2588:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    // InternalDefinitionLanguage.g:2644:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
     public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2592:1: ( ( '^' ) )
-            // InternalDefinitionLanguage.g:2593:1: ( '^' )
+            // InternalDefinitionLanguage.g:2648:1: ( ( '^' ) )
+            // InternalDefinitionLanguage.g:2649:1: ( '^' )
             {
-            // InternalDefinitionLanguage.g:2593:1: ( '^' )
-            // InternalDefinitionLanguage.g:2594:2: '^'
+            // InternalDefinitionLanguage.g:2649:1: ( '^' )
+            // InternalDefinitionLanguage.g:2650:2: '^'
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
             match(input,55,FOLLOW_2); 
@@ -8487,14 +8638,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalDefinitionLanguage.g:2603:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:2659:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
     public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2607:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:2608:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:2663:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:2664:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group_1__1__Impl();
@@ -8520,21 +8671,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:2614:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:2670:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
     public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2618:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2619:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2674:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalDefinitionLanguage.g:2675:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2619:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalDefinitionLanguage.g:2620:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2675:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalDefinitionLanguage.g:2676:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
-            // InternalDefinitionLanguage.g:2621:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalDefinitionLanguage.g:2621:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+            // InternalDefinitionLanguage.g:2677:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalDefinitionLanguage.g:2677:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
@@ -8567,14 +8718,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalDefinitionLanguage.g:2630:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2686:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2634:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalDefinitionLanguage.g:2635:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalDefinitionLanguage.g:2690:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalDefinitionLanguage.g:2691:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
@@ -8605,20 +8756,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2642:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    // InternalDefinitionLanguage.g:2698:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2646:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalDefinitionLanguage.g:2647:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalDefinitionLanguage.g:2702:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalDefinitionLanguage.g:2703:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-            // InternalDefinitionLanguage.g:2647:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalDefinitionLanguage.g:2648:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalDefinitionLanguage.g:2703:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalDefinitionLanguage.g:2704:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
-            // InternalDefinitionLanguage.g:2649:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalDefinitionLanguage.g:2705:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             loop22:
             do {
                 int alt22=2;
@@ -8631,7 +8782,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2649:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    // InternalDefinitionLanguage.g:2705:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
             	    {
             	    pushFollow(FOLLOW_20);
             	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
@@ -8670,14 +8821,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalDefinitionLanguage.g:2657:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:2713:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2661:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:2662:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:2717:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:2718:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
@@ -8703,21 +8854,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2668:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:2724:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2672:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:2673:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2728:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:2729:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:2673:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalDefinitionLanguage.g:2674:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2729:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2730:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalDefinitionLanguage.g:2675:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalDefinitionLanguage.g:2675:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            // InternalDefinitionLanguage.g:2731:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2731:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
@@ -8750,14 +8901,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalDefinitionLanguage.g:2684:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2740:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
     public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2688:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalDefinitionLanguage.g:2689:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalDefinitionLanguage.g:2744:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalDefinitionLanguage.g:2745:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__ParanthesesRule__Group__0__Impl();
@@ -8788,17 +8939,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2696:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    // InternalDefinitionLanguage.g:2752:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
     public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2700:1: ( ( '(' ) )
-            // InternalDefinitionLanguage.g:2701:1: ( '(' )
+            // InternalDefinitionLanguage.g:2756:1: ( ( '(' ) )
+            // InternalDefinitionLanguage.g:2757:1: ( '(' )
             {
-            // InternalDefinitionLanguage.g:2701:1: ( '(' )
-            // InternalDefinitionLanguage.g:2702:2: '('
+            // InternalDefinitionLanguage.g:2757:1: ( '(' )
+            // InternalDefinitionLanguage.g:2758:2: '('
             {
              before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             match(input,56,FOLLOW_2); 
@@ -8825,14 +8976,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalDefinitionLanguage.g:2711:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    // InternalDefinitionLanguage.g:2767:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
     public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2715:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalDefinitionLanguage.g:2716:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalDefinitionLanguage.g:2771:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalDefinitionLanguage.g:2772:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
             pushFollow(FOLLOW_24);
             rule__ParanthesesRule__Group__1__Impl();
@@ -8863,21 +9014,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2723:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:2779:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
     public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2727:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:2728:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2783:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:2784:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:2728:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalDefinitionLanguage.g:2729:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2784:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalDefinitionLanguage.g:2785:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalDefinitionLanguage.g:2730:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalDefinitionLanguage.g:2730:3: rule__ParanthesesRule__SubExpressionAssignment_1
+            // InternalDefinitionLanguage.g:2786:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalDefinitionLanguage.g:2786:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__SubExpressionAssignment_1();
@@ -8910,14 +9061,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalDefinitionLanguage.g:2738:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    // InternalDefinitionLanguage.g:2794:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
     public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2742:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalDefinitionLanguage.g:2743:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalDefinitionLanguage.g:2798:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalDefinitionLanguage.g:2799:2: rule__ParanthesesRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__2__Impl();
@@ -8943,17 +9094,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:2749:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    // InternalDefinitionLanguage.g:2805:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
     public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2753:1: ( ( ')' ) )
-            // InternalDefinitionLanguage.g:2754:1: ( ')' )
+            // InternalDefinitionLanguage.g:2809:1: ( ( ')' ) )
+            // InternalDefinitionLanguage.g:2810:1: ( ')' )
             {
-            // InternalDefinitionLanguage.g:2754:1: ( ')' )
-            // InternalDefinitionLanguage.g:2755:2: ')'
+            // InternalDefinitionLanguage.g:2810:1: ( ')' )
+            // InternalDefinitionLanguage.g:2811:2: ')'
             {
              before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
             match(input,57,FOLLOW_2); 
@@ -8980,14 +9131,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__0"
-    // InternalDefinitionLanguage.g:2765:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    // InternalDefinitionLanguage.g:2821:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
     public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2769:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalDefinitionLanguage.g:2770:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalDefinitionLanguage.g:2825:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalDefinitionLanguage.g:2826:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
             pushFollow(FOLLOW_25);
             rule__CallRule__Group__0__Impl();
@@ -9018,21 +9169,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2777:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:2833:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
     public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2781:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:2782:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2837:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:2838:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2782:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalDefinitionLanguage.g:2783:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalDefinitionLanguage.g:2838:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalDefinitionLanguage.g:2839:2: ( rule__CallRule__FunctionAssignment_0 )
             {
              before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
-            // InternalDefinitionLanguage.g:2784:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalDefinitionLanguage.g:2784:3: rule__CallRule__FunctionAssignment_0
+            // InternalDefinitionLanguage.g:2840:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalDefinitionLanguage.g:2840:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__FunctionAssignment_0();
@@ -9065,14 +9216,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__1"
-    // InternalDefinitionLanguage.g:2792:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    // InternalDefinitionLanguage.g:2848:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
     public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2796:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalDefinitionLanguage.g:2797:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalDefinitionLanguage.g:2852:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalDefinitionLanguage.g:2853:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
             pushFollow(FOLLOW_26);
             rule__CallRule__Group__1__Impl();
@@ -9103,17 +9254,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:2804:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    // InternalDefinitionLanguage.g:2860:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
     public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2808:1: ( ( '(' ) )
-            // InternalDefinitionLanguage.g:2809:1: ( '(' )
+            // InternalDefinitionLanguage.g:2864:1: ( ( '(' ) )
+            // InternalDefinitionLanguage.g:2865:1: ( '(' )
             {
-            // InternalDefinitionLanguage.g:2809:1: ( '(' )
-            // InternalDefinitionLanguage.g:2810:2: '('
+            // InternalDefinitionLanguage.g:2865:1: ( '(' )
+            // InternalDefinitionLanguage.g:2866:2: '('
             {
              before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
             match(input,56,FOLLOW_2); 
@@ -9140,14 +9291,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__2"
-    // InternalDefinitionLanguage.g:2819:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    // InternalDefinitionLanguage.g:2875:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
     public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2823:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalDefinitionLanguage.g:2824:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalDefinitionLanguage.g:2879:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalDefinitionLanguage.g:2880:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_26);
             rule__CallRule__Group__2__Impl();
@@ -9178,29 +9329,29 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:2831:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    // InternalDefinitionLanguage.g:2887:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
     public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2835:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalDefinitionLanguage.g:2836:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalDefinitionLanguage.g:2891:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalDefinitionLanguage.g:2892:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalDefinitionLanguage.g:2836:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalDefinitionLanguage.g:2837:2: ( rule__CallRule__Group_2__0 )?
+            // InternalDefinitionLanguage.g:2892:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalDefinitionLanguage.g:2893:2: ( rule__CallRule__Group_2__0 )?
             {
              before(grammarAccess.getCallRuleAccess().getGroup_2()); 
-            // InternalDefinitionLanguage.g:2838:2: ( rule__CallRule__Group_2__0 )?
+            // InternalDefinitionLanguage.g:2894:2: ( rule__CallRule__Group_2__0 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
-            if ( ((LA23_0>=RULE_QUOTED_ID && LA23_0<=RULE_STRING)||LA23_0==15||(LA23_0>=22 && LA23_0<=23)||LA23_0==56||LA23_0==59||(LA23_0>=77 && LA23_0<=78)) ) {
+            if ( ((LA23_0>=RULE_QUOTED_ID && LA23_0<=RULE_STRING)||LA23_0==15||(LA23_0>=22 && LA23_0<=23)||LA23_0==56||(LA23_0>=77 && LA23_0<=78)) ) {
                 alt23=1;
             }
             switch (alt23) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2838:3: rule__CallRule__Group_2__0
+                    // InternalDefinitionLanguage.g:2894:3: rule__CallRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__CallRule__Group_2__0();
@@ -9236,14 +9387,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__3"
-    // InternalDefinitionLanguage.g:2846:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    // InternalDefinitionLanguage.g:2902:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
     public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2850:1: ( rule__CallRule__Group__3__Impl )
-            // InternalDefinitionLanguage.g:2851:2: rule__CallRule__Group__3__Impl
+            // InternalDefinitionLanguage.g:2906:1: ( rule__CallRule__Group__3__Impl )
+            // InternalDefinitionLanguage.g:2907:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__3__Impl();
@@ -9269,17 +9420,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:2857:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    // InternalDefinitionLanguage.g:2913:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
     public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2861:1: ( ( ')' ) )
-            // InternalDefinitionLanguage.g:2862:1: ( ')' )
+            // InternalDefinitionLanguage.g:2917:1: ( ( ')' ) )
+            // InternalDefinitionLanguage.g:2918:1: ( ')' )
             {
-            // InternalDefinitionLanguage.g:2862:1: ( ')' )
-            // InternalDefinitionLanguage.g:2863:2: ')'
+            // InternalDefinitionLanguage.g:2918:1: ( ')' )
+            // InternalDefinitionLanguage.g:2919:2: ')'
             {
              before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
             match(input,57,FOLLOW_2); 
@@ -9306,14 +9457,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalDefinitionLanguage.g:2873:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    // InternalDefinitionLanguage.g:2929:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
     public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2877:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalDefinitionLanguage.g:2878:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
+            // InternalDefinitionLanguage.g:2933:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalDefinitionLanguage.g:2934:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
             pushFollow(FOLLOW_27);
             rule__CallRule__Group_2__0__Impl();
@@ -9344,21 +9495,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalDefinitionLanguage.g:2885:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    // InternalDefinitionLanguage.g:2941:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
     public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2889:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalDefinitionLanguage.g:2890:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalDefinitionLanguage.g:2945:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalDefinitionLanguage.g:2946:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalDefinitionLanguage.g:2890:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalDefinitionLanguage.g:2891:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalDefinitionLanguage.g:2946:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalDefinitionLanguage.g:2947:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
              before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
-            // InternalDefinitionLanguage.g:2892:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalDefinitionLanguage.g:2892:3: rule__CallRule__ParametersAssignment_2_0
+            // InternalDefinitionLanguage.g:2948:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalDefinitionLanguage.g:2948:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_0();
@@ -9391,14 +9542,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalDefinitionLanguage.g:2900:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    // InternalDefinitionLanguage.g:2956:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
     public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2904:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalDefinitionLanguage.g:2905:2: rule__CallRule__Group_2__1__Impl
+            // InternalDefinitionLanguage.g:2960:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalDefinitionLanguage.g:2961:2: rule__CallRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2__1__Impl();
@@ -9424,20 +9575,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalDefinitionLanguage.g:2911:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:2967:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
     public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2915:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalDefinitionLanguage.g:2916:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalDefinitionLanguage.g:2971:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalDefinitionLanguage.g:2972:1: ( ( rule__CallRule__Group_2_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:2916:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalDefinitionLanguage.g:2917:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalDefinitionLanguage.g:2972:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalDefinitionLanguage.g:2973:2: ( rule__CallRule__Group_2_1__0 )*
             {
              before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
-            // InternalDefinitionLanguage.g:2918:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalDefinitionLanguage.g:2974:2: ( rule__CallRule__Group_2_1__0 )*
             loop24:
             do {
                 int alt24=2;
@@ -9450,7 +9601,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt24) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2918:3: rule__CallRule__Group_2_1__0
+            	    // InternalDefinitionLanguage.g:2974:3: rule__CallRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_28);
             	    rule__CallRule__Group_2_1__0();
@@ -9489,14 +9640,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalDefinitionLanguage.g:2927:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    // InternalDefinitionLanguage.g:2983:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
     public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2931:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalDefinitionLanguage.g:2932:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalDefinitionLanguage.g:2987:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalDefinitionLanguage.g:2988:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
             {
             pushFollow(FOLLOW_12);
             rule__CallRule__Group_2_1__0__Impl();
@@ -9527,17 +9678,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalDefinitionLanguage.g:2939:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalDefinitionLanguage.g:2995:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2943:1: ( ( ',' ) )
-            // InternalDefinitionLanguage.g:2944:1: ( ',' )
+            // InternalDefinitionLanguage.g:2999:1: ( ( ',' ) )
+            // InternalDefinitionLanguage.g:3000:1: ( ',' )
             {
-            // InternalDefinitionLanguage.g:2944:1: ( ',' )
-            // InternalDefinitionLanguage.g:2945:2: ','
+            // InternalDefinitionLanguage.g:3000:1: ( ',' )
+            // InternalDefinitionLanguage.g:3001:2: ','
             {
              before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
             match(input,58,FOLLOW_2); 
@@ -9564,14 +9715,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalDefinitionLanguage.g:2954:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    // InternalDefinitionLanguage.g:3010:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
     public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2958:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalDefinitionLanguage.g:2959:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalDefinitionLanguage.g:3014:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalDefinitionLanguage.g:3015:2: rule__CallRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group_2_1__1__Impl();
@@ -9597,21 +9748,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalDefinitionLanguage.g:2965:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:3021:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
     public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2969:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalDefinitionLanguage.g:2970:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalDefinitionLanguage.g:3025:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalDefinitionLanguage.g:3026:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:2970:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalDefinitionLanguage.g:2971:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalDefinitionLanguage.g:3026:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalDefinitionLanguage.g:3027:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
             {
              before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
-            // InternalDefinitionLanguage.g:2972:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalDefinitionLanguage.g:2972:3: rule__CallRule__ParametersAssignment_2_1_1
+            // InternalDefinitionLanguage.g:3028:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalDefinitionLanguage.g:3028:3: rule__CallRule__ParametersAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__ParametersAssignment_2_1_1();
@@ -9643,23 +9794,23 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalDefinitionLanguage.g:2981:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
+    // InternalDefinitionLanguage.g:3037:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2985:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalDefinitionLanguage.g:2986:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
+            // InternalDefinitionLanguage.g:3041:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalDefinitionLanguage.g:3042:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_12);
-            rule__ValueReferenceRule__Group__0__Impl();
+            pushFollow(FOLLOW_29);
+            rule__DoubleLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
+            rule__DoubleLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -9678,29 +9829,35 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:2993:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
+    // InternalDefinitionLanguage.g:3049:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:2997:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:2998:1: ( () )
+            // InternalDefinitionLanguage.g:3053:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:3054:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:2998:1: ( () )
-            // InternalDefinitionLanguage.g:2999:2: ()
+            // InternalDefinitionLanguage.g:3054:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalDefinitionLanguage.g:3055:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-            // InternalDefinitionLanguage.g:3000:2: ()
-            // InternalDefinitionLanguage.g:3000:3: 
+             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalDefinitionLanguage.g:3056:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalDefinitionLanguage.g:3056:3: rule__DoubleLiteralRule__LiteralAssignment_0
             {
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__LiteralAssignment_0();
+
+            state._fsp--;
+
+
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -9708,6 +9865,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -9715,21 +9876,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalDefinitionLanguage.g:3008:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
+    // InternalDefinitionLanguage.g:3064:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3012:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3013:2: rule__ValueReferenceRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3068:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3069:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
+            rule__DoubleLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -9748,25 +9909,46 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3019:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
+    // InternalDefinitionLanguage.g:3075:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3023:1: ( ( 'value' ) )
-            // InternalDefinitionLanguage.g:3024:1: ( 'value' )
+            // InternalDefinitionLanguage.g:3079:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalDefinitionLanguage.g:3080:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalDefinitionLanguage.g:3024:1: ( 'value' )
-            // InternalDefinitionLanguage.g:3025:2: 'value'
+            // InternalDefinitionLanguage.g:3080:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalDefinitionLanguage.g:3081:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-            match(input,59,FOLLOW_2); 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalDefinitionLanguage.g:3082:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
+
+            if ( ((LA25_0>=27 && LA25_0<=46)) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalDefinitionLanguage.g:3082:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DoubleLiteralRule__FactorAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -9785,26 +9967,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalDefinitionLanguage.g:3035:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
-    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
+    // InternalDefinitionLanguage.g:3091:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3039:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalDefinitionLanguage.g:3040:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalDefinitionLanguage.g:3095:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalDefinitionLanguage.g:3096:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
             {
             pushFollow(FOLLOW_29);
-            rule__DoubleLiteralRule__Group__0__Impl();
+            rule__IntegerLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1();
+            rule__IntegerLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -9823,204 +10005,28 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3047:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
+    // InternalDefinitionLanguage.g:3103:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3051:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:3052:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalDefinitionLanguage.g:3107:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:3108:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:3052:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalDefinitionLanguage.g:3053:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalDefinitionLanguage.g:3108:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalDefinitionLanguage.g:3109:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalDefinitionLanguage.g:3054:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalDefinitionLanguage.g:3054:3: rule__DoubleLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalDefinitionLanguage.g:3110:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalDefinitionLanguage.g:3110:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__LiteralAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
-
-
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalDefinitionLanguage.g:3062:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
-    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalDefinitionLanguage.g:3066:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3067:2: rule__DoubleLiteralRule__Group__1__Impl
-            {
-            pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1__Impl();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
-
-
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3073:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalDefinitionLanguage.g:3077:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalDefinitionLanguage.g:3078:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            {
-            // InternalDefinitionLanguage.g:3078:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalDefinitionLanguage.g:3079:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalDefinitionLanguage.g:3080:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            int alt25=2;
-            int LA25_0 = input.LA(1);
-
-            if ( ((LA25_0>=27 && LA25_0<=46)) ) {
-                alt25=1;
-            }
-            switch (alt25) {
-                case 1 :
-                    // InternalDefinitionLanguage.g:3080:3: rule__DoubleLiteralRule__FactorAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__DoubleLiteralRule__FactorAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
-
-
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalDefinitionLanguage.g:3089:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
-    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalDefinitionLanguage.g:3093:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalDefinitionLanguage.g:3094:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
-            {
-            pushFollow(FOLLOW_29);
-            rule__IntegerLiteralRule__Group__0__Impl();
-
-            state._fsp--;
-
-            pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1();
-
-            state._fsp--;
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
-
-
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3101:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalDefinitionLanguage.g:3105:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:3106:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            {
-            // InternalDefinitionLanguage.g:3106:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalDefinitionLanguage.g:3107:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalDefinitionLanguage.g:3108:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalDefinitionLanguage.g:3108:3: rule__IntegerLiteralRule__LiteralAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__LiteralAssignment_0();
+            rule__IntegerLiteralRule__LiteralAssignment_0();
 
             state._fsp--;
 
@@ -10050,14 +10056,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalDefinitionLanguage.g:3116:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3118:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
     public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3120:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3121:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3122:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3123:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntegerLiteralRule__Group__1__Impl();
@@ -10083,20 +10089,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3127:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    // InternalDefinitionLanguage.g:3129:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
     public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3131:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalDefinitionLanguage.g:3132:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalDefinitionLanguage.g:3133:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalDefinitionLanguage.g:3134:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalDefinitionLanguage.g:3132:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalDefinitionLanguage.g:3133:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalDefinitionLanguage.g:3134:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalDefinitionLanguage.g:3135:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalDefinitionLanguage.g:3134:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalDefinitionLanguage.g:3136:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             int alt26=2;
             int LA26_0 = input.LA(1);
 
@@ -10105,7 +10111,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt26) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:3134:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    // InternalDefinitionLanguage.g:3136:3: rule__IntegerLiteralRule__FactorAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__IntegerLiteralRule__FactorAssignment_1();
@@ -10141,14 +10147,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalDefinitionLanguage.g:3143:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3145:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
     public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3147:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalDefinitionLanguage.g:3148:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalDefinitionLanguage.g:3149:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalDefinitionLanguage.g:3150:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
             pushFollow(FOLLOW_30);
             rule__BooleanLiteralRule__Group__0__Impl();
@@ -10179,21 +10185,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3155:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3157:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3159:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3160:1: ( () )
+            // InternalDefinitionLanguage.g:3161:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3162:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3160:1: ( () )
-            // InternalDefinitionLanguage.g:3161:2: ()
+            // InternalDefinitionLanguage.g:3162:1: ( () )
+            // InternalDefinitionLanguage.g:3163:2: ()
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
-            // InternalDefinitionLanguage.g:3162:2: ()
-            // InternalDefinitionLanguage.g:3162:3: 
+            // InternalDefinitionLanguage.g:3164:2: ()
+            // InternalDefinitionLanguage.g:3164:3: 
             {
             }
 
@@ -10216,14 +10222,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalDefinitionLanguage.g:3170:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3172:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
     public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3174:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3175:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3176:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3177:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Group__1__Impl();
@@ -10249,21 +10255,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3181:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    // InternalDefinitionLanguage.g:3183:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
     public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3185:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalDefinitionLanguage.g:3186:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalDefinitionLanguage.g:3187:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalDefinitionLanguage.g:3188:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalDefinitionLanguage.g:3186:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalDefinitionLanguage.g:3187:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalDefinitionLanguage.g:3188:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalDefinitionLanguage.g:3189:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
-            // InternalDefinitionLanguage.g:3188:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalDefinitionLanguage.g:3188:3: rule__BooleanLiteralRule__Alternatives_1
+            // InternalDefinitionLanguage.g:3190:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalDefinitionLanguage.g:3190:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
             rule__BooleanLiteralRule__Alternatives_1();
@@ -10296,14 +10302,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__0"
-    // InternalDefinitionLanguage.g:3197:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3199:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
     public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3201:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
-            // InternalDefinitionLanguage.g:3202:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
+            // InternalDefinitionLanguage.g:3203:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalDefinitionLanguage.g:3204:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__TypeDefinitionRule__Group__0__Impl();
@@ -10334,20 +10340,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3209:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    // InternalDefinitionLanguage.g:3211:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
     public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3213:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
-            // InternalDefinitionLanguage.g:3214:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalDefinitionLanguage.g:3215:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalDefinitionLanguage.g:3216:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-            // InternalDefinitionLanguage.g:3214:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
-            // InternalDefinitionLanguage.g:3215:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            // InternalDefinitionLanguage.g:3216:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalDefinitionLanguage.g:3217:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
-            // InternalDefinitionLanguage.g:3216:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            // InternalDefinitionLanguage.g:3218:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             int alt27=2;
             int LA27_0 = input.LA(1);
 
@@ -10356,7 +10362,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
             }
             switch (alt27) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:3216:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    // InternalDefinitionLanguage.g:3218:3: rule__TypeDefinitionRule__AbstractAssignment_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__TypeDefinitionRule__AbstractAssignment_0();
@@ -10392,14 +10398,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__1"
-    // InternalDefinitionLanguage.g:3224:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    // InternalDefinitionLanguage.g:3226:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
     public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3228:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
-            // InternalDefinitionLanguage.g:3229:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
+            // InternalDefinitionLanguage.g:3230:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalDefinitionLanguage.g:3231:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__TypeDefinitionRule__Group__1__Impl();
@@ -10430,20 +10436,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3236:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    // InternalDefinitionLanguage.g:3238:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
     public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3240:1: ( ( 'type' ) )
-            // InternalDefinitionLanguage.g:3241:1: ( 'type' )
+            // InternalDefinitionLanguage.g:3242:1: ( ( 'type' ) )
+            // InternalDefinitionLanguage.g:3243:1: ( 'type' )
             {
-            // InternalDefinitionLanguage.g:3241:1: ( 'type' )
-            // InternalDefinitionLanguage.g:3242:2: 'type'
+            // InternalDefinitionLanguage.g:3243:1: ( 'type' )
+            // InternalDefinitionLanguage.g:3244:2: 'type'
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
-            match(input,60,FOLLOW_2); 
+            match(input,59,FOLLOW_2); 
              after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
 
             }
@@ -10467,14 +10473,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__2"
-    // InternalDefinitionLanguage.g:3251:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    // InternalDefinitionLanguage.g:3253:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
     public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3255:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
-            // InternalDefinitionLanguage.g:3256:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
+            // InternalDefinitionLanguage.g:3257:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalDefinitionLanguage.g:3258:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_32);
             rule__TypeDefinitionRule__Group__2__Impl();
@@ -10505,21 +10511,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:3263:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    // InternalDefinitionLanguage.g:3265:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
     public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3267:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
-            // InternalDefinitionLanguage.g:3268:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3269:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:3270:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:3268:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
-            // InternalDefinitionLanguage.g:3269:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:3270:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3271:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
-            // InternalDefinitionLanguage.g:3270:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
-            // InternalDefinitionLanguage.g:3270:3: rule__TypeDefinitionRule__NameAssignment_2
+            // InternalDefinitionLanguage.g:3272:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:3272:3: rule__TypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__TypeDefinitionRule__NameAssignment_2();
@@ -10552,14 +10558,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__3"
-    // InternalDefinitionLanguage.g:3278:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    // InternalDefinitionLanguage.g:3280:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
     public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3282:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
-            // InternalDefinitionLanguage.g:3283:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
+            // InternalDefinitionLanguage.g:3284:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalDefinitionLanguage.g:3285:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_32);
             rule__TypeDefinitionRule__Group__3__Impl();
@@ -10590,29 +10596,29 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:3290:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    // InternalDefinitionLanguage.g:3292:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3294:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
-            // InternalDefinitionLanguage.g:3295:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalDefinitionLanguage.g:3296:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalDefinitionLanguage.g:3297:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalDefinitionLanguage.g:3295:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
-            // InternalDefinitionLanguage.g:3296:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            // InternalDefinitionLanguage.g:3297:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalDefinitionLanguage.g:3298:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
-            // InternalDefinitionLanguage.g:3297:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            // InternalDefinitionLanguage.g:3299:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             int alt28=2;
             int LA28_0 = input.LA(1);
 
-            if ( (LA28_0==61) ) {
+            if ( (LA28_0==60) ) {
                 alt28=1;
             }
             switch (alt28) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:3297:3: rule__TypeDefinitionRule__Group_3__0
+                    // InternalDefinitionLanguage.g:3299:3: rule__TypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__TypeDefinitionRule__Group_3__0();
@@ -10648,14 +10654,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__4"
-    // InternalDefinitionLanguage.g:3305:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    // InternalDefinitionLanguage.g:3307:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
     public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3309:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
-            // InternalDefinitionLanguage.g:3310:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
+            // InternalDefinitionLanguage.g:3311:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalDefinitionLanguage.g:3312:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
             {
             pushFollow(FOLLOW_33);
             rule__TypeDefinitionRule__Group__4__Impl();
@@ -10686,17 +10692,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
-    // InternalDefinitionLanguage.g:3317:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    // InternalDefinitionLanguage.g:3319:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
     public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3321:1: ( ( '{' ) )
-            // InternalDefinitionLanguage.g:3322:1: ( '{' )
+            // InternalDefinitionLanguage.g:3323:1: ( ( '{' ) )
+            // InternalDefinitionLanguage.g:3324:1: ( '{' )
             {
-            // InternalDefinitionLanguage.g:3322:1: ( '{' )
-            // InternalDefinitionLanguage.g:3323:2: '{'
+            // InternalDefinitionLanguage.g:3324:1: ( '{' )
+            // InternalDefinitionLanguage.g:3325:2: '{'
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
             match(input,48,FOLLOW_2); 
@@ -10723,14 +10729,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__5"
-    // InternalDefinitionLanguage.g:3332:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    // InternalDefinitionLanguage.g:3334:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
     public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3336:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
-            // InternalDefinitionLanguage.g:3337:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
+            // InternalDefinitionLanguage.g:3338:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalDefinitionLanguage.g:3339:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
             {
             pushFollow(FOLLOW_33);
             rule__TypeDefinitionRule__Group__5__Impl();
@@ -10761,20 +10767,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
-    // InternalDefinitionLanguage.g:3344:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    // InternalDefinitionLanguage.g:3346:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
     public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3348:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
-            // InternalDefinitionLanguage.g:3349:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalDefinitionLanguage.g:3350:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalDefinitionLanguage.g:3351:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
             {
-            // InternalDefinitionLanguage.g:3349:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
-            // InternalDefinitionLanguage.g:3350:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            // InternalDefinitionLanguage.g:3351:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalDefinitionLanguage.g:3352:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
-            // InternalDefinitionLanguage.g:3351:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            // InternalDefinitionLanguage.g:3353:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
             loop29:
             do {
                 int alt29=2;
@@ -10787,7 +10793,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt29) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:3351:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    // InternalDefinitionLanguage.g:3353:3: rule__TypeDefinitionRule__AttributesAssignment_5
             	    {
             	    pushFollow(FOLLOW_34);
             	    rule__TypeDefinitionRule__AttributesAssignment_5();
@@ -10826,14 +10832,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__6"
-    // InternalDefinitionLanguage.g:3359:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    // InternalDefinitionLanguage.g:3361:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
     public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3363:1: ( rule__TypeDefinitionRule__Group__6__Impl )
-            // InternalDefinitionLanguage.g:3364:2: rule__TypeDefinitionRule__Group__6__Impl
+            // InternalDefinitionLanguage.g:3365:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalDefinitionLanguage.g:3366:2: rule__TypeDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__TypeDefinitionRule__Group__6__Impl();
@@ -10859,17 +10865,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
-    // InternalDefinitionLanguage.g:3370:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    // InternalDefinitionLanguage.g:3372:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
     public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3374:1: ( ( '}' ) )
-            // InternalDefinitionLanguage.g:3375:1: ( '}' )
+            // InternalDefinitionLanguage.g:3376:1: ( ( '}' ) )
+            // InternalDefinitionLanguage.g:3377:1: ( '}' )
             {
-            // InternalDefinitionLanguage.g:3375:1: ( '}' )
-            // InternalDefinitionLanguage.g:3376:2: '}'
+            // InternalDefinitionLanguage.g:3377:1: ( '}' )
+            // InternalDefinitionLanguage.g:3378:2: '}'
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
             match(input,49,FOLLOW_2); 
@@ -10896,14 +10902,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
-    // InternalDefinitionLanguage.g:3386:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    // InternalDefinitionLanguage.g:3388:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
     public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3390:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
-            // InternalDefinitionLanguage.g:3391:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
+            // InternalDefinitionLanguage.g:3392:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalDefinitionLanguage.g:3393:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__TypeDefinitionRule__Group_3__0__Impl();
@@ -10934,20 +10940,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
-    // InternalDefinitionLanguage.g:3398:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    // InternalDefinitionLanguage.g:3400:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
     public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3402:1: ( ( 'extends' ) )
-            // InternalDefinitionLanguage.g:3403:1: ( 'extends' )
+            // InternalDefinitionLanguage.g:3404:1: ( ( 'extends' ) )
+            // InternalDefinitionLanguage.g:3405:1: ( 'extends' )
             {
-            // InternalDefinitionLanguage.g:3403:1: ( 'extends' )
-            // InternalDefinitionLanguage.g:3404:2: 'extends'
+            // InternalDefinitionLanguage.g:3405:1: ( 'extends' )
+            // InternalDefinitionLanguage.g:3406:2: 'extends'
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
-            match(input,61,FOLLOW_2); 
+            match(input,60,FOLLOW_2); 
              after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
 
             }
@@ -10971,14 +10977,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
-    // InternalDefinitionLanguage.g:3413:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    // InternalDefinitionLanguage.g:3415:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
     public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3417:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
-            // InternalDefinitionLanguage.g:3418:2: rule__TypeDefinitionRule__Group_3__1__Impl
+            // InternalDefinitionLanguage.g:3419:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalDefinitionLanguage.g:3420:2: rule__TypeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__TypeDefinitionRule__Group_3__1__Impl();
@@ -11004,21 +11010,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
-    // InternalDefinitionLanguage.g:3424:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    // InternalDefinitionLanguage.g:3426:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
     public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3428:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
-            // InternalDefinitionLanguage.g:3429:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3430:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalDefinitionLanguage.g:3431:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
             {
-            // InternalDefinitionLanguage.g:3429:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
-            // InternalDefinitionLanguage.g:3430:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3431:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3432:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
-            // InternalDefinitionLanguage.g:3431:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
-            // InternalDefinitionLanguage.g:3431:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+            // InternalDefinitionLanguage.g:3433:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3433:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
@@ -11051,14 +11057,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalDefinitionLanguage.g:3440:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3442:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3444:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalDefinitionLanguage.g:3445:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalDefinitionLanguage.g:3446:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalDefinitionLanguage.g:3447:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_35);
             rule__AttributeDefinitionRule__Group__0__Impl();
@@ -11089,21 +11095,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3452:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalDefinitionLanguage.g:3454:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3456:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:3457:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalDefinitionLanguage.g:3458:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:3459:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalDefinitionLanguage.g:3457:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalDefinitionLanguage.g:3458:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalDefinitionLanguage.g:3459:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalDefinitionLanguage.g:3460:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
-            // InternalDefinitionLanguage.g:3459:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalDefinitionLanguage.g:3459:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalDefinitionLanguage.g:3461:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalDefinitionLanguage.g:3461:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -11136,14 +11142,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalDefinitionLanguage.g:3467:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalDefinitionLanguage.g:3469:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3471:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalDefinitionLanguage.g:3472:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalDefinitionLanguage.g:3473:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalDefinitionLanguage.g:3474:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_36);
             rule__AttributeDefinitionRule__Group__1__Impl();
@@ -11174,20 +11180,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3479:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalDefinitionLanguage.g:3481:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3483:1: ( ( ':' ) )
-            // InternalDefinitionLanguage.g:3484:1: ( ':' )
+            // InternalDefinitionLanguage.g:3485:1: ( ( ':' ) )
+            // InternalDefinitionLanguage.g:3486:1: ( ':' )
             {
-            // InternalDefinitionLanguage.g:3484:1: ( ':' )
-            // InternalDefinitionLanguage.g:3485:2: ':'
+            // InternalDefinitionLanguage.g:3486:1: ( ':' )
+            // InternalDefinitionLanguage.g:3487:2: ':'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
-            match(input,62,FOLLOW_2); 
+            match(input,61,FOLLOW_2); 
              after(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
 
             }
@@ -11211,14 +11217,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalDefinitionLanguage.g:3494:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalDefinitionLanguage.g:3496:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3498:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalDefinitionLanguage.g:3499:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalDefinitionLanguage.g:3500:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalDefinitionLanguage.g:3501:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_37);
             rule__AttributeDefinitionRule__Group__2__Impl();
@@ -11249,21 +11255,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:3506:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalDefinitionLanguage.g:3508:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3510:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalDefinitionLanguage.g:3511:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3512:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:3513:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:3511:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalDefinitionLanguage.g:3512:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalDefinitionLanguage.g:3513:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3514:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
-            // InternalDefinitionLanguage.g:3513:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalDefinitionLanguage.g:3513:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalDefinitionLanguage.g:3515:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalDefinitionLanguage.g:3515:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -11296,14 +11302,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalDefinitionLanguage.g:3521:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalDefinitionLanguage.g:3523:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3525:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalDefinitionLanguage.g:3526:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalDefinitionLanguage.g:3527:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalDefinitionLanguage.g:3528:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_37);
             rule__AttributeDefinitionRule__Group__3__Impl();
@@ -11334,29 +11340,29 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:3533:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalDefinitionLanguage.g:3535:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3537:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalDefinitionLanguage.g:3538:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalDefinitionLanguage.g:3539:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalDefinitionLanguage.g:3540:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalDefinitionLanguage.g:3538:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalDefinitionLanguage.g:3539:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalDefinitionLanguage.g:3540:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalDefinitionLanguage.g:3541:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
-            // InternalDefinitionLanguage.g:3540:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalDefinitionLanguage.g:3542:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             int alt30=2;
             int LA30_0 = input.LA(1);
 
-            if ( (LA30_0==63) ) {
+            if ( (LA30_0==62) ) {
                 alt30=1;
             }
             switch (alt30) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:3540:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalDefinitionLanguage.g:3542:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -11392,14 +11398,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalDefinitionLanguage.g:3548:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalDefinitionLanguage.g:3550:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3552:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalDefinitionLanguage.g:3553:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalDefinitionLanguage.g:3554:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalDefinitionLanguage.g:3555:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -11425,17 +11431,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalDefinitionLanguage.g:3559:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalDefinitionLanguage.g:3561:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3563:1: ( ( ';' ) )
-            // InternalDefinitionLanguage.g:3564:1: ( ';' )
+            // InternalDefinitionLanguage.g:3565:1: ( ( ';' ) )
+            // InternalDefinitionLanguage.g:3566:1: ( ';' )
             {
-            // InternalDefinitionLanguage.g:3564:1: ( ';' )
-            // InternalDefinitionLanguage.g:3565:2: ';'
+            // InternalDefinitionLanguage.g:3566:1: ( ';' )
+            // InternalDefinitionLanguage.g:3567:2: ';'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
             match(input,51,FOLLOW_2); 
@@ -11462,14 +11468,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalDefinitionLanguage.g:3575:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalDefinitionLanguage.g:3577:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3579:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalDefinitionLanguage.g:3580:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalDefinitionLanguage.g:3581:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalDefinitionLanguage.g:3582:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
             pushFollow(FOLLOW_12);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
@@ -11500,20 +11506,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalDefinitionLanguage.g:3587:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalDefinitionLanguage.g:3589:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3591:1: ( ( ':=' ) )
-            // InternalDefinitionLanguage.g:3592:1: ( ':=' )
+            // InternalDefinitionLanguage.g:3593:1: ( ( ':=' ) )
+            // InternalDefinitionLanguage.g:3594:1: ( ':=' )
             {
-            // InternalDefinitionLanguage.g:3592:1: ( ':=' )
-            // InternalDefinitionLanguage.g:3593:2: ':='
+            // InternalDefinitionLanguage.g:3594:1: ( ':=' )
+            // InternalDefinitionLanguage.g:3595:2: ':='
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
-            match(input,63,FOLLOW_2); 
+            match(input,62,FOLLOW_2); 
              after(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
 
             }
@@ -11537,14 +11543,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalDefinitionLanguage.g:3602:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalDefinitionLanguage.g:3604:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3606:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalDefinitionLanguage.g:3607:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalDefinitionLanguage.g:3608:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalDefinitionLanguage.g:3609:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -11570,21 +11576,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalDefinitionLanguage.g:3613:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalDefinitionLanguage.g:3615:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3617:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalDefinitionLanguage.g:3618:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3619:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalDefinitionLanguage.g:3620:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalDefinitionLanguage.g:3618:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalDefinitionLanguage.g:3619:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3620:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3621:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
-            // InternalDefinitionLanguage.g:3620:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalDefinitionLanguage.g:3620:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalDefinitionLanguage.g:3622:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3622:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -11617,14 +11623,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:3629:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3631:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3633:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:3634:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalDefinitionLanguage.g:3635:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:3636:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
             pushFollow(FOLLOW_38);
             rule__LiteralTypeRule__Group__0__Impl();
@@ -11655,21 +11661,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3641:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3643:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3645:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3646:1: ( () )
+            // InternalDefinitionLanguage.g:3647:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3648:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3646:1: ( () )
-            // InternalDefinitionLanguage.g:3647:2: ()
+            // InternalDefinitionLanguage.g:3648:1: ( () )
+            // InternalDefinitionLanguage.g:3649:2: ()
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
-            // InternalDefinitionLanguage.g:3648:2: ()
-            // InternalDefinitionLanguage.g:3648:3: 
+            // InternalDefinitionLanguage.g:3650:2: ()
+            // InternalDefinitionLanguage.g:3650:3: 
             {
             }
 
@@ -11692,14 +11698,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:3656:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3658:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3660:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3661:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3662:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3663:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -11725,20 +11731,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3667:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalDefinitionLanguage.g:3669:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3671:1: ( ( 'literal' ) )
-            // InternalDefinitionLanguage.g:3672:1: ( 'literal' )
+            // InternalDefinitionLanguage.g:3673:1: ( ( 'literal' ) )
+            // InternalDefinitionLanguage.g:3674:1: ( 'literal' )
             {
-            // InternalDefinitionLanguage.g:3672:1: ( 'literal' )
-            // InternalDefinitionLanguage.g:3673:2: 'literal'
+            // InternalDefinitionLanguage.g:3674:1: ( 'literal' )
+            // InternalDefinitionLanguage.g:3675:2: 'literal'
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
-            match(input,64,FOLLOW_2); 
+            match(input,63,FOLLOW_2); 
              after(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
 
             }
@@ -11762,14 +11768,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:3683:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3685:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3687:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:3688:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalDefinitionLanguage.g:3689:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:3690:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__InstanceTypeRule__Group__0__Impl();
@@ -11800,21 +11806,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3695:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3697:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3699:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3700:1: ( () )
+            // InternalDefinitionLanguage.g:3701:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3702:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3700:1: ( () )
-            // InternalDefinitionLanguage.g:3701:2: ()
+            // InternalDefinitionLanguage.g:3702:1: ( () )
+            // InternalDefinitionLanguage.g:3703:2: ()
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
-            // InternalDefinitionLanguage.g:3702:2: ()
-            // InternalDefinitionLanguage.g:3702:3: 
+            // InternalDefinitionLanguage.g:3704:2: ()
+            // InternalDefinitionLanguage.g:3704:3: 
             {
             }
 
@@ -11837,14 +11843,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:3710:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalDefinitionLanguage.g:3712:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3714:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalDefinitionLanguage.g:3715:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalDefinitionLanguage.g:3716:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalDefinitionLanguage.g:3717:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -11875,20 +11881,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3722:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalDefinitionLanguage.g:3724:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3726:1: ( ( 'instance' ) )
-            // InternalDefinitionLanguage.g:3727:1: ( 'instance' )
+            // InternalDefinitionLanguage.g:3728:1: ( ( 'instance' ) )
+            // InternalDefinitionLanguage.g:3729:1: ( 'instance' )
             {
-            // InternalDefinitionLanguage.g:3727:1: ( 'instance' )
-            // InternalDefinitionLanguage.g:3728:2: 'instance'
+            // InternalDefinitionLanguage.g:3729:1: ( 'instance' )
+            // InternalDefinitionLanguage.g:3730:2: 'instance'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
-            match(input,65,FOLLOW_2); 
+            match(input,64,FOLLOW_2); 
              after(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
 
             }
@@ -11912,14 +11918,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalDefinitionLanguage.g:3737:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalDefinitionLanguage.g:3739:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3741:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalDefinitionLanguage.g:3742:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalDefinitionLanguage.g:3743:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalDefinitionLanguage.g:3744:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
             pushFollow(FOLLOW_40);
             rule__InstanceTypeRule__Group__2__Impl();
@@ -11950,21 +11956,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:3749:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalDefinitionLanguage.g:3751:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3753:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalDefinitionLanguage.g:3754:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3755:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:3756:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:3754:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalDefinitionLanguage.g:3755:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalDefinitionLanguage.g:3756:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalDefinitionLanguage.g:3757:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
-            // InternalDefinitionLanguage.g:3756:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalDefinitionLanguage.g:3756:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalDefinitionLanguage.g:3758:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalDefinitionLanguage.g:3758:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -11997,14 +12003,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalDefinitionLanguage.g:3764:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalDefinitionLanguage.g:3766:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3768:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalDefinitionLanguage.g:3769:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalDefinitionLanguage.g:3770:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalDefinitionLanguage.g:3771:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -12030,33 +12036,33 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:3775:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalDefinitionLanguage.g:3777:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3779:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalDefinitionLanguage.g:3780:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalDefinitionLanguage.g:3781:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalDefinitionLanguage.g:3782:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalDefinitionLanguage.g:3780:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalDefinitionLanguage.g:3781:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalDefinitionLanguage.g:3782:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalDefinitionLanguage.g:3783:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
-            // InternalDefinitionLanguage.g:3782:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalDefinitionLanguage.g:3784:2: ( rule__InstanceTypeRule__Group_3__0 )*
             loop31:
             do {
                 int alt31=2;
                 int LA31_0 = input.LA(1);
 
-                if ( (LA31_0==66) ) {
+                if ( (LA31_0==65) ) {
                     alt31=1;
                 }
 
 
                 switch (alt31) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:3782:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalDefinitionLanguage.g:3784:3: rule__InstanceTypeRule__Group_3__0
             	    {
             	    pushFollow(FOLLOW_41);
             	    rule__InstanceTypeRule__Group_3__0();
@@ -12095,14 +12101,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalDefinitionLanguage.g:3791:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalDefinitionLanguage.g:3793:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3795:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalDefinitionLanguage.g:3796:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalDefinitionLanguage.g:3797:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalDefinitionLanguage.g:3798:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -12133,20 +12139,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalDefinitionLanguage.g:3803:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalDefinitionLanguage.g:3805:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3807:1: ( ( '|' ) )
-            // InternalDefinitionLanguage.g:3808:1: ( '|' )
+            // InternalDefinitionLanguage.g:3809:1: ( ( '|' ) )
+            // InternalDefinitionLanguage.g:3810:1: ( '|' )
             {
-            // InternalDefinitionLanguage.g:3808:1: ( '|' )
-            // InternalDefinitionLanguage.g:3809:2: '|'
+            // InternalDefinitionLanguage.g:3810:1: ( '|' )
+            // InternalDefinitionLanguage.g:3811:2: '|'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
-            match(input,66,FOLLOW_2); 
+            match(input,65,FOLLOW_2); 
              after(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
 
             }
@@ -12170,14 +12176,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalDefinitionLanguage.g:3818:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalDefinitionLanguage.g:3820:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3822:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalDefinitionLanguage.g:3823:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalDefinitionLanguage.g:3824:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalDefinitionLanguage.g:3825:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -12203,21 +12209,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalDefinitionLanguage.g:3829:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalDefinitionLanguage.g:3831:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3833:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalDefinitionLanguage.g:3834:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3835:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalDefinitionLanguage.g:3836:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalDefinitionLanguage.g:3834:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalDefinitionLanguage.g:3835:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3836:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalDefinitionLanguage.g:3837:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
-            // InternalDefinitionLanguage.g:3836:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalDefinitionLanguage.g:3836:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalDefinitionLanguage.g:3838:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalDefinitionLanguage.g:3838:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -12250,14 +12256,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:3845:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3847:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3849:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:3850:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalDefinitionLanguage.g:3851:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:3852:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
             pushFollow(FOLLOW_42);
             rule__StringTypeRule__Group__0__Impl();
@@ -12288,21 +12294,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3857:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3859:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3861:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3862:1: ( () )
+            // InternalDefinitionLanguage.g:3863:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3864:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3862:1: ( () )
-            // InternalDefinitionLanguage.g:3863:2: ()
+            // InternalDefinitionLanguage.g:3864:1: ( () )
+            // InternalDefinitionLanguage.g:3865:2: ()
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
-            // InternalDefinitionLanguage.g:3864:2: ()
-            // InternalDefinitionLanguage.g:3864:3: 
+            // InternalDefinitionLanguage.g:3866:2: ()
+            // InternalDefinitionLanguage.g:3866:3: 
             {
             }
 
@@ -12325,14 +12331,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:3872:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3874:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3876:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3877:2: rule__StringTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3878:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3879:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -12358,20 +12364,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3883:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalDefinitionLanguage.g:3885:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3887:1: ( ( 'string' ) )
-            // InternalDefinitionLanguage.g:3888:1: ( 'string' )
+            // InternalDefinitionLanguage.g:3889:1: ( ( 'string' ) )
+            // InternalDefinitionLanguage.g:3890:1: ( 'string' )
             {
-            // InternalDefinitionLanguage.g:3888:1: ( 'string' )
-            // InternalDefinitionLanguage.g:3889:2: 'string'
+            // InternalDefinitionLanguage.g:3890:1: ( 'string' )
+            // InternalDefinitionLanguage.g:3891:2: 'string'
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
-            match(input,67,FOLLOW_2); 
+            match(input,66,FOLLOW_2); 
              after(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
 
             }
@@ -12395,14 +12401,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:3899:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3901:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3903:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:3904:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalDefinitionLanguage.g:3905:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:3906:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__ExpressionTypeRule__Group__0__Impl();
@@ -12433,21 +12439,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3911:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3913:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3915:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3916:1: ( () )
+            // InternalDefinitionLanguage.g:3917:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3918:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3916:1: ( () )
-            // InternalDefinitionLanguage.g:3917:2: ()
+            // InternalDefinitionLanguage.g:3918:1: ( () )
+            // InternalDefinitionLanguage.g:3919:2: ()
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
-            // InternalDefinitionLanguage.g:3918:2: ()
-            // InternalDefinitionLanguage.g:3918:3: 
+            // InternalDefinitionLanguage.g:3920:2: ()
+            // InternalDefinitionLanguage.g:3920:3: 
             {
             }
 
@@ -12470,14 +12476,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:3926:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3928:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3930:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3931:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3932:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3933:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -12503,20 +12509,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3937:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalDefinitionLanguage.g:3939:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3941:1: ( ( 'expression' ) )
-            // InternalDefinitionLanguage.g:3942:1: ( 'expression' )
+            // InternalDefinitionLanguage.g:3943:1: ( ( 'expression' ) )
+            // InternalDefinitionLanguage.g:3944:1: ( 'expression' )
             {
-            // InternalDefinitionLanguage.g:3942:1: ( 'expression' )
-            // InternalDefinitionLanguage.g:3943:2: 'expression'
+            // InternalDefinitionLanguage.g:3944:1: ( 'expression' )
+            // InternalDefinitionLanguage.g:3945:2: 'expression'
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
-            match(input,68,FOLLOW_2); 
+            match(input,67,FOLLOW_2); 
              after(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
 
             }
@@ -12540,14 +12546,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:3953:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:3955:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3957:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:3958:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalDefinitionLanguage.g:3959:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:3960:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
             pushFollow(FOLLOW_44);
             rule__IntTypeRule__Group__0__Impl();
@@ -12578,21 +12584,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:3965:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:3967:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3969:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:3970:1: ( () )
+            // InternalDefinitionLanguage.g:3971:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:3972:1: ( () )
             {
-            // InternalDefinitionLanguage.g:3970:1: ( () )
-            // InternalDefinitionLanguage.g:3971:2: ()
+            // InternalDefinitionLanguage.g:3972:1: ( () )
+            // InternalDefinitionLanguage.g:3973:2: ()
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
-            // InternalDefinitionLanguage.g:3972:2: ()
-            // InternalDefinitionLanguage.g:3972:3: 
+            // InternalDefinitionLanguage.g:3974:2: ()
+            // InternalDefinitionLanguage.g:3974:3: 
             {
             }
 
@@ -12615,14 +12621,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:3980:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:3982:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3984:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:3985:2: rule__IntTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:3986:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:3987:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -12648,20 +12654,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:3991:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalDefinitionLanguage.g:3993:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:3995:1: ( ( 'int' ) )
-            // InternalDefinitionLanguage.g:3996:1: ( 'int' )
+            // InternalDefinitionLanguage.g:3997:1: ( ( 'int' ) )
+            // InternalDefinitionLanguage.g:3998:1: ( 'int' )
             {
-            // InternalDefinitionLanguage.g:3996:1: ( 'int' )
-            // InternalDefinitionLanguage.g:3997:2: 'int'
+            // InternalDefinitionLanguage.g:3998:1: ( 'int' )
+            // InternalDefinitionLanguage.g:3999:2: 'int'
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
-            match(input,69,FOLLOW_2); 
+            match(input,68,FOLLOW_2); 
              after(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
 
             }
@@ -12685,14 +12691,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:4007:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4009:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4011:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:4012:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalDefinitionLanguage.g:4013:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:4014:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
             pushFollow(FOLLOW_45);
             rule__FloatTypeRule__Group__0__Impl();
@@ -12723,21 +12729,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4019:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:4021:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4023:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:4024:1: ( () )
+            // InternalDefinitionLanguage.g:4025:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:4026:1: ( () )
             {
-            // InternalDefinitionLanguage.g:4024:1: ( () )
-            // InternalDefinitionLanguage.g:4025:2: ()
+            // InternalDefinitionLanguage.g:4026:1: ( () )
+            // InternalDefinitionLanguage.g:4027:2: ()
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
-            // InternalDefinitionLanguage.g:4026:2: ()
-            // InternalDefinitionLanguage.g:4026:3: 
+            // InternalDefinitionLanguage.g:4028:2: ()
+            // InternalDefinitionLanguage.g:4028:3: 
             {
             }
 
@@ -12760,14 +12766,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:4034:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:4036:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4038:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4039:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4040:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4041:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -12793,20 +12799,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4045:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalDefinitionLanguage.g:4047:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4049:1: ( ( 'float' ) )
-            // InternalDefinitionLanguage.g:4050:1: ( 'float' )
+            // InternalDefinitionLanguage.g:4051:1: ( ( 'float' ) )
+            // InternalDefinitionLanguage.g:4052:1: ( 'float' )
             {
-            // InternalDefinitionLanguage.g:4050:1: ( 'float' )
-            // InternalDefinitionLanguage.g:4051:2: 'float'
+            // InternalDefinitionLanguage.g:4052:1: ( 'float' )
+            // InternalDefinitionLanguage.g:4053:2: 'float'
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
-            match(input,70,FOLLOW_2); 
+            match(input,69,FOLLOW_2); 
              after(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
 
             }
@@ -12830,14 +12836,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:4061:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4063:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4065:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:4066:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalDefinitionLanguage.g:4067:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:4068:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
             pushFollow(FOLLOW_46);
             rule__BooleanTypeRule__Group__0__Impl();
@@ -12868,21 +12874,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4073:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:4075:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4077:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:4078:1: ( () )
+            // InternalDefinitionLanguage.g:4079:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:4080:1: ( () )
             {
-            // InternalDefinitionLanguage.g:4078:1: ( () )
-            // InternalDefinitionLanguage.g:4079:2: ()
+            // InternalDefinitionLanguage.g:4080:1: ( () )
+            // InternalDefinitionLanguage.g:4081:2: ()
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
-            // InternalDefinitionLanguage.g:4080:2: ()
-            // InternalDefinitionLanguage.g:4080:3: 
+            // InternalDefinitionLanguage.g:4082:2: ()
+            // InternalDefinitionLanguage.g:4082:3: 
             {
             }
 
@@ -12905,14 +12911,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:4088:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:4090:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4092:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4093:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4094:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4095:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -12938,20 +12944,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4099:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalDefinitionLanguage.g:4101:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4103:1: ( ( 'boolean' ) )
-            // InternalDefinitionLanguage.g:4104:1: ( 'boolean' )
+            // InternalDefinitionLanguage.g:4105:1: ( ( 'boolean' ) )
+            // InternalDefinitionLanguage.g:4106:1: ( 'boolean' )
             {
-            // InternalDefinitionLanguage.g:4104:1: ( 'boolean' )
-            // InternalDefinitionLanguage.g:4105:2: 'boolean'
+            // InternalDefinitionLanguage.g:4106:1: ( 'boolean' )
+            // InternalDefinitionLanguage.g:4107:2: 'boolean'
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
-            match(input,71,FOLLOW_2); 
+            match(input,70,FOLLOW_2); 
              after(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
 
             }
@@ -12975,14 +12981,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:4115:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4117:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4119:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:4120:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalDefinitionLanguage.g:4121:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:4122:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
             pushFollow(FOLLOW_47);
             rule__VoidTypeRule__Group__0__Impl();
@@ -13013,21 +13019,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4127:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:4129:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4131:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:4132:1: ( () )
+            // InternalDefinitionLanguage.g:4133:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:4134:1: ( () )
             {
-            // InternalDefinitionLanguage.g:4132:1: ( () )
-            // InternalDefinitionLanguage.g:4133:2: ()
+            // InternalDefinitionLanguage.g:4134:1: ( () )
+            // InternalDefinitionLanguage.g:4135:2: ()
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
-            // InternalDefinitionLanguage.g:4134:2: ()
-            // InternalDefinitionLanguage.g:4134:3: 
+            // InternalDefinitionLanguage.g:4136:2: ()
+            // InternalDefinitionLanguage.g:4136:3: 
             {
             }
 
@@ -13050,14 +13056,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:4142:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:4144:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4146:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4147:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4148:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4149:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -13083,20 +13089,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4153:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalDefinitionLanguage.g:4155:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4157:1: ( ( 'void' ) )
-            // InternalDefinitionLanguage.g:4158:1: ( 'void' )
+            // InternalDefinitionLanguage.g:4159:1: ( ( 'void' ) )
+            // InternalDefinitionLanguage.g:4160:1: ( 'void' )
             {
-            // InternalDefinitionLanguage.g:4158:1: ( 'void' )
-            // InternalDefinitionLanguage.g:4159:2: 'void'
+            // InternalDefinitionLanguage.g:4160:1: ( 'void' )
+            // InternalDefinitionLanguage.g:4161:2: 'void'
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
-            match(input,72,FOLLOW_2); 
+            match(input,71,FOLLOW_2); 
              after(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
 
             }
@@ -13120,14 +13126,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:4169:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4171:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4173:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:4174:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalDefinitionLanguage.g:4175:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:4176:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__DataTypeRule__Group__0__Impl();
@@ -13158,21 +13164,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4181:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalDefinitionLanguage.g:4183:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4185:1: ( ( () ) )
-            // InternalDefinitionLanguage.g:4186:1: ( () )
+            // InternalDefinitionLanguage.g:4187:1: ( ( () ) )
+            // InternalDefinitionLanguage.g:4188:1: ( () )
             {
-            // InternalDefinitionLanguage.g:4186:1: ( () )
-            // InternalDefinitionLanguage.g:4187:2: ()
+            // InternalDefinitionLanguage.g:4188:1: ( () )
+            // InternalDefinitionLanguage.g:4189:2: ()
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
-            // InternalDefinitionLanguage.g:4188:2: ()
-            // InternalDefinitionLanguage.g:4188:3: 
+            // InternalDefinitionLanguage.g:4190:2: ()
+            // InternalDefinitionLanguage.g:4190:3: 
             {
             }
 
@@ -13195,14 +13201,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:4196:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:4198:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4200:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4201:2: rule__DataTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4202:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4203:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -13228,20 +13234,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4207:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalDefinitionLanguage.g:4209:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4211:1: ( ( 'data' ) )
-            // InternalDefinitionLanguage.g:4212:1: ( 'data' )
+            // InternalDefinitionLanguage.g:4213:1: ( ( 'data' ) )
+            // InternalDefinitionLanguage.g:4214:1: ( 'data' )
             {
-            // InternalDefinitionLanguage.g:4212:1: ( 'data' )
-            // InternalDefinitionLanguage.g:4213:2: 'data'
+            // InternalDefinitionLanguage.g:4214:1: ( 'data' )
+            // InternalDefinitionLanguage.g:4215:2: 'data'
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
-            match(input,73,FOLLOW_2); 
+            match(input,72,FOLLOW_2); 
              after(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
 
             }
@@ -13265,14 +13271,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalDefinitionLanguage.g:4223:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4225:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4227:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalDefinitionLanguage.g:4228:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalDefinitionLanguage.g:4229:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalDefinitionLanguage.g:4230:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__ArrayTypeRule__Group__0__Impl();
@@ -13303,20 +13309,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4235:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalDefinitionLanguage.g:4237:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4239:1: ( ( 'array' ) )
-            // InternalDefinitionLanguage.g:4240:1: ( 'array' )
+            // InternalDefinitionLanguage.g:4241:1: ( ( 'array' ) )
+            // InternalDefinitionLanguage.g:4242:1: ( 'array' )
             {
-            // InternalDefinitionLanguage.g:4240:1: ( 'array' )
-            // InternalDefinitionLanguage.g:4241:2: 'array'
+            // InternalDefinitionLanguage.g:4242:1: ( 'array' )
+            // InternalDefinitionLanguage.g:4243:2: 'array'
             {
              before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
-            match(input,74,FOLLOW_2); 
+            match(input,73,FOLLOW_2); 
              after(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
 
             }
@@ -13340,14 +13346,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalDefinitionLanguage.g:4250:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalDefinitionLanguage.g:4252:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4254:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4255:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4256:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4257:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -13373,21 +13379,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4261:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:4263:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4265:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:4266:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4267:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:4268:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:4266:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalDefinitionLanguage.g:4267:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalDefinitionLanguage.g:4268:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4269:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
-            // InternalDefinitionLanguage.g:4268:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalDefinitionLanguage.g:4268:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalDefinitionLanguage.g:4270:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalDefinitionLanguage.g:4270:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -13420,14 +13426,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__0"
-    // InternalDefinitionLanguage.g:4277:1: rule__FunctionDefinitionRule__Group__0 : rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1 ;
+    // InternalDefinitionLanguage.g:4279:1: rule__FunctionDefinitionRule__Group__0 : rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1 ;
     public final void rule__FunctionDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4281:1: ( rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1 )
-            // InternalDefinitionLanguage.g:4282:2: rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1
+            // InternalDefinitionLanguage.g:4283:1: ( rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1 )
+            // InternalDefinitionLanguage.g:4284:2: rule__FunctionDefinitionRule__Group__0__Impl rule__FunctionDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__FunctionDefinitionRule__Group__0__Impl();
@@ -13458,20 +13464,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4289:1: rule__FunctionDefinitionRule__Group__0__Impl : ( 'def' ) ;
+    // InternalDefinitionLanguage.g:4291:1: rule__FunctionDefinitionRule__Group__0__Impl : ( 'def' ) ;
     public final void rule__FunctionDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4293:1: ( ( 'def' ) )
-            // InternalDefinitionLanguage.g:4294:1: ( 'def' )
+            // InternalDefinitionLanguage.g:4295:1: ( ( 'def' ) )
+            // InternalDefinitionLanguage.g:4296:1: ( 'def' )
             {
-            // InternalDefinitionLanguage.g:4294:1: ( 'def' )
-            // InternalDefinitionLanguage.g:4295:2: 'def'
+            // InternalDefinitionLanguage.g:4296:1: ( 'def' )
+            // InternalDefinitionLanguage.g:4297:2: 'def'
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getDefKeyword_0()); 
-            match(input,75,FOLLOW_2); 
+            match(input,74,FOLLOW_2); 
              after(grammarAccess.getFunctionDefinitionRuleAccess().getDefKeyword_0()); 
 
             }
@@ -13495,14 +13501,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__1"
-    // InternalDefinitionLanguage.g:4304:1: rule__FunctionDefinitionRule__Group__1 : rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2 ;
+    // InternalDefinitionLanguage.g:4306:1: rule__FunctionDefinitionRule__Group__1 : rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2 ;
     public final void rule__FunctionDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4308:1: ( rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2 )
-            // InternalDefinitionLanguage.g:4309:2: rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2
+            // InternalDefinitionLanguage.g:4310:1: ( rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2 )
+            // InternalDefinitionLanguage.g:4311:2: rule__FunctionDefinitionRule__Group__1__Impl rule__FunctionDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__FunctionDefinitionRule__Group__1__Impl();
@@ -13533,21 +13539,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4316:1: rule__FunctionDefinitionRule__Group__1__Impl : ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) ) ;
+    // InternalDefinitionLanguage.g:4318:1: rule__FunctionDefinitionRule__Group__1__Impl : ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) ) ;
     public final void rule__FunctionDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4320:1: ( ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:4321:1: ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4322:1: ( ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:4323:1: ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:4321:1: ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) )
-            // InternalDefinitionLanguage.g:4322:2: ( rule__FunctionDefinitionRule__TypeAssignment_1 )
+            // InternalDefinitionLanguage.g:4323:1: ( ( rule__FunctionDefinitionRule__TypeAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4324:2: ( rule__FunctionDefinitionRule__TypeAssignment_1 )
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getTypeAssignment_1()); 
-            // InternalDefinitionLanguage.g:4323:2: ( rule__FunctionDefinitionRule__TypeAssignment_1 )
-            // InternalDefinitionLanguage.g:4323:3: rule__FunctionDefinitionRule__TypeAssignment_1
+            // InternalDefinitionLanguage.g:4325:2: ( rule__FunctionDefinitionRule__TypeAssignment_1 )
+            // InternalDefinitionLanguage.g:4325:3: rule__FunctionDefinitionRule__TypeAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__TypeAssignment_1();
@@ -13580,14 +13586,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__2"
-    // InternalDefinitionLanguage.g:4331:1: rule__FunctionDefinitionRule__Group__2 : rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3 ;
+    // InternalDefinitionLanguage.g:4333:1: rule__FunctionDefinitionRule__Group__2 : rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3 ;
     public final void rule__FunctionDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4335:1: ( rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3 )
-            // InternalDefinitionLanguage.g:4336:2: rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3
+            // InternalDefinitionLanguage.g:4337:1: ( rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3 )
+            // InternalDefinitionLanguage.g:4338:2: rule__FunctionDefinitionRule__Group__2__Impl rule__FunctionDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_25);
             rule__FunctionDefinitionRule__Group__2__Impl();
@@ -13618,21 +13624,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__2__Impl"
-    // InternalDefinitionLanguage.g:4343:1: rule__FunctionDefinitionRule__Group__2__Impl : ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) ) ;
+    // InternalDefinitionLanguage.g:4345:1: rule__FunctionDefinitionRule__Group__2__Impl : ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) ) ;
     public final void rule__FunctionDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4347:1: ( ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) ) )
-            // InternalDefinitionLanguage.g:4348:1: ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:4349:1: ( ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:4350:1: ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:4348:1: ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) )
-            // InternalDefinitionLanguage.g:4349:2: ( rule__FunctionDefinitionRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:4350:1: ( ( rule__FunctionDefinitionRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:4351:2: ( rule__FunctionDefinitionRule__NameAssignment_2 )
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2()); 
-            // InternalDefinitionLanguage.g:4350:2: ( rule__FunctionDefinitionRule__NameAssignment_2 )
-            // InternalDefinitionLanguage.g:4350:3: rule__FunctionDefinitionRule__NameAssignment_2
+            // InternalDefinitionLanguage.g:4352:2: ( rule__FunctionDefinitionRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:4352:3: rule__FunctionDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__NameAssignment_2();
@@ -13665,14 +13671,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__3"
-    // InternalDefinitionLanguage.g:4358:1: rule__FunctionDefinitionRule__Group__3 : rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4 ;
+    // InternalDefinitionLanguage.g:4360:1: rule__FunctionDefinitionRule__Group__3 : rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4 ;
     public final void rule__FunctionDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4362:1: ( rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4 )
-            // InternalDefinitionLanguage.g:4363:2: rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4
+            // InternalDefinitionLanguage.g:4364:1: ( rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4 )
+            // InternalDefinitionLanguage.g:4365:2: rule__FunctionDefinitionRule__Group__3__Impl rule__FunctionDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_48);
             rule__FunctionDefinitionRule__Group__3__Impl();
@@ -13703,17 +13709,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__3__Impl"
-    // InternalDefinitionLanguage.g:4370:1: rule__FunctionDefinitionRule__Group__3__Impl : ( '(' ) ;
+    // InternalDefinitionLanguage.g:4372:1: rule__FunctionDefinitionRule__Group__3__Impl : ( '(' ) ;
     public final void rule__FunctionDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4374:1: ( ( '(' ) )
-            // InternalDefinitionLanguage.g:4375:1: ( '(' )
+            // InternalDefinitionLanguage.g:4376:1: ( ( '(' ) )
+            // InternalDefinitionLanguage.g:4377:1: ( '(' )
             {
-            // InternalDefinitionLanguage.g:4375:1: ( '(' )
-            // InternalDefinitionLanguage.g:4376:2: '('
+            // InternalDefinitionLanguage.g:4377:1: ( '(' )
+            // InternalDefinitionLanguage.g:4378:2: '('
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getLeftParenthesisKeyword_3()); 
             match(input,56,FOLLOW_2); 
@@ -13740,14 +13746,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__4"
-    // InternalDefinitionLanguage.g:4385:1: rule__FunctionDefinitionRule__Group__4 : rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5 ;
+    // InternalDefinitionLanguage.g:4387:1: rule__FunctionDefinitionRule__Group__4 : rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5 ;
     public final void rule__FunctionDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4389:1: ( rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5 )
-            // InternalDefinitionLanguage.g:4390:2: rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5
+            // InternalDefinitionLanguage.g:4391:1: ( rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5 )
+            // InternalDefinitionLanguage.g:4392:2: rule__FunctionDefinitionRule__Group__4__Impl rule__FunctionDefinitionRule__Group__5
             {
             pushFollow(FOLLOW_48);
             rule__FunctionDefinitionRule__Group__4__Impl();
@@ -13778,29 +13784,29 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__4__Impl"
-    // InternalDefinitionLanguage.g:4397:1: rule__FunctionDefinitionRule__Group__4__Impl : ( ( rule__FunctionDefinitionRule__Group_4__0 )? ) ;
+    // InternalDefinitionLanguage.g:4399:1: rule__FunctionDefinitionRule__Group__4__Impl : ( ( rule__FunctionDefinitionRule__Group_4__0 )? ) ;
     public final void rule__FunctionDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4401:1: ( ( ( rule__FunctionDefinitionRule__Group_4__0 )? ) )
-            // InternalDefinitionLanguage.g:4402:1: ( ( rule__FunctionDefinitionRule__Group_4__0 )? )
+            // InternalDefinitionLanguage.g:4403:1: ( ( ( rule__FunctionDefinitionRule__Group_4__0 )? ) )
+            // InternalDefinitionLanguage.g:4404:1: ( ( rule__FunctionDefinitionRule__Group_4__0 )? )
             {
-            // InternalDefinitionLanguage.g:4402:1: ( ( rule__FunctionDefinitionRule__Group_4__0 )? )
-            // InternalDefinitionLanguage.g:4403:2: ( rule__FunctionDefinitionRule__Group_4__0 )?
+            // InternalDefinitionLanguage.g:4404:1: ( ( rule__FunctionDefinitionRule__Group_4__0 )? )
+            // InternalDefinitionLanguage.g:4405:2: ( rule__FunctionDefinitionRule__Group_4__0 )?
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4()); 
-            // InternalDefinitionLanguage.g:4404:2: ( rule__FunctionDefinitionRule__Group_4__0 )?
+            // InternalDefinitionLanguage.g:4406:2: ( rule__FunctionDefinitionRule__Group_4__0 )?
             int alt32=2;
             int LA32_0 = input.LA(1);
 
-            if ( ((LA32_0>=64 && LA32_0<=65)||(LA32_0>=67 && LA32_0<=74)) ) {
+            if ( ((LA32_0>=63 && LA32_0<=64)||(LA32_0>=66 && LA32_0<=73)) ) {
                 alt32=1;
             }
             switch (alt32) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:4404:3: rule__FunctionDefinitionRule__Group_4__0
+                    // InternalDefinitionLanguage.g:4406:3: rule__FunctionDefinitionRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__FunctionDefinitionRule__Group_4__0();
@@ -13836,14 +13842,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__5"
-    // InternalDefinitionLanguage.g:4412:1: rule__FunctionDefinitionRule__Group__5 : rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6 ;
+    // InternalDefinitionLanguage.g:4414:1: rule__FunctionDefinitionRule__Group__5 : rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6 ;
     public final void rule__FunctionDefinitionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4416:1: ( rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6 )
-            // InternalDefinitionLanguage.g:4417:2: rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6
+            // InternalDefinitionLanguage.g:4418:1: ( rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6 )
+            // InternalDefinitionLanguage.g:4419:2: rule__FunctionDefinitionRule__Group__5__Impl rule__FunctionDefinitionRule__Group__6
             {
             pushFollow(FOLLOW_9);
             rule__FunctionDefinitionRule__Group__5__Impl();
@@ -13874,17 +13880,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__5__Impl"
-    // InternalDefinitionLanguage.g:4424:1: rule__FunctionDefinitionRule__Group__5__Impl : ( ')' ) ;
+    // InternalDefinitionLanguage.g:4426:1: rule__FunctionDefinitionRule__Group__5__Impl : ( ')' ) ;
     public final void rule__FunctionDefinitionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4428:1: ( ( ')' ) )
-            // InternalDefinitionLanguage.g:4429:1: ( ')' )
+            // InternalDefinitionLanguage.g:4430:1: ( ( ')' ) )
+            // InternalDefinitionLanguage.g:4431:1: ( ')' )
             {
-            // InternalDefinitionLanguage.g:4429:1: ( ')' )
-            // InternalDefinitionLanguage.g:4430:2: ')'
+            // InternalDefinitionLanguage.g:4431:1: ( ')' )
+            // InternalDefinitionLanguage.g:4432:2: ')'
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getRightParenthesisKeyword_5()); 
             match(input,57,FOLLOW_2); 
@@ -13911,14 +13917,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__6"
-    // InternalDefinitionLanguage.g:4439:1: rule__FunctionDefinitionRule__Group__6 : rule__FunctionDefinitionRule__Group__6__Impl ;
+    // InternalDefinitionLanguage.g:4441:1: rule__FunctionDefinitionRule__Group__6 : rule__FunctionDefinitionRule__Group__6__Impl ;
     public final void rule__FunctionDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4443:1: ( rule__FunctionDefinitionRule__Group__6__Impl )
-            // InternalDefinitionLanguage.g:4444:2: rule__FunctionDefinitionRule__Group__6__Impl
+            // InternalDefinitionLanguage.g:4445:1: ( rule__FunctionDefinitionRule__Group__6__Impl )
+            // InternalDefinitionLanguage.g:4446:2: rule__FunctionDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__Group__6__Impl();
@@ -13944,17 +13950,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group__6__Impl"
-    // InternalDefinitionLanguage.g:4450:1: rule__FunctionDefinitionRule__Group__6__Impl : ( ';' ) ;
+    // InternalDefinitionLanguage.g:4452:1: rule__FunctionDefinitionRule__Group__6__Impl : ( ';' ) ;
     public final void rule__FunctionDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4454:1: ( ( ';' ) )
-            // InternalDefinitionLanguage.g:4455:1: ( ';' )
+            // InternalDefinitionLanguage.g:4456:1: ( ( ';' ) )
+            // InternalDefinitionLanguage.g:4457:1: ( ';' )
             {
-            // InternalDefinitionLanguage.g:4455:1: ( ';' )
-            // InternalDefinitionLanguage.g:4456:2: ';'
+            // InternalDefinitionLanguage.g:4457:1: ( ';' )
+            // InternalDefinitionLanguage.g:4458:2: ';'
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getSemicolonKeyword_6()); 
             match(input,51,FOLLOW_2); 
@@ -13981,14 +13987,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4__0"
-    // InternalDefinitionLanguage.g:4466:1: rule__FunctionDefinitionRule__Group_4__0 : rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1 ;
+    // InternalDefinitionLanguage.g:4468:1: rule__FunctionDefinitionRule__Group_4__0 : rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1 ;
     public final void rule__FunctionDefinitionRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4470:1: ( rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1 )
-            // InternalDefinitionLanguage.g:4471:2: rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1
+            // InternalDefinitionLanguage.g:4472:1: ( rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1 )
+            // InternalDefinitionLanguage.g:4473:2: rule__FunctionDefinitionRule__Group_4__0__Impl rule__FunctionDefinitionRule__Group_4__1
             {
             pushFollow(FOLLOW_27);
             rule__FunctionDefinitionRule__Group_4__0__Impl();
@@ -14019,21 +14025,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4__0__Impl"
-    // InternalDefinitionLanguage.g:4478:1: rule__FunctionDefinitionRule__Group_4__0__Impl : ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) ) ;
+    // InternalDefinitionLanguage.g:4480:1: rule__FunctionDefinitionRule__Group_4__0__Impl : ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) ) ;
     public final void rule__FunctionDefinitionRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4482:1: ( ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) ) )
-            // InternalDefinitionLanguage.g:4483:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) )
+            // InternalDefinitionLanguage.g:4484:1: ( ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) ) )
+            // InternalDefinitionLanguage.g:4485:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) )
             {
-            // InternalDefinitionLanguage.g:4483:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) )
-            // InternalDefinitionLanguage.g:4484:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 )
+            // InternalDefinitionLanguage.g:4485:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 ) )
+            // InternalDefinitionLanguage.g:4486:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 )
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0()); 
-            // InternalDefinitionLanguage.g:4485:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 )
-            // InternalDefinitionLanguage.g:4485:3: rule__FunctionDefinitionRule__ParametersAssignment_4_0
+            // InternalDefinitionLanguage.g:4487:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_0 )
+            // InternalDefinitionLanguage.g:4487:3: rule__FunctionDefinitionRule__ParametersAssignment_4_0
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__ParametersAssignment_4_0();
@@ -14066,14 +14072,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4__1"
-    // InternalDefinitionLanguage.g:4493:1: rule__FunctionDefinitionRule__Group_4__1 : rule__FunctionDefinitionRule__Group_4__1__Impl ;
+    // InternalDefinitionLanguage.g:4495:1: rule__FunctionDefinitionRule__Group_4__1 : rule__FunctionDefinitionRule__Group_4__1__Impl ;
     public final void rule__FunctionDefinitionRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4497:1: ( rule__FunctionDefinitionRule__Group_4__1__Impl )
-            // InternalDefinitionLanguage.g:4498:2: rule__FunctionDefinitionRule__Group_4__1__Impl
+            // InternalDefinitionLanguage.g:4499:1: ( rule__FunctionDefinitionRule__Group_4__1__Impl )
+            // InternalDefinitionLanguage.g:4500:2: rule__FunctionDefinitionRule__Group_4__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__Group_4__1__Impl();
@@ -14099,20 +14105,20 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4__1__Impl"
-    // InternalDefinitionLanguage.g:4504:1: rule__FunctionDefinitionRule__Group_4__1__Impl : ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* ) ;
+    // InternalDefinitionLanguage.g:4506:1: rule__FunctionDefinitionRule__Group_4__1__Impl : ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* ) ;
     public final void rule__FunctionDefinitionRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4508:1: ( ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* ) )
-            // InternalDefinitionLanguage.g:4509:1: ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* )
+            // InternalDefinitionLanguage.g:4510:1: ( ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* ) )
+            // InternalDefinitionLanguage.g:4511:1: ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* )
             {
-            // InternalDefinitionLanguage.g:4509:1: ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* )
-            // InternalDefinitionLanguage.g:4510:2: ( rule__FunctionDefinitionRule__Group_4_1__0 )*
+            // InternalDefinitionLanguage.g:4511:1: ( ( rule__FunctionDefinitionRule__Group_4_1__0 )* )
+            // InternalDefinitionLanguage.g:4512:2: ( rule__FunctionDefinitionRule__Group_4_1__0 )*
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1()); 
-            // InternalDefinitionLanguage.g:4511:2: ( rule__FunctionDefinitionRule__Group_4_1__0 )*
+            // InternalDefinitionLanguage.g:4513:2: ( rule__FunctionDefinitionRule__Group_4_1__0 )*
             loop33:
             do {
                 int alt33=2;
@@ -14125,7 +14131,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
                 switch (alt33) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:4511:3: rule__FunctionDefinitionRule__Group_4_1__0
+            	    // InternalDefinitionLanguage.g:4513:3: rule__FunctionDefinitionRule__Group_4_1__0
             	    {
             	    pushFollow(FOLLOW_28);
             	    rule__FunctionDefinitionRule__Group_4_1__0();
@@ -14164,14 +14170,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4_1__0"
-    // InternalDefinitionLanguage.g:4520:1: rule__FunctionDefinitionRule__Group_4_1__0 : rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1 ;
+    // InternalDefinitionLanguage.g:4522:1: rule__FunctionDefinitionRule__Group_4_1__0 : rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1 ;
     public final void rule__FunctionDefinitionRule__Group_4_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4524:1: ( rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1 )
-            // InternalDefinitionLanguage.g:4525:2: rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1
+            // InternalDefinitionLanguage.g:4526:1: ( rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1 )
+            // InternalDefinitionLanguage.g:4527:2: rule__FunctionDefinitionRule__Group_4_1__0__Impl rule__FunctionDefinitionRule__Group_4_1__1
             {
             pushFollow(FOLLOW_36);
             rule__FunctionDefinitionRule__Group_4_1__0__Impl();
@@ -14202,17 +14208,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4_1__0__Impl"
-    // InternalDefinitionLanguage.g:4532:1: rule__FunctionDefinitionRule__Group_4_1__0__Impl : ( ',' ) ;
+    // InternalDefinitionLanguage.g:4534:1: rule__FunctionDefinitionRule__Group_4_1__0__Impl : ( ',' ) ;
     public final void rule__FunctionDefinitionRule__Group_4_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4536:1: ( ( ',' ) )
-            // InternalDefinitionLanguage.g:4537:1: ( ',' )
+            // InternalDefinitionLanguage.g:4538:1: ( ( ',' ) )
+            // InternalDefinitionLanguage.g:4539:1: ( ',' )
             {
-            // InternalDefinitionLanguage.g:4537:1: ( ',' )
-            // InternalDefinitionLanguage.g:4538:2: ','
+            // InternalDefinitionLanguage.g:4539:1: ( ',' )
+            // InternalDefinitionLanguage.g:4540:2: ','
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getCommaKeyword_4_1_0()); 
             match(input,58,FOLLOW_2); 
@@ -14239,14 +14245,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4_1__1"
-    // InternalDefinitionLanguage.g:4547:1: rule__FunctionDefinitionRule__Group_4_1__1 : rule__FunctionDefinitionRule__Group_4_1__1__Impl ;
+    // InternalDefinitionLanguage.g:4549:1: rule__FunctionDefinitionRule__Group_4_1__1 : rule__FunctionDefinitionRule__Group_4_1__1__Impl ;
     public final void rule__FunctionDefinitionRule__Group_4_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4551:1: ( rule__FunctionDefinitionRule__Group_4_1__1__Impl )
-            // InternalDefinitionLanguage.g:4552:2: rule__FunctionDefinitionRule__Group_4_1__1__Impl
+            // InternalDefinitionLanguage.g:4553:1: ( rule__FunctionDefinitionRule__Group_4_1__1__Impl )
+            // InternalDefinitionLanguage.g:4554:2: rule__FunctionDefinitionRule__Group_4_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__Group_4_1__1__Impl();
@@ -14272,21 +14278,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__Group_4_1__1__Impl"
-    // InternalDefinitionLanguage.g:4558:1: rule__FunctionDefinitionRule__Group_4_1__1__Impl : ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) ) ;
+    // InternalDefinitionLanguage.g:4560:1: rule__FunctionDefinitionRule__Group_4_1__1__Impl : ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) ) ;
     public final void rule__FunctionDefinitionRule__Group_4_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4562:1: ( ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) ) )
-            // InternalDefinitionLanguage.g:4563:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) )
+            // InternalDefinitionLanguage.g:4564:1: ( ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) ) )
+            // InternalDefinitionLanguage.g:4565:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) )
             {
-            // InternalDefinitionLanguage.g:4563:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) )
-            // InternalDefinitionLanguage.g:4564:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 )
+            // InternalDefinitionLanguage.g:4565:1: ( ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 ) )
+            // InternalDefinitionLanguage.g:4566:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 )
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1()); 
-            // InternalDefinitionLanguage.g:4565:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 )
-            // InternalDefinitionLanguage.g:4565:3: rule__FunctionDefinitionRule__ParametersAssignment_4_1_1
+            // InternalDefinitionLanguage.g:4567:2: ( rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 )
+            // InternalDefinitionLanguage.g:4567:3: rule__FunctionDefinitionRule__ParametersAssignment_4_1_1
             {
             pushFollow(FOLLOW_2);
             rule__FunctionDefinitionRule__ParametersAssignment_4_1_1();
@@ -14318,23 +14324,23 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "rule__FunctionDefinitionRule__Group_4_1__1__Impl"
 
 
-    // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalDefinitionLanguage.g:4574:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
-    public final void rule__ParameterRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__0"
+    // InternalDefinitionLanguage.g:4576:1: rule__ConstantDefinitionRule__Group__0 : rule__ConstantDefinitionRule__Group__0__Impl rule__ConstantDefinitionRule__Group__1 ;
+    public final void rule__ConstantDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4578:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalDefinitionLanguage.g:4579:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalDefinitionLanguage.g:4580:1: ( rule__ConstantDefinitionRule__Group__0__Impl rule__ConstantDefinitionRule__Group__1 )
+            // InternalDefinitionLanguage.g:4581:2: rule__ConstantDefinitionRule__Group__0__Impl rule__ConstantDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_5);
-            rule__ParameterRule__Group__0__Impl();
+            pushFollow(FOLLOW_31);
+            rule__ConstantDefinitionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParameterRule__Group__1();
+            rule__ConstantDefinitionRule__Group__1();
 
             state._fsp--;
 
@@ -14353,35 +14359,25 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ParameterRule__Group__0"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4586:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
-    public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__0__Impl"
+    // InternalDefinitionLanguage.g:4588:1: rule__ConstantDefinitionRule__Group__0__Impl : ( 'const' ) ;
+    public final void rule__ConstantDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4590:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalDefinitionLanguage.g:4591:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalDefinitionLanguage.g:4592:1: ( ( 'const' ) )
+            // InternalDefinitionLanguage.g:4593:1: ( 'const' )
             {
-            // InternalDefinitionLanguage.g:4591:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalDefinitionLanguage.g:4592:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalDefinitionLanguage.g:4593:1: ( 'const' )
+            // InternalDefinitionLanguage.g:4594:2: 'const'
             {
-             before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
-            // InternalDefinitionLanguage.g:4593:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalDefinitionLanguage.g:4593:3: rule__ParameterRule__TypeAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__ParameterRule__TypeAssignment_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
+             before(grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0()); 
+            match(input,75,FOLLOW_2); 
+             after(grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0()); 
 
             }
 
@@ -14400,21 +14396,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ParameterRule__Group__0__Impl"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalDefinitionLanguage.g:4601:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
-    public final void rule__ParameterRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__1"
+    // InternalDefinitionLanguage.g:4603:1: rule__ConstantDefinitionRule__Group__1 : rule__ConstantDefinitionRule__Group__1__Impl rule__ConstantDefinitionRule__Group__2 ;
+    public final void rule__ConstantDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4605:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4606:2: rule__ParameterRule__Group__1__Impl
+            // InternalDefinitionLanguage.g:4607:1: ( rule__ConstantDefinitionRule__Group__1__Impl rule__ConstantDefinitionRule__Group__2 )
+            // InternalDefinitionLanguage.g:4608:2: rule__ConstantDefinitionRule__Group__1__Impl rule__ConstantDefinitionRule__Group__2
             {
+            pushFollow(FOLLOW_5);
+            rule__ConstantDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__ParameterRule__Group__1__Impl();
+            rule__ConstantDefinitionRule__Group__2();
 
             state._fsp--;
 
@@ -14433,35 +14434,35 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ParameterRule__Group__1"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__1"
 
 
-    // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4612:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
-    public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__1__Impl"
+    // InternalDefinitionLanguage.g:4615:1: rule__ConstantDefinitionRule__Group__1__Impl : ( ( rule__ConstantDefinitionRule__TypeAssignment_1 ) ) ;
+    public final void rule__ConstantDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4616:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalDefinitionLanguage.g:4617:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4619:1: ( ( ( rule__ConstantDefinitionRule__TypeAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:4620:1: ( ( rule__ConstantDefinitionRule__TypeAssignment_1 ) )
             {
-            // InternalDefinitionLanguage.g:4617:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalDefinitionLanguage.g:4618:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalDefinitionLanguage.g:4620:1: ( ( rule__ConstantDefinitionRule__TypeAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4621:2: ( rule__ConstantDefinitionRule__TypeAssignment_1 )
             {
-             before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
-            // InternalDefinitionLanguage.g:4619:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalDefinitionLanguage.g:4619:3: rule__ParameterRule__NameAssignment_1
+             before(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1()); 
+            // InternalDefinitionLanguage.g:4622:2: ( rule__ConstantDefinitionRule__TypeAssignment_1 )
+            // InternalDefinitionLanguage.g:4622:3: rule__ConstantDefinitionRule__TypeAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__ParameterRule__NameAssignment_1();
+            rule__ConstantDefinitionRule__TypeAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
+             after(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1()); 
 
             }
 
@@ -14480,26 +14481,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__ParameterRule__Group__1__Impl"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalDefinitionLanguage.g:4628:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
-    public final void rule__QualifiedName__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__2"
+    // InternalDefinitionLanguage.g:4630:1: rule__ConstantDefinitionRule__Group__2 : rule__ConstantDefinitionRule__Group__2__Impl rule__ConstantDefinitionRule__Group__3 ;
+    public final void rule__ConstantDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4632:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalDefinitionLanguage.g:4633:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalDefinitionLanguage.g:4634:1: ( rule__ConstantDefinitionRule__Group__2__Impl rule__ConstantDefinitionRule__Group__3 )
+            // InternalDefinitionLanguage.g:4635:2: rule__ConstantDefinitionRule__Group__2__Impl rule__ConstantDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_49);
-            rule__QualifiedName__Group__0__Impl();
+            rule__ConstantDefinitionRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedName__Group__1();
+            rule__ConstantDefinitionRule__Group__3();
 
             state._fsp--;
 
@@ -14518,29 +14519,35 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedName__Group__0"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__2"
 
 
-    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalDefinitionLanguage.g:4640:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__2__Impl"
+    // InternalDefinitionLanguage.g:4642:1: rule__ConstantDefinitionRule__Group__2__Impl : ( ( rule__ConstantDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__ConstantDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4644:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:4645:1: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:4646:1: ( ( ( rule__ConstantDefinitionRule__NameAssignment_2 ) ) )
+            // InternalDefinitionLanguage.g:4647:1: ( ( rule__ConstantDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalDefinitionLanguage.g:4645:1: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:4646:2: ruleStringOrId
+            // InternalDefinitionLanguage.g:4647:1: ( ( rule__ConstantDefinitionRule__NameAssignment_2 ) )
+            // InternalDefinitionLanguage.g:4648:2: ( rule__ConstantDefinitionRule__NameAssignment_2 )
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2()); 
+            // InternalDefinitionLanguage.g:4649:2: ( rule__ConstantDefinitionRule__NameAssignment_2 )
+            // InternalDefinitionLanguage.g:4649:3: rule__ConstantDefinitionRule__NameAssignment_2
             {
-             before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__ConstantDefinitionRule__NameAssignment_2();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
+
+            }
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2()); 
 
             }
 
@@ -14559,21 +14566,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedName__Group__0__Impl"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalDefinitionLanguage.g:4655:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
-    public final void rule__QualifiedName__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__3"
+    // InternalDefinitionLanguage.g:4657:1: rule__ConstantDefinitionRule__Group__3 : rule__ConstantDefinitionRule__Group__3__Impl rule__ConstantDefinitionRule__Group__4 ;
+    public final void rule__ConstantDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4659:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalDefinitionLanguage.g:4660:2: rule__QualifiedName__Group__1__Impl
+            // InternalDefinitionLanguage.g:4661:1: ( rule__ConstantDefinitionRule__Group__3__Impl rule__ConstantDefinitionRule__Group__4 )
+            // InternalDefinitionLanguage.g:4662:2: rule__ConstantDefinitionRule__Group__3__Impl rule__ConstantDefinitionRule__Group__4
             {
+            pushFollow(FOLLOW_12);
+            rule__ConstantDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__QualifiedName__Group__1__Impl();
+            rule__ConstantDefinitionRule__Group__4();
 
             state._fsp--;
 
@@ -14592,39 +14604,433 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedName__Group__1"
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__3"
 
 
-    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalDefinitionLanguage.g:4666:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
-    public final void rule__QualifiedName__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__3__Impl"
+    // InternalDefinitionLanguage.g:4669:1: rule__ConstantDefinitionRule__Group__3__Impl : ( ':=' ) ;
+    public final void rule__ConstantDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4670:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalDefinitionLanguage.g:4671:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:4673:1: ( ( ':=' ) )
+            // InternalDefinitionLanguage.g:4674:1: ( ':=' )
             {
-            // InternalDefinitionLanguage.g:4671:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalDefinitionLanguage.g:4672:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalDefinitionLanguage.g:4674:1: ( ':=' )
+            // InternalDefinitionLanguage.g:4675:2: ':='
             {
-             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
-            // InternalDefinitionLanguage.g:4673:2: ( rule__QualifiedName__Group_1__0 )*
-            loop34:
-            do {
-                int alt34=2;
-                int LA34_0 = input.LA(1);
+             before(grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3()); 
+            match(input,62,FOLLOW_2); 
+             after(grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3()); 
 
-                if ( (LA34_0==76) ) {
-                    alt34=1;
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__3__Impl"
+
+
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__4"
+    // InternalDefinitionLanguage.g:4684:1: rule__ConstantDefinitionRule__Group__4 : rule__ConstantDefinitionRule__Group__4__Impl ;
+    public final void rule__ConstantDefinitionRule__Group__4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4688:1: ( rule__ConstantDefinitionRule__Group__4__Impl )
+            // InternalDefinitionLanguage.g:4689:2: rule__ConstantDefinitionRule__Group__4__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ConstantDefinitionRule__Group__4__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__4"
+
+
+    // $ANTLR start "rule__ConstantDefinitionRule__Group__4__Impl"
+    // InternalDefinitionLanguage.g:4695:1: rule__ConstantDefinitionRule__Group__4__Impl : ( ( rule__ConstantDefinitionRule__ValueAssignment_4 ) ) ;
+    public final void rule__ConstantDefinitionRule__Group__4__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4699:1: ( ( ( rule__ConstantDefinitionRule__ValueAssignment_4 ) ) )
+            // InternalDefinitionLanguage.g:4700:1: ( ( rule__ConstantDefinitionRule__ValueAssignment_4 ) )
+            {
+            // InternalDefinitionLanguage.g:4700:1: ( ( rule__ConstantDefinitionRule__ValueAssignment_4 ) )
+            // InternalDefinitionLanguage.g:4701:2: ( rule__ConstantDefinitionRule__ValueAssignment_4 )
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4()); 
+            // InternalDefinitionLanguage.g:4702:2: ( rule__ConstantDefinitionRule__ValueAssignment_4 )
+            // InternalDefinitionLanguage.g:4702:3: rule__ConstantDefinitionRule__ValueAssignment_4
+            {
+            pushFollow(FOLLOW_2);
+            rule__ConstantDefinitionRule__ValueAssignment_4();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__ParameterRule__Group__0"
+    // InternalDefinitionLanguage.g:4711:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    public final void rule__ParameterRule__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4715:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalDefinitionLanguage.g:4716:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            {
+            pushFollow(FOLLOW_5);
+            rule__ParameterRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__ParameterRule__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ParameterRule__Group__0"
+
+
+    // $ANTLR start "rule__ParameterRule__Group__0__Impl"
+    // InternalDefinitionLanguage.g:4723:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4727:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalDefinitionLanguage.g:4728:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            {
+            // InternalDefinitionLanguage.g:4728:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalDefinitionLanguage.g:4729:2: ( rule__ParameterRule__TypeAssignment_0 )
+            {
+             before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
+            // InternalDefinitionLanguage.g:4730:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalDefinitionLanguage.g:4730:3: rule__ParameterRule__TypeAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ParameterRule__TypeAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ParameterRule__Group__0__Impl"
+
+
+    // $ANTLR start "rule__ParameterRule__Group__1"
+    // InternalDefinitionLanguage.g:4738:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    public final void rule__ParameterRule__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4742:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4743:2: rule__ParameterRule__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__ParameterRule__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ParameterRule__Group__1"
+
+
+    // $ANTLR start "rule__ParameterRule__Group__1__Impl"
+    // InternalDefinitionLanguage.g:4749:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4753:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalDefinitionLanguage.g:4754:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            {
+            // InternalDefinitionLanguage.g:4754:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalDefinitionLanguage.g:4755:2: ( rule__ParameterRule__NameAssignment_1 )
+            {
+             before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
+            // InternalDefinitionLanguage.g:4756:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalDefinitionLanguage.g:4756:3: rule__ParameterRule__NameAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__ParameterRule__NameAssignment_1();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ParameterRule__Group__1__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__0"
+    // InternalDefinitionLanguage.g:4765: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 {
+            // InternalDefinitionLanguage.g:4769:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalDefinitionLanguage.g:4770:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            {
+            pushFollow(FOLLOW_50);
+            rule__QualifiedName__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group__1();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__0"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__0__Impl"
+    // InternalDefinitionLanguage.g:4777:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4781:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:4782:1: ( ruleStringOrId )
+            {
+            // InternalDefinitionLanguage.g:4782:1: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:4783:2: ruleStringOrId
+            {
+             before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__0__Impl"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__1"
+    // InternalDefinitionLanguage.g:4792:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    public final void rule__QualifiedName__Group__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4796:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalDefinitionLanguage.g:4797:2: rule__QualifiedName__Group__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__QualifiedName__Group__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__QualifiedName__Group__1"
+
+
+    // $ANTLR start "rule__QualifiedName__Group__1__Impl"
+    // InternalDefinitionLanguage.g:4803: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 {
+            // InternalDefinitionLanguage.g:4807:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalDefinitionLanguage.g:4808:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            {
+            // InternalDefinitionLanguage.g:4808:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalDefinitionLanguage.g:4809:2: ( rule__QualifiedName__Group_1__0 )*
+            {
+             before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
+            // InternalDefinitionLanguage.g:4810:2: ( rule__QualifiedName__Group_1__0 )*
+            loop34:
+            do {
+                int alt34=2;
+                int LA34_0 = input.LA(1);
+
+                if ( (LA34_0==76) ) {
+                    alt34=1;
                 }
 
 
                 switch (alt34) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:4673:3: rule__QualifiedName__Group_1__0
+            	    // InternalDefinitionLanguage.g:4810:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_50);
+            	    pushFollow(FOLLOW_51);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -14661,14 +15067,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalDefinitionLanguage.g:4682:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalDefinitionLanguage.g:4819: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 {
-            // InternalDefinitionLanguage.g:4686:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalDefinitionLanguage.g:4687:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalDefinitionLanguage.g:4823:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalDefinitionLanguage.g:4824:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__QualifiedName__Group_1__0__Impl();
@@ -14699,17 +15105,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalDefinitionLanguage.g:4694:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalDefinitionLanguage.g:4831:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4698:1: ( ( '.' ) )
-            // InternalDefinitionLanguage.g:4699:1: ( '.' )
+            // InternalDefinitionLanguage.g:4835:1: ( ( '.' ) )
+            // InternalDefinitionLanguage.g:4836:1: ( '.' )
             {
-            // InternalDefinitionLanguage.g:4699:1: ( '.' )
-            // InternalDefinitionLanguage.g:4700:2: '.'
+            // InternalDefinitionLanguage.g:4836:1: ( '.' )
+            // InternalDefinitionLanguage.g:4837:2: '.'
             {
              before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             match(input,76,FOLLOW_2); 
@@ -14736,14 +15142,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalDefinitionLanguage.g:4709:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalDefinitionLanguage.g:4846: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 {
-            // InternalDefinitionLanguage.g:4713:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalDefinitionLanguage.g:4714:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalDefinitionLanguage.g:4850:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalDefinitionLanguage.g:4851:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -14769,17 +15175,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalDefinitionLanguage.g:4720:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalDefinitionLanguage.g:4857:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4724:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:4725:1: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:4861:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:4862:1: ( ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:4725:1: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:4726:2: ruleStringOrId
+            // InternalDefinitionLanguage.g:4862:1: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:4863:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
@@ -14810,17 +15216,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__ImportsAssignment_0"
-    // InternalDefinitionLanguage.g:4736:1: rule__DefinitionModelRule__ImportsAssignment_0 : ( ruleImportRule ) ;
+    // InternalDefinitionLanguage.g:4873:1: rule__DefinitionModelRule__ImportsAssignment_0 : ( ruleImportRule ) ;
     public final void rule__DefinitionModelRule__ImportsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4740:1: ( ( ruleImportRule ) )
-            // InternalDefinitionLanguage.g:4741:2: ( ruleImportRule )
+            // InternalDefinitionLanguage.g:4877:1: ( ( ruleImportRule ) )
+            // InternalDefinitionLanguage.g:4878:2: ( ruleImportRule )
             {
-            // InternalDefinitionLanguage.g:4741:2: ( ruleImportRule )
-            // InternalDefinitionLanguage.g:4742:3: ruleImportRule
+            // InternalDefinitionLanguage.g:4878:2: ( ruleImportRule )
+            // InternalDefinitionLanguage.g:4879:3: ruleImportRule
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getImportsImportRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -14851,17 +15257,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__NameAssignment_2"
-    // InternalDefinitionLanguage.g:4751:1: rule__DefinitionModelRule__NameAssignment_2 : ( ruleQualifiedName ) ;
+    // InternalDefinitionLanguage.g:4888:1: rule__DefinitionModelRule__NameAssignment_2 : ( ruleQualifiedName ) ;
     public final void rule__DefinitionModelRule__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4755:1: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:4756:2: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:4892:1: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:4893:2: ( ruleQualifiedName )
             {
-            // InternalDefinitionLanguage.g:4756:2: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:4757:3: ruleQualifiedName
+            // InternalDefinitionLanguage.g:4893:2: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:4894:3: ruleQualifiedName
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getNameQualifiedNameParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -14892,17 +15298,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__TypesAssignment_4_0"
-    // InternalDefinitionLanguage.g:4766:1: rule__DefinitionModelRule__TypesAssignment_4_0 : ( ruleTypeDefinitionRule ) ;
+    // InternalDefinitionLanguage.g:4903:1: rule__DefinitionModelRule__TypesAssignment_4_0 : ( ruleTypeDefinitionRule ) ;
     public final void rule__DefinitionModelRule__TypesAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4770:1: ( ( ruleTypeDefinitionRule ) )
-            // InternalDefinitionLanguage.g:4771:2: ( ruleTypeDefinitionRule )
+            // InternalDefinitionLanguage.g:4907:1: ( ( ruleTypeDefinitionRule ) )
+            // InternalDefinitionLanguage.g:4908:2: ( ruleTypeDefinitionRule )
             {
-            // InternalDefinitionLanguage.g:4771:2: ( ruleTypeDefinitionRule )
-            // InternalDefinitionLanguage.g:4772:3: ruleTypeDefinitionRule
+            // InternalDefinitionLanguage.g:4908:2: ( ruleTypeDefinitionRule )
+            // InternalDefinitionLanguage.g:4909:3: ruleTypeDefinitionRule
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getTypesTypeDefinitionRuleParserRuleCall_4_0_0()); 
             pushFollow(FOLLOW_2);
@@ -14933,17 +15339,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DefinitionModelRule__FunctionsAssignment_4_1"
-    // InternalDefinitionLanguage.g:4781:1: rule__DefinitionModelRule__FunctionsAssignment_4_1 : ( ruleFunctionDefinitionRule ) ;
+    // InternalDefinitionLanguage.g:4918:1: rule__DefinitionModelRule__FunctionsAssignment_4_1 : ( ruleFunctionDefinitionRule ) ;
     public final void rule__DefinitionModelRule__FunctionsAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4785:1: ( ( ruleFunctionDefinitionRule ) )
-            // InternalDefinitionLanguage.g:4786:2: ( ruleFunctionDefinitionRule )
+            // InternalDefinitionLanguage.g:4922:1: ( ( ruleFunctionDefinitionRule ) )
+            // InternalDefinitionLanguage.g:4923:2: ( ruleFunctionDefinitionRule )
             {
-            // InternalDefinitionLanguage.g:4786:2: ( ruleFunctionDefinitionRule )
-            // InternalDefinitionLanguage.g:4787:3: ruleFunctionDefinitionRule
+            // InternalDefinitionLanguage.g:4923:2: ( ruleFunctionDefinitionRule )
+            // InternalDefinitionLanguage.g:4924:3: ruleFunctionDefinitionRule
             {
              before(grammarAccess.getDefinitionModelRuleAccess().getFunctionsFunctionDefinitionRuleParserRuleCall_4_1_0()); 
             pushFollow(FOLLOW_2);
@@ -14973,18 +15379,59 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "rule__DefinitionModelRule__FunctionsAssignment_4_1"
 
 
+    // $ANTLR start "rule__DefinitionModelRule__ConstantsAssignment_4_2"
+    // InternalDefinitionLanguage.g:4933:1: rule__DefinitionModelRule__ConstantsAssignment_4_2 : ( ruleConstantDefinitionRule ) ;
+    public final void rule__DefinitionModelRule__ConstantsAssignment_4_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:4937:1: ( ( ruleConstantDefinitionRule ) )
+            // InternalDefinitionLanguage.g:4938:2: ( ruleConstantDefinitionRule )
+            {
+            // InternalDefinitionLanguage.g:4938:2: ( ruleConstantDefinitionRule )
+            // InternalDefinitionLanguage.g:4939:3: ruleConstantDefinitionRule
+            {
+             before(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DefinitionModelRule__ConstantsAssignment_4_2"
+
+
     // $ANTLR start "rule__ImportRule__ImportedNamespaceAssignment_1"
-    // InternalDefinitionLanguage.g:4796:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedName ) ;
+    // InternalDefinitionLanguage.g:4948:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedName ) ;
     public final void rule__ImportRule__ImportedNamespaceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4800:1: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:4801:2: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:4952:1: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:4953:2: ( ruleQualifiedName )
             {
-            // InternalDefinitionLanguage.g:4801:2: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:4802:3: ruleQualifiedName
+            // InternalDefinitionLanguage.g:4953:2: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:4954:3: ruleQualifiedName
             {
              before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15015,17 +15462,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalDefinitionLanguage.g:4811:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalDefinitionLanguage.g:4963:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4815:1: ( ( ruleXorExpressionRule ) )
-            // InternalDefinitionLanguage.g:4816:2: ( ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:4967:1: ( ( ruleXorExpressionRule ) )
+            // InternalDefinitionLanguage.g:4968:2: ( ruleXorExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4816:2: ( ruleXorExpressionRule )
-            // InternalDefinitionLanguage.g:4817:3: ruleXorExpressionRule
+            // InternalDefinitionLanguage.g:4968:2: ( ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:4969:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15056,17 +15503,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDefinitionLanguage.g:4826:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalDefinitionLanguage.g:4978:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4830:1: ( ( ruleXorExpressionRule ) )
-            // InternalDefinitionLanguage.g:4831:2: ( ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:4982:1: ( ( ruleXorExpressionRule ) )
+            // InternalDefinitionLanguage.g:4983:2: ( ruleXorExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4831:2: ( ruleXorExpressionRule )
-            // InternalDefinitionLanguage.g:4832:3: ruleXorExpressionRule
+            // InternalDefinitionLanguage.g:4983:2: ( ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:4984:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15097,17 +15544,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalDefinitionLanguage.g:4841:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalDefinitionLanguage.g:4993:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4845:1: ( ( ruleAndExpressionRule ) )
-            // InternalDefinitionLanguage.g:4846:2: ( ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:4997:1: ( ( ruleAndExpressionRule ) )
+            // InternalDefinitionLanguage.g:4998:2: ( ruleAndExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4846:2: ( ruleAndExpressionRule )
-            // InternalDefinitionLanguage.g:4847:3: ruleAndExpressionRule
+            // InternalDefinitionLanguage.g:4998:2: ( ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:4999:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15138,17 +15585,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDefinitionLanguage.g:4856:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5008:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4860:1: ( ( ruleAndExpressionRule ) )
-            // InternalDefinitionLanguage.g:4861:2: ( ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:5012:1: ( ( ruleAndExpressionRule ) )
+            // InternalDefinitionLanguage.g:5013:2: ( ruleAndExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4861:2: ( ruleAndExpressionRule )
-            // InternalDefinitionLanguage.g:4862:3: ruleAndExpressionRule
+            // InternalDefinitionLanguage.g:5013:2: ( ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:5014:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15179,17 +15626,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalDefinitionLanguage.g:4871:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5023:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4875:1: ( ( ruleNotExpressionRule ) )
-            // InternalDefinitionLanguage.g:4876:2: ( ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:5027:1: ( ( ruleNotExpressionRule ) )
+            // InternalDefinitionLanguage.g:5028:2: ( ruleNotExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4876:2: ( ruleNotExpressionRule )
-            // InternalDefinitionLanguage.g:4877:3: ruleNotExpressionRule
+            // InternalDefinitionLanguage.g:5028:2: ( ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:5029:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15220,17 +15667,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalDefinitionLanguage.g:4886:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5038:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4890:1: ( ( ruleNotExpressionRule ) )
-            // InternalDefinitionLanguage.g:4891:2: ( ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:5042:1: ( ( ruleNotExpressionRule ) )
+            // InternalDefinitionLanguage.g:5043:2: ( ruleNotExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4891:2: ( ruleNotExpressionRule )
-            // InternalDefinitionLanguage.g:4892:3: ruleNotExpressionRule
+            // InternalDefinitionLanguage.g:5043:2: ( ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:5044:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15261,21 +15708,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalDefinitionLanguage.g:4901:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalDefinitionLanguage.g:5053:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4905:1: ( ( ( '!' ) ) )
-            // InternalDefinitionLanguage.g:4906:2: ( ( '!' ) )
+            // InternalDefinitionLanguage.g:5057:1: ( ( ( '!' ) ) )
+            // InternalDefinitionLanguage.g:5058:2: ( ( '!' ) )
             {
-            // InternalDefinitionLanguage.g:4906:2: ( ( '!' ) )
-            // InternalDefinitionLanguage.g:4907:3: ( '!' )
+            // InternalDefinitionLanguage.g:5058:2: ( ( '!' ) )
+            // InternalDefinitionLanguage.g:5059:3: ( '!' )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            // InternalDefinitionLanguage.g:4908:3: ( '!' )
-            // InternalDefinitionLanguage.g:4909:4: '!'
+            // InternalDefinitionLanguage.g:5060:3: ( '!' )
+            // InternalDefinitionLanguage.g:5061:4: '!'
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             match(input,77,FOLLOW_2); 
@@ -15306,17 +15753,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalDefinitionLanguage.g:4920:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5072:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4924:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalDefinitionLanguage.g:4925:2: ( ruleComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:5076:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalDefinitionLanguage.g:5077:2: ( ruleComparisonExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4925:2: ( ruleComparisonExpressionRule )
-            // InternalDefinitionLanguage.g:4926:3: ruleComparisonExpressionRule
+            // InternalDefinitionLanguage.g:5077:2: ( ruleComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:5078:3: ruleComparisonExpressionRule
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15347,17 +15794,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalDefinitionLanguage.g:4935:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5087:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4939:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:4940:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5091:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:5092:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4940:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:4941:3: ruleAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:5092:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5093:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15388,17 +15835,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalDefinitionLanguage.g:4950:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5102:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4954:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalDefinitionLanguage.g:4955:2: ( rulePartialComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:5106:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalDefinitionLanguage.g:5107:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4955:2: ( rulePartialComparisonExpressionRule )
-            // InternalDefinitionLanguage.g:4956:3: rulePartialComparisonExpressionRule
+            // InternalDefinitionLanguage.g:5107:2: ( rulePartialComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:5108:3: rulePartialComparisonExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15429,17 +15876,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalDefinitionLanguage.g:4965:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalDefinitionLanguage.g:5117:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4969:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalDefinitionLanguage.g:4970:2: ( ruleComparisonOperatorRule )
+            // InternalDefinitionLanguage.g:5121:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalDefinitionLanguage.g:5122:2: ( ruleComparisonOperatorRule )
             {
-            // InternalDefinitionLanguage.g:4970:2: ( ruleComparisonOperatorRule )
-            // InternalDefinitionLanguage.g:4971:3: ruleComparisonOperatorRule
+            // InternalDefinitionLanguage.g:5122:2: ( ruleComparisonOperatorRule )
+            // InternalDefinitionLanguage.g:5123:3: ruleComparisonOperatorRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15470,17 +15917,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalDefinitionLanguage.g:4980:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5132:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4984:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:4985:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5136:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:5137:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:4985:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:4986:3: ruleAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:5137:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5138:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15511,17 +15958,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalDefinitionLanguage.g:4995:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5147:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:4999:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDefinitionLanguage.g:5000:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:5151:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDefinitionLanguage.g:5152:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5000:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalDefinitionLanguage.g:5001:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalDefinitionLanguage.g:5152:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:5153:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15552,17 +15999,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalDefinitionLanguage.g:5010:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalDefinitionLanguage.g:5162:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5014:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalDefinitionLanguage.g:5015:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDefinitionLanguage.g:5166:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalDefinitionLanguage.g:5167:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalDefinitionLanguage.g:5015:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalDefinitionLanguage.g:5016:3: ruleAddOrSubtractOperatorRule
+            // InternalDefinitionLanguage.g:5167:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDefinitionLanguage.g:5168:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15593,17 +16040,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalDefinitionLanguage.g:5025:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5177:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5029:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDefinitionLanguage.g:5030:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:5181:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDefinitionLanguage.g:5182:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5030:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalDefinitionLanguage.g:5031:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalDefinitionLanguage.g:5182:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:5183:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15634,17 +16081,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalDefinitionLanguage.g:5040:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5192:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5044:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDefinitionLanguage.g:5045:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5196:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDefinitionLanguage.g:5197:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5045:2: ( rulePowerOfExpressionRule )
-            // InternalDefinitionLanguage.g:5046:3: rulePowerOfExpressionRule
+            // InternalDefinitionLanguage.g:5197:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5198:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15675,17 +16122,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalDefinitionLanguage.g:5055:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalDefinitionLanguage.g:5207:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5059:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalDefinitionLanguage.g:5060:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalDefinitionLanguage.g:5211:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalDefinitionLanguage.g:5212:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalDefinitionLanguage.g:5060:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalDefinitionLanguage.g:5061:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalDefinitionLanguage.g:5212:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalDefinitionLanguage.g:5213:3: ruleMultiplyDivideModuloOperatorRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15716,17 +16163,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalDefinitionLanguage.g:5070:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5222:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5074:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDefinitionLanguage.g:5075:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5226:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDefinitionLanguage.g:5227:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5075:2: ( rulePowerOfExpressionRule )
-            // InternalDefinitionLanguage.g:5076:3: rulePowerOfExpressionRule
+            // InternalDefinitionLanguage.g:5227:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5228:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15757,17 +16204,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalDefinitionLanguage.g:5085:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5237:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5089:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:5090:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5241:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:5242:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5090:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:5091:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:5242:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:5243:3: ruleUnaryAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15798,17 +16245,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalDefinitionLanguage.g:5100:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5252:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5104:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalDefinitionLanguage.g:5105:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5256:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalDefinitionLanguage.g:5257:2: ( rulePowerOfExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5105:2: ( rulePowerOfExpressionRule )
-            // InternalDefinitionLanguage.g:5106:3: rulePowerOfExpressionRule
+            // InternalDefinitionLanguage.g:5257:2: ( rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:5258:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15839,17 +16286,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalDefinitionLanguage.g:5115:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalDefinitionLanguage.g:5267:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5119:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalDefinitionLanguage.g:5120:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDefinitionLanguage.g:5271:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalDefinitionLanguage.g:5272:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalDefinitionLanguage.g:5120:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalDefinitionLanguage.g:5121:3: ruleAddOrSubtractOperatorRule
+            // InternalDefinitionLanguage.g:5272:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalDefinitionLanguage.g:5273:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15880,17 +16327,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalDefinitionLanguage.g:5130:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalDefinitionLanguage.g:5282:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5134:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalDefinitionLanguage.g:5135:2: ( ruleLiteralOrReferenceRule )
+            // InternalDefinitionLanguage.g:5286:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalDefinitionLanguage.g:5287:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalDefinitionLanguage.g:5135:2: ( ruleLiteralOrReferenceRule )
-            // InternalDefinitionLanguage.g:5136:3: ruleLiteralOrReferenceRule
+            // InternalDefinitionLanguage.g:5287:2: ( ruleLiteralOrReferenceRule )
+            // InternalDefinitionLanguage.g:5288:3: ruleLiteralOrReferenceRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15921,17 +16368,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalDefinitionLanguage.g:5145:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5297:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5149:1: ( ( ruleExpressionRule ) )
-            // InternalDefinitionLanguage.g:5150:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5301:1: ( ( ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:5302:2: ( ruleExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5150:2: ( ruleExpressionRule )
-            // InternalDefinitionLanguage.g:5151:3: ruleExpressionRule
+            // InternalDefinitionLanguage.g:5302:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5303:3: ruleExpressionRule
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15962,17 +16409,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalDefinitionLanguage.g:5160:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalDefinitionLanguage.g:5312:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5164:1: ( ( ruleFunctionNameRule ) )
-            // InternalDefinitionLanguage.g:5165:2: ( ruleFunctionNameRule )
+            // InternalDefinitionLanguage.g:5316:1: ( ( ruleFunctionNameRule ) )
+            // InternalDefinitionLanguage.g:5317:2: ( ruleFunctionNameRule )
             {
-            // InternalDefinitionLanguage.g:5165:2: ( ruleFunctionNameRule )
-            // InternalDefinitionLanguage.g:5166:3: ruleFunctionNameRule
+            // InternalDefinitionLanguage.g:5317:2: ( ruleFunctionNameRule )
+            // InternalDefinitionLanguage.g:5318:3: ruleFunctionNameRule
             {
              before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16003,17 +16450,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalDefinitionLanguage.g:5175:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5327:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5179:1: ( ( ruleExpressionRule ) )
-            // InternalDefinitionLanguage.g:5180:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5331:1: ( ( ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:5332:2: ( ruleExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5180:2: ( ruleExpressionRule )
-            // InternalDefinitionLanguage.g:5181:3: ruleExpressionRule
+            // InternalDefinitionLanguage.g:5332:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5333:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16044,17 +16491,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalDefinitionLanguage.g:5190:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5342:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5194:1: ( ( ruleExpressionRule ) )
-            // InternalDefinitionLanguage.g:5195:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5346:1: ( ( ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:5347:2: ( ruleExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5195:2: ( ruleExpressionRule )
-            // InternalDefinitionLanguage.g:5196:3: ruleExpressionRule
+            // InternalDefinitionLanguage.g:5347:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5348:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16084,18 +16531,67 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalDefinitionLanguage.g:5357:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:5361:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:5362:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalDefinitionLanguage.g:5362:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5363:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            // InternalDefinitionLanguage.g:5364:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5365:4: ruleQualifiedName
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalDefinitionLanguage.g:5205:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalDefinitionLanguage.g:5376:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5209:1: ( ( RULE_DOUBLE ) )
-            // InternalDefinitionLanguage.g:5210:2: ( RULE_DOUBLE )
+            // InternalDefinitionLanguage.g:5380:1: ( ( RULE_DOUBLE ) )
+            // InternalDefinitionLanguage.g:5381:2: ( RULE_DOUBLE )
             {
-            // InternalDefinitionLanguage.g:5210:2: ( RULE_DOUBLE )
-            // InternalDefinitionLanguage.g:5211:3: RULE_DOUBLE
+            // InternalDefinitionLanguage.g:5381:2: ( RULE_DOUBLE )
+            // InternalDefinitionLanguage.g:5382:3: RULE_DOUBLE
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
             match(input,RULE_DOUBLE,FOLLOW_2); 
@@ -16122,17 +16618,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalDefinitionLanguage.g:5220:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalDefinitionLanguage.g:5391:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5224:1: ( ( ruleFactorRule ) )
-            // InternalDefinitionLanguage.g:5225:2: ( ruleFactorRule )
+            // InternalDefinitionLanguage.g:5395:1: ( ( ruleFactorRule ) )
+            // InternalDefinitionLanguage.g:5396:2: ( ruleFactorRule )
             {
-            // InternalDefinitionLanguage.g:5225:2: ( ruleFactorRule )
-            // InternalDefinitionLanguage.g:5226:3: ruleFactorRule
+            // InternalDefinitionLanguage.g:5396:2: ( ruleFactorRule )
+            // InternalDefinitionLanguage.g:5397:3: ruleFactorRule
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16163,17 +16659,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalDefinitionLanguage.g:5235:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalDefinitionLanguage.g:5406:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5239:1: ( ( RULE_INT ) )
-            // InternalDefinitionLanguage.g:5240:2: ( RULE_INT )
+            // InternalDefinitionLanguage.g:5410:1: ( ( RULE_INT ) )
+            // InternalDefinitionLanguage.g:5411:2: ( RULE_INT )
             {
-            // InternalDefinitionLanguage.g:5240:2: ( RULE_INT )
-            // InternalDefinitionLanguage.g:5241:3: RULE_INT
+            // InternalDefinitionLanguage.g:5411:2: ( RULE_INT )
+            // InternalDefinitionLanguage.g:5412:3: RULE_INT
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -16200,17 +16696,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalDefinitionLanguage.g:5250:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalDefinitionLanguage.g:5421:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5254:1: ( ( ruleFactorRule ) )
-            // InternalDefinitionLanguage.g:5255:2: ( ruleFactorRule )
+            // InternalDefinitionLanguage.g:5425:1: ( ( ruleFactorRule ) )
+            // InternalDefinitionLanguage.g:5426:2: ( ruleFactorRule )
             {
-            // InternalDefinitionLanguage.g:5255:2: ( ruleFactorRule )
-            // InternalDefinitionLanguage.g:5256:3: ruleFactorRule
+            // InternalDefinitionLanguage.g:5426:2: ( ruleFactorRule )
+            // InternalDefinitionLanguage.g:5427:3: ruleFactorRule
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16241,17 +16737,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalDefinitionLanguage.g:5265:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalDefinitionLanguage.g:5436:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5269:1: ( ( RULE_STRING ) )
-            // InternalDefinitionLanguage.g:5270:2: ( RULE_STRING )
+            // InternalDefinitionLanguage.g:5440:1: ( ( RULE_STRING ) )
+            // InternalDefinitionLanguage.g:5441:2: ( RULE_STRING )
             {
-            // InternalDefinitionLanguage.g:5270:2: ( RULE_STRING )
-            // InternalDefinitionLanguage.g:5271:3: RULE_STRING
+            // InternalDefinitionLanguage.g:5441:2: ( RULE_STRING )
+            // InternalDefinitionLanguage.g:5442:3: RULE_STRING
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -16278,21 +16774,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalDefinitionLanguage.g:5280:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalDefinitionLanguage.g:5451:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5284:1: ( ( ( 'true' ) ) )
-            // InternalDefinitionLanguage.g:5285:2: ( ( 'true' ) )
+            // InternalDefinitionLanguage.g:5455:1: ( ( ( 'true' ) ) )
+            // InternalDefinitionLanguage.g:5456:2: ( ( 'true' ) )
             {
-            // InternalDefinitionLanguage.g:5285:2: ( ( 'true' ) )
-            // InternalDefinitionLanguage.g:5286:3: ( 'true' )
+            // InternalDefinitionLanguage.g:5456:2: ( ( 'true' ) )
+            // InternalDefinitionLanguage.g:5457:3: ( 'true' )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            // InternalDefinitionLanguage.g:5287:3: ( 'true' )
-            // InternalDefinitionLanguage.g:5288:4: 'true'
+            // InternalDefinitionLanguage.g:5458:3: ( 'true' )
+            // InternalDefinitionLanguage.g:5459:4: 'true'
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             match(input,78,FOLLOW_2); 
@@ -16323,21 +16819,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
-    // InternalDefinitionLanguage.g:5299:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    // InternalDefinitionLanguage.g:5470:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
     public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5303:1: ( ( ( 'abstract' ) ) )
-            // InternalDefinitionLanguage.g:5304:2: ( ( 'abstract' ) )
+            // InternalDefinitionLanguage.g:5474:1: ( ( ( 'abstract' ) ) )
+            // InternalDefinitionLanguage.g:5475:2: ( ( 'abstract' ) )
             {
-            // InternalDefinitionLanguage.g:5304:2: ( ( 'abstract' ) )
-            // InternalDefinitionLanguage.g:5305:3: ( 'abstract' )
+            // InternalDefinitionLanguage.g:5475:2: ( ( 'abstract' ) )
+            // InternalDefinitionLanguage.g:5476:3: ( 'abstract' )
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
-            // InternalDefinitionLanguage.g:5306:3: ( 'abstract' )
-            // InternalDefinitionLanguage.g:5307:4: 'abstract'
+            // InternalDefinitionLanguage.g:5477:3: ( 'abstract' )
+            // InternalDefinitionLanguage.g:5478:4: 'abstract'
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
             match(input,79,FOLLOW_2); 
@@ -16368,17 +16864,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
-    // InternalDefinitionLanguage.g:5318:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    // InternalDefinitionLanguage.g:5489:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
     public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5322:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:5323:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5493:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:5494:2: ( ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:5323:2: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:5324:3: ruleStringOrId
+            // InternalDefinitionLanguage.g:5494:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5495:3: ruleStringOrId
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -16409,21 +16905,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
-    // InternalDefinitionLanguage.g:5333:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalDefinitionLanguage.g:5504:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5337:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDefinitionLanguage.g:5338:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5508:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:5509:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDefinitionLanguage.g:5338:2: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:5339:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5509:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5510:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
-            // InternalDefinitionLanguage.g:5340:3: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:5341:4: ruleQualifiedName
+            // InternalDefinitionLanguage.g:5511:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5512:4: ruleQualifiedName
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16458,17 +16954,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
-    // InternalDefinitionLanguage.g:5352:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    // InternalDefinitionLanguage.g:5523:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
     public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5356:1: ( ( ruleAttributeDefinitionRule ) )
-            // InternalDefinitionLanguage.g:5357:2: ( ruleAttributeDefinitionRule )
+            // InternalDefinitionLanguage.g:5527:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalDefinitionLanguage.g:5528:2: ( ruleAttributeDefinitionRule )
             {
-            // InternalDefinitionLanguage.g:5357:2: ( ruleAttributeDefinitionRule )
-            // InternalDefinitionLanguage.g:5358:3: ruleAttributeDefinitionRule
+            // InternalDefinitionLanguage.g:5528:2: ( ruleAttributeDefinitionRule )
+            // InternalDefinitionLanguage.g:5529:3: ruleAttributeDefinitionRule
             {
              before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
             pushFollow(FOLLOW_2);
@@ -16499,17 +16995,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalDefinitionLanguage.g:5367:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalDefinitionLanguage.g:5538:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5371:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:5372:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5542:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:5543:2: ( ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:5372:2: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:5373:3: ruleStringOrId
+            // InternalDefinitionLanguage.g:5543:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5544:3: ruleStringOrId
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16540,17 +17036,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalDefinitionLanguage.g:5382:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalDefinitionLanguage.g:5553:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5386:1: ( ( ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:5387:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5557:1: ( ( ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:5558:2: ( ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:5387:2: ( ruleTypeRule )
-            // InternalDefinitionLanguage.g:5388:3: ruleTypeRule
+            // InternalDefinitionLanguage.g:5558:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5559:3: ruleTypeRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -16581,17 +17077,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalDefinitionLanguage.g:5397:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalDefinitionLanguage.g:5568:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5401:1: ( ( ruleExpressionRule ) )
-            // InternalDefinitionLanguage.g:5402:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5572:1: ( ( ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:5573:2: ( ruleExpressionRule )
             {
-            // InternalDefinitionLanguage.g:5402:2: ( ruleExpressionRule )
-            // InternalDefinitionLanguage.g:5403:3: ruleExpressionRule
+            // InternalDefinitionLanguage.g:5573:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5574:3: ruleExpressionRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16622,21 +17118,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalDefinitionLanguage.g:5412:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalDefinitionLanguage.g:5583:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5416:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDefinitionLanguage.g:5417:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5587:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:5588:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDefinitionLanguage.g:5417:2: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:5418:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5588:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5589:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
-            // InternalDefinitionLanguage.g:5419:3: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:5420:4: ruleQualifiedName
+            // InternalDefinitionLanguage.g:5590:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5591:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16671,21 +17167,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalDefinitionLanguage.g:5431:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalDefinitionLanguage.g:5602:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5435:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDefinitionLanguage.g:5436:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5606:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:5607:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDefinitionLanguage.g:5436:2: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:5437:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5607:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5608:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
-            // InternalDefinitionLanguage.g:5438:3: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:5439:4: ruleQualifiedName
+            // InternalDefinitionLanguage.g:5609:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5610:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16720,17 +17216,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalDefinitionLanguage.g:5450:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalDefinitionLanguage.g:5621:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5454:1: ( ( ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:5455:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5625:1: ( ( ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:5626:2: ( ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:5455:2: ( ruleTypeRule )
-            // InternalDefinitionLanguage.g:5456:3: ruleTypeRule
+            // InternalDefinitionLanguage.g:5626:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5627:3: ruleTypeRule
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16761,17 +17257,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__TypeAssignment_1"
-    // InternalDefinitionLanguage.g:5465:1: rule__FunctionDefinitionRule__TypeAssignment_1 : ( ruleTypeRule ) ;
+    // InternalDefinitionLanguage.g:5636:1: rule__FunctionDefinitionRule__TypeAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__FunctionDefinitionRule__TypeAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5469:1: ( ( ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:5470:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5640:1: ( ( ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:5641:2: ( ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:5470:2: ( ruleTypeRule )
-            // InternalDefinitionLanguage.g:5471:3: ruleTypeRule
+            // InternalDefinitionLanguage.g:5641:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5642:3: ruleTypeRule
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16802,17 +17298,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__NameAssignment_2"
-    // InternalDefinitionLanguage.g:5480:1: rule__FunctionDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    // InternalDefinitionLanguage.g:5651:1: rule__FunctionDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
     public final void rule__FunctionDefinitionRule__NameAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5484:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:5485:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5655:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:5656:2: ( ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:5485:2: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:5486:3: ruleStringOrId
+            // InternalDefinitionLanguage.g:5656:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5657:3: ruleStringOrId
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -16843,17 +17339,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__ParametersAssignment_4_0"
-    // InternalDefinitionLanguage.g:5495:1: rule__FunctionDefinitionRule__ParametersAssignment_4_0 : ( ruleParameterRule ) ;
+    // InternalDefinitionLanguage.g:5666:1: rule__FunctionDefinitionRule__ParametersAssignment_4_0 : ( ruleParameterRule ) ;
     public final void rule__FunctionDefinitionRule__ParametersAssignment_4_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5499:1: ( ( ruleParameterRule ) )
-            // InternalDefinitionLanguage.g:5500:2: ( ruleParameterRule )
+            // InternalDefinitionLanguage.g:5670:1: ( ( ruleParameterRule ) )
+            // InternalDefinitionLanguage.g:5671:2: ( ruleParameterRule )
             {
-            // InternalDefinitionLanguage.g:5500:2: ( ruleParameterRule )
-            // InternalDefinitionLanguage.g:5501:3: ruleParameterRule
+            // InternalDefinitionLanguage.g:5671:2: ( ruleParameterRule )
+            // InternalDefinitionLanguage.g:5672:3: ruleParameterRule
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getParametersParameterRuleParserRuleCall_4_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16884,17 +17380,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1"
-    // InternalDefinitionLanguage.g:5510:1: rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 : ( ruleParameterRule ) ;
+    // InternalDefinitionLanguage.g:5681:1: rule__FunctionDefinitionRule__ParametersAssignment_4_1_1 : ( ruleParameterRule ) ;
     public final void rule__FunctionDefinitionRule__ParametersAssignment_4_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5514:1: ( ( ruleParameterRule ) )
-            // InternalDefinitionLanguage.g:5515:2: ( ruleParameterRule )
+            // InternalDefinitionLanguage.g:5685:1: ( ( ruleParameterRule ) )
+            // InternalDefinitionLanguage.g:5686:2: ( ruleParameterRule )
             {
-            // InternalDefinitionLanguage.g:5515:2: ( ruleParameterRule )
-            // InternalDefinitionLanguage.g:5516:3: ruleParameterRule
+            // InternalDefinitionLanguage.g:5686:2: ( ruleParameterRule )
+            // InternalDefinitionLanguage.g:5687:3: ruleParameterRule
             {
              before(grammarAccess.getFunctionDefinitionRuleAccess().getParametersParameterRuleParserRuleCall_4_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16924,18 +17420,141 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // $ANTLR end "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1"
 
 
+    // $ANTLR start "rule__ConstantDefinitionRule__TypeAssignment_1"
+    // InternalDefinitionLanguage.g:5696:1: rule__ConstantDefinitionRule__TypeAssignment_1 : ( ruleTypeDefinitionRule ) ;
+    public final void rule__ConstantDefinitionRule__TypeAssignment_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:5700:1: ( ( ruleTypeDefinitionRule ) )
+            // InternalDefinitionLanguage.g:5701:2: ( ruleTypeDefinitionRule )
+            {
+            // InternalDefinitionLanguage.g:5701:2: ( ruleTypeDefinitionRule )
+            // InternalDefinitionLanguage.g:5702:3: ruleTypeDefinitionRule
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0()); 
+            pushFollow(FOLLOW_2);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__TypeAssignment_1"
+
+
+    // $ANTLR start "rule__ConstantDefinitionRule__NameAssignment_2"
+    // InternalDefinitionLanguage.g:5711:1: rule__ConstantDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__ConstantDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:5715:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:5716:2: ( ruleStringOrId )
+            {
+            // InternalDefinitionLanguage.g:5716:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5717:3: ruleStringOrId
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__ConstantDefinitionRule__ValueAssignment_4"
+    // InternalDefinitionLanguage.g:5726:1: rule__ConstantDefinitionRule__ValueAssignment_4 : ( ruleExpressionRule ) ;
+    public final void rule__ConstantDefinitionRule__ValueAssignment_4() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalDefinitionLanguage.g:5730:1: ( ( ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:5731:2: ( ruleExpressionRule )
+            {
+            // InternalDefinitionLanguage.g:5731:2: ( ruleExpressionRule )
+            // InternalDefinitionLanguage.g:5732:3: ruleExpressionRule
+            {
+             before(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0()); 
+            pushFollow(FOLLOW_2);
+            ruleExpressionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantDefinitionRule__ValueAssignment_4"
+
+
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalDefinitionLanguage.g:5525:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalDefinitionLanguage.g:5741:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5529:1: ( ( ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:5530:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5745:1: ( ( ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:5746:2: ( ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:5530:2: ( ruleTypeRule )
-            // InternalDefinitionLanguage.g:5531:3: ruleTypeRule
+            // InternalDefinitionLanguage.g:5746:2: ( ruleTypeRule )
+            // InternalDefinitionLanguage.g:5747:3: ruleTypeRule
             {
              before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16966,17 +17585,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalDefinitionLanguage.g:5540:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalDefinitionLanguage.g:5756:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5544:1: ( ( ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:5545:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5760:1: ( ( ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:5761:2: ( ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:5545:2: ( ruleStringOrId )
-            // InternalDefinitionLanguage.g:5546:3: ruleStringOrId
+            // InternalDefinitionLanguage.g:5761:2: ( ruleStringOrId )
+            // InternalDefinitionLanguage.g:5762:3: ruleStringOrId
             {
              before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17007,21 +17626,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalDefinitionLanguage.g:5555:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalDefinitionLanguage.g:5771:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalDefinitionLanguage.g:5559:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalDefinitionLanguage.g:5560:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5775:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:5776:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDefinitionLanguage.g:5560:2: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:5561:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5776:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:5777:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
-            // InternalDefinitionLanguage.g:5562:3: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:5563:4: ruleQualifiedName
+            // InternalDefinitionLanguage.g:5778:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:5779:4: ruleQualifiedName
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
             pushFollow(FOLLOW_2);
@@ -17057,6 +17676,51 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     // Delegated rules
 
 
+    protected DFA2 dfa2 = new DFA2(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\116\2\117\2\uffff\1\5\2\uffff\2\117";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\50\uffff\1\4\25\uffff\1\3",
+            "\13\7\26\uffff\1\7\1\uffff\5\7\1\6\3\7\16\uffff\2\7\1\5\2\uffff\1\7",
+            "\13\7\26\uffff\1\7\1\uffff\5\7\1\6\3\7\16\uffff\2\7\1\5\2\uffff\1\7",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\26\uffff\1\7\1\uffff\5\7\1\6\3\7\16\uffff\2\7\1\5\2\uffff\1\7",
+            "\13\7\26\uffff\1\7\1\uffff\5\7\1\6\3\7\16\uffff\2\7\1\5\2\uffff\1\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA2 extends DFA {
+
+        public DFA2(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 2;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1219:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -17065,12 +17729,12 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0004000000000002L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000030L});
     public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0001000000000000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x1002000000000000L,0x0000000000008800L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x1000000000000002L,0x0000000000008800L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0802000000000000L,0x0000000000008C00L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0800000000000002L,0x0000000000008C00L});
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0008000000000000L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0010000000000000L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0010000000000002L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0900000000C081F0L,0x0000000000006000L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0100000000C081F0L,0x0000000000006000L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0020000000000000L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0020000000000002L});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0040000000000000L});
@@ -17084,30 +17748,31 @@ public class InternalDefinitionLanguageParser extends AbstractInternalContentAss
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0080000000000000L});
     public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0200000000000000L});
     public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0B00000000C081F0L,0x0000000000006000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0300000000C081F0L,0x0000000000006000L});
     public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0400000000000000L});
     public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0400000000000002L});
     public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00007FFFF8000000L});
     public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00000000000081C0L,0x0000000000004000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x1000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x2001000000000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0800000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x1001000000000000L});
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0002000000000030L});
     public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000000032L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x4000000000000000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x00000000000007FBL});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x8008000000000000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0200000000000000L,0x00000000000007FBL});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x8000000000000000L,0x00000000000003FDL});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x4008000000000000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x8000000000000000L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x8200000000000000L,0x00000000000003FDL});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x4000000000000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.dl.dsl.ui/src-gen/de/evoal/languages/model/dl/dsl/ui/contentassist/AbstractDefinitionLanguageProposalProvider.java b/src/languages/de.evoal.languages.model.dl.dsl.ui/src-gen/de/evoal/languages/model/dl/dsl/ui/contentassist/AbstractDefinitionLanguageProposalProvider.java
index 5bb89c7f..72e926bb 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl.ui/src-gen/de/evoal/languages/model/dl/dsl/ui/contentassist/AbstractDefinitionLanguageProposalProvider.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl.ui/src-gen/de/evoal/languages/model/dl/dsl/ui/contentassist/AbstractDefinitionLanguageProposalProvider.java
@@ -30,6 +30,9 @@ public abstract class AbstractDefinitionLanguageProposalProvider extends BaseLan
 	public void completeDefinitionModelRule_Functions(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
+	public void completeDefinitionModelRule_Constants(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
+		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
+	}
 	public void completeImportRule_ImportedNamespace(EObject model, Assignment assignment, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		completeRuleCall(((RuleCall)assignment.getTerminal()), context, acceptor);
 	}
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtextbin b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtextbin
index de63a2559146c961f0be4dcea7aa5dbaa78c4ac7..c53f5498030d2225bc1bf1cb9a64a025b7ed45f4 100644
GIT binary patch
delta 3180
zcmZu!d3+po74L6$XE&Q`Tbg9kByDZlKpRR&5EOdOdrey+&_XF#K+s7tp(~r+bazr)
zTby#V94*u`YCZS>ipYHl7OjeS;0=g3qA214RVgZpS`^-Q<~O?ux_>0udEe{3`Tc$~
zd34p&{rBxR)$tEJWFF4?O(tzujYiw@QnBJWMQ^P;?3Uf)pu2Xg;3nu2l`!n}3A)rs
zOiHv^*8jj%k}gxtX2Xy>oG<3Re5sf+mZa%&HN~VIn!FR_)*895idDTSx<WOX_I@?-
zLszP_VJtHfbd^e(#s!M54qj?)Jz*EXyEK+|1Jo;^Ya~K_Y1Az{Ua4G3C61N|*9w&O
zsH`z7xS_49CF<t`I?`SvIVmwSxV~*hRyw#&nP!p#HQA&O2K(9;WIqJcUZv>6xVA6I
z=H}%3@|*HQZi+sFnkBW5qV_SV&9DDBuJs^RushdzMm69Kaljk@Pr#ed%RUkMgcLJj
z`r?od|4Gz##C_fz+@H&(K81#E2_Db&WInCixHWh+*E8cbm6jRYUR9A9gg4<15bg|?
zwRbh&r3rVV@77>%dkgx$NBU0Fz3Ah<V0Zgbt@leGiKR;<(`Rt;0mGb>=oWNW=ZcME
zP9a4PqS2*N|19eJQSX#`Yg~T_b?`rj`sY!fj{3B-if*KE02Z?V`2rwc49=g{ll>BC
zi{;wGxc22>@3c9q9|3T&0P&%(NO#SZv4ItvN6T)d60ftbVorX9iGR}9;;DaKB$Bkc
zPtl`+ozBgsZvehg1L>PF?pwgEU$a)xw}I=X?*MmEjQehk`yL_z_84FWJs#}o$j!Tj
z?zDY-pS^?j*t_h#_RUnWZ=-Fr-G0h`#(s`Yp><SG8|aDPv5xl4_w}84GI+70-T#5y
zx;pxyYQ|#EI0F^0><oIT#4=gHKN7d<B^kkw<-6%^8Fdx?M5bXDoe?*@&p$=l1A_P&
zf@0G=CD1x|v**f!QuK2{*H^}5d#n?7NO>Cj^A~DSw7Z{FDf%Tu!fi;;2;11I=vRo<
zYc@EZSI!TNd9GfZzZNJx8$8lE-T#g5<~eNfHp`+II&P0A>9^8lihegC^zY-)e}LOU
zMbD#*_QHTKz~i8tOc`X3Ht!#`*`HvRwybqqd>KZP{w&M5fnEgTkT9}mO5EawHQq~_
z_ZRS*EUQ)*@?XQv^EWlsq?coyjPmc2DlK<Igs=?gA5ecq)EoPYURBzse`?OZpj~fS
zx+=o|4uuax_|+IBLjMurWWMNys{e)RYogk`vQTnrx;!aju!3x(WmU^6$p(ZuA;Rn@
zW1LcKigIcgI?(2nXmeV$Cv&M(aGhc`HP>lY2I|e0H4Y&9^`U+P^c!QK=rxIa-9RK2
z8Z@gW-{dSDPR)CA_7-XmlQnUQb{Gc`ha*CVsc>kCf#T2#he9M3I<%pM9L7WCva_Wo
z->zByG(DecUDP{5^-fH~0Znn2EUk=Na7Wyt7p-BQj>#W{i{crunJG3?`oo9dpj&f#
zlXjW~qb%+(9+MG5CFgRtn3+5qt;~s`BH1JEnY_j-J~E)0t;ZZCn~vv3D3U$L^TasZ
zbKI+s7(QBv#x}+C!SIg(W5GCv6*I!%Z$|KAC3w@>rTkDW^l>`LTM)Xzvf`=?=lF0q
zCm`=zW0X?-HnBA~iAbn>B6LqujlMCpcHY+H7i!`n$WO7Xi5M|i9GWbF$<i1rCd<U6
z!L1(Pp_L6QLJNJ4=hQqHJb!(Hm+KzlvdH&^@+%;}Qp+zF`Bms)NK_z<51*{hL++PS
zV&M|SZ<m#j4PR88LcZd}?<;%?=6W7DrwY_q6!HDj@a1CpLeJ7c&hkt;#3#`!^ctu6
zSSHT#YKfj(IaVBmRPE3U4=i32rL!ND(5Fl2IzB@Llk%>lc<uP(j?WZ-EJt34%kjzH
z#b+Ux9PNBIlFU{7j<}`uf$DDY&%yZ4l?=_NJ7swu$Tp0u&x@@2ofw}SAl0%&IX|4=
z1rq|iD-Q7P@d4P;{+I_3#EWzgVdg6y3NyG-1|Wt}n5Xzc{KgP@1LhOIHNJ5^`6wjq
zlu+-HP$|Ahh^axmiz+Tm2sna(Pl#f1Lco$*r6)8h)bJi}6hLZ|Qy2@MBwR)dxV4JU
zwePX_+Xw8I?ZfsV`vp43epsapuBfEJUa+S7IDbsyw$x&tRvK~((LgszR<0!Yy)w|`
z5tj7^kaVzFI!N=D=%HDc9~mu`<J0DS7|~YIZs-p$N0QsL<i(K8$k{T|364m;U!;=k
zOGoKQNAdQcb9RS+37V0oG+!D|SpL2YxRKJ3ys<03e8PBk#Q2@SZ&iGSGVx4L@|Bp9
zC(l-WAYLWNaK2Ydp?+AeXkEl>w=8wFfOn%B-XQsBL07Lqbpr-`EnKi)q*)`OUI%9A
By~_Xq

delta 2878
zcmZuzX?PP=6y+tEr0JHH(kxwQO92ZMMi4h>>AXi-D#%(8M8Tn%wvlwwCR3yq9XDLS
z4M)Z06G0Ra6;PlkDz3Pq;4XqFA}V|;inswT_s+cO;zxe8$-C#Ad+wPxZ)Q)`_AwjU
z1Ttjf7U6_X_XtjU70D9l)x_zLW;p4UgwSh<TX4^pqs<EG^r6=hkHb*`gzKR0m`&&+
zk}jmhBX#xK#6~49t6{gJ+(WM?X@azb6X^{|>JOwF0h}B|oED2G+|B_2y-5HpU2LrM
z_w_E}25vTX`TJ(xLIlA@ZzUN5z0DzXbCwu-pfK1R)gq127B{^e9rOpQOA&F0Q4uKh
z8Mr3G+MT#|7p(O*mIsn1-;L{iEI)J^xbT`T)G#-3PZz)U+J5glh2Q%Ty3E)R$Q`iA
z9&kBH#{pAnVhxRQJd%j1)@%>rXe&snqtH-;xxOjQQN>AD@*y8G>VkcGt|A!!!|j$J
z7&E~~kh<Df8_e@Q$_Z<Xox!}!#~>9CU5oQQj;RzGBquw6Ok9yQC0<=Gt8V%POzRv`
z4lz85uyw|uP)U#V7{Lfw+kk6NAvG7Nh92_tcp8gH*oehVSj;zz>qFk`%_vud)i$hd
z!D<0iL;g`s&2rRDpFwsR)St!rR^w!-x9>S5l>rGq^m#+f@%MWHqtmS=`!C&Qhy5Zj
zTy#Pup)VQxbAr8IMsyR$(N}EPs|cGhaSEZYA*^US!sgkq*KODv*dI}EB1(S?Q3^*%
zb0kHYCpAeebOl{4>C!T35nU`Tk(NrUXhK>;7fQROebNCsj#krTT2J4GOPE#N(x_A_
zwGlO<MPjOTE#KjnW{1Ps&6z2RT`|N(--XMYMBmeKgH#A!d2T|B%Qc$YSpi#rCwOdM
zf|Pc_Z$X1LguV|OLQv%f#oP=Zp!=<W_z=g#+wUWQCMgRv1-3AuALBkvG{cRB229E)
zBvYWD+V%p(O+Q1CHjIGo2DYP>(9eyGynuTT6zE=KU|xR47o4yU=kbf8F*q+vhcUi{
zG2Ha4E~fU|roKkCVT2yQGTJu{e1ob7AviC3vf}!d%YTRR9xE<T{~oq<3O$5`!$9y&
z)#4Gg&ZZfg^L%=mD0Zv@<wx_j`3X<0BV6<c80=@T;(>^PZVvhjY90m6)GAf81)cO)
zPC14?l0}ghLH9RP_jlC&!v=w_{wD~#BC2Mp{)MW?K{b7JG$wb_J;5m_Q8!f-+smN*
zx2gOOD*tQ42w~ko*j<Y<D9s2+GY3d#uvjdr$f{*phl7JTEgEy7db%ifLJ$`dP@lO$
zpLuK`2quAk(p*c+?BK-?$=G3h1WpV&+8zr_;k;DdpaY;Q&>_w2kd7UEHWE5yV27xs
zWp>EK4&5;x8js5@9r{_E)q}^=UIy`OQ{0bf$jBlr0Ncr{M3n|b)k4-e&4QTxLF__U
z2;1Zs83lfCE*H)-!~(yb4^jf_i9QSL0^kcl+Z$06nyl6+gcX5&YPkJ=<_&tmZNrK!
z7TrPItT%Kq?;6&JA1$me2ssuKcG@WwN_3Ry*GZzkEn(UofVN8^owVt(NVp@Mf!yjK
z3@1et?J8s=n%SI=0}ZxOgs>stLzoXDrtTT2I}~({k%igbGdb=oLoN&k&o%|lL4kAa
z0tgH<mKJ8|!;x5qhAL%E?l4r&kt4Vvy9$OXOg#zpsEq<WhK9l*f`;(JM)LEDRYJ)*
ztemh>5Sq_CL*-~BA!`vG9+vRRz(!+Avye0f^BrypjK%L)z<0Wr9%RWZhaP4_=}~%|
zIanzxW8GO5I1h|&R%`H7{@?k`&a>P}o51uqFrCE4gP;p8J7MR86F9EmMZoMo0s7<C
zViR%QK6=?Cv;{{mn~Y9M2%BP$G!<|u@VJLV8tx;$f2uLeX<#XRl3g*6J~rKQ!Y(i}
zdu8b}%m8Ov4!D5}Z3DBq7`TWVz&zN+_8y##Zb}K8b1D;;SSFAlBd#A|bMZfB%BD%{
zq)?l*RXQe}kd8=)=uBxFaXVNIaXDDn7+XAqC`M~>$Xg4JS&fs`84nbP^m=gYVG-*^
zCn?g<7>jFs=1Z~NJeWD9%3QVvj&gbfY#)~w&RDYs*Fgm(7mI-*k0nD`BTUiV`k{m;
zK%j|6xyHIIO*noV(Fu#&Bft;|WH-dZ@IpnH)+MiIi$K_X#J3W584=94PqqMXZVetr
k+;<Bg;n7am<xohj<y(jsTXCo=3~V9lB;y{0AstTgAByK|I{*Lx

diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.g b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.g
index 739fc42c..08c09ad9 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.g
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.g
@@ -164,10 +164,30 @@ ruleDefinitionModelRule returns [EObject current=null]
 					}
 				)
 			)
+			    |
+			(
+				(
+					{
+						newCompositeNode(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0());
+					}
+					lv_constants_6_0=ruleConstantDefinitionRule
+					{
+						if ($current==null) {
+							$current = createModelElementForParent(grammarAccess.getDefinitionModelRuleRule());
+						}
+						add(
+							$current,
+							"constants",
+							lv_constants_6_0,
+							"de.evoal.languages.model.base.dsl.BaseLanguage.ConstantDefinitionRule");
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
 		)*
-		otherlv_6='}'
+		otherlv_7='}'
 		{
-			newLeafNode(otherlv_6, grammarAccess.getDefinitionModelRuleAccess().getRightCurlyBracketKeyword_5());
+			newLeafNode(otherlv_7, grammarAccess.getDefinitionModelRuleAccess().getRightCurlyBracketKeyword_5());
 		}
 	)
 ;
@@ -1078,21 +1098,49 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
 	(
 		(
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -2143,6 +2191,90 @@ ruleFunctionDefinitionRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleConstantDefinitionRule
+entryRuleConstantDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantDefinitionRuleRule()); }
+	iv_ruleConstantDefinitionRule=ruleConstantDefinitionRule
+	{ $current=$iv_ruleConstantDefinitionRule.current; }
+	EOF;
+
+// Rule ConstantDefinitionRule
+ruleConstantDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		otherlv_0='const'
+		{
+			newLeafNode(otherlv_0, grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0());
+				}
+				lv_type_1_0=ruleTypeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"type",
+						lv_type_1_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.TypeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		otherlv_3=':='
+		{
+			newLeafNode(otherlv_3, grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0());
+				}
+				lv_value_4_0=ruleExpressionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"value",
+						lv_value_4_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.ExpressionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+	)
+;
+
 // Entry rule entryRuleParameterRule
 entryRuleParameterRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getParameterRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.tokens b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.tokens
index b671400f..0208d39a 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguage.tokens
@@ -9,8 +9,8 @@
 '-'=56
 '.'=48
 '/'=58
-':'=34
-':='=35
+':'=33
+':='=34
 ';'=19
 '<'=53
 '<='=54
@@ -30,38 +30,38 @@
 '\u00B5'=73
 '^'=24
 'a'=77
-'abstract'=31
-'array'=46
-'boolean'=43
+'abstract'=30
+'array'=45
+'boolean'=42
 'c'=71
+'const'=47
 'd'=70
 'da'=69
-'data'=45
-'def'=47
-'expression'=40
-'extends'=33
+'data'=44
+'def'=46
+'expression'=39
+'extends'=32
 'f'=76
-'false'=30
-'float'=42
+'false'=29
+'float'=41
 'h'=68
 'import'=18
-'instance'=37
-'int'=41
+'instance'=36
+'int'=40
 'k'=67
-'literal'=36
+'literal'=35
 'm'=72
 'module'=15
 'n'=74
 'p'=75
-'string'=39
-'true'=29
-'type'=32
-'value'=28
-'void'=44
+'string'=38
+'true'=28
+'type'=31
+'void'=43
 'y'=79
 'z'=78
 '{'=16
-'|'=38
+'|'=37
 '}'=17
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageLexer.java b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageLexer.java
index 98ea638e..bea68a86 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageLexer.java
@@ -373,10 +373,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:24:7: ( 'value' )
-            // InternalDefinitionLanguage.g:24:9: 'value'
+            // InternalDefinitionLanguage.g:24:7: ( 'true' )
+            // InternalDefinitionLanguage.g:24:9: 'true'
             {
-            match("value"); 
+            match("true"); 
 
 
             }
@@ -394,10 +394,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:25:7: ( 'true' )
-            // InternalDefinitionLanguage.g:25:9: 'true'
+            // InternalDefinitionLanguage.g:25:7: ( 'false' )
+            // InternalDefinitionLanguage.g:25:9: 'false'
             {
-            match("true"); 
+            match("false"); 
 
 
             }
@@ -415,10 +415,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:26:7: ( 'false' )
-            // InternalDefinitionLanguage.g:26:9: 'false'
+            // InternalDefinitionLanguage.g:26:7: ( 'abstract' )
+            // InternalDefinitionLanguage.g:26:9: 'abstract'
             {
-            match("false"); 
+            match("abstract"); 
 
 
             }
@@ -436,10 +436,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:27:7: ( 'abstract' )
-            // InternalDefinitionLanguage.g:27:9: 'abstract'
+            // InternalDefinitionLanguage.g:27:7: ( 'type' )
+            // InternalDefinitionLanguage.g:27:9: 'type'
             {
-            match("abstract"); 
+            match("type"); 
 
 
             }
@@ -457,10 +457,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:28:7: ( 'type' )
-            // InternalDefinitionLanguage.g:28:9: 'type'
+            // InternalDefinitionLanguage.g:28:7: ( 'extends' )
+            // InternalDefinitionLanguage.g:28:9: 'extends'
             {
-            match("type"); 
+            match("extends"); 
 
 
             }
@@ -478,11 +478,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:29:7: ( 'extends' )
-            // InternalDefinitionLanguage.g:29:9: 'extends'
+            // InternalDefinitionLanguage.g:29:7: ( ':' )
+            // InternalDefinitionLanguage.g:29:9: ':'
             {
-            match("extends"); 
-
+            match(':'); 
 
             }
 
@@ -499,10 +498,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:30:7: ( ':' )
-            // InternalDefinitionLanguage.g:30:9: ':'
+            // InternalDefinitionLanguage.g:30:7: ( ':=' )
+            // InternalDefinitionLanguage.g:30:9: ':='
             {
-            match(':'); 
+            match(":="); 
+
 
             }
 
@@ -519,10 +519,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:31:7: ( ':=' )
-            // InternalDefinitionLanguage.g:31:9: ':='
+            // InternalDefinitionLanguage.g:31:7: ( 'literal' )
+            // InternalDefinitionLanguage.g:31:9: 'literal'
             {
-            match(":="); 
+            match("literal"); 
 
 
             }
@@ -540,10 +540,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:32:7: ( 'literal' )
-            // InternalDefinitionLanguage.g:32:9: 'literal'
+            // InternalDefinitionLanguage.g:32:7: ( 'instance' )
+            // InternalDefinitionLanguage.g:32:9: 'instance'
             {
-            match("literal"); 
+            match("instance"); 
 
 
             }
@@ -561,11 +561,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:33:7: ( 'instance' )
-            // InternalDefinitionLanguage.g:33:9: 'instance'
+            // InternalDefinitionLanguage.g:33:7: ( '|' )
+            // InternalDefinitionLanguage.g:33:9: '|'
             {
-            match("instance"); 
-
+            match('|'); 
 
             }
 
@@ -582,10 +581,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:34:7: ( '|' )
-            // InternalDefinitionLanguage.g:34:9: '|'
+            // InternalDefinitionLanguage.g:34:7: ( 'string' )
+            // InternalDefinitionLanguage.g:34:9: 'string'
             {
-            match('|'); 
+            match("string"); 
+
 
             }
 
@@ -602,10 +602,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:35:7: ( 'string' )
-            // InternalDefinitionLanguage.g:35:9: 'string'
+            // InternalDefinitionLanguage.g:35:7: ( 'expression' )
+            // InternalDefinitionLanguage.g:35:9: 'expression'
             {
-            match("string"); 
+            match("expression"); 
 
 
             }
@@ -623,10 +623,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:36:7: ( 'expression' )
-            // InternalDefinitionLanguage.g:36:9: 'expression'
+            // InternalDefinitionLanguage.g:36:7: ( 'int' )
+            // InternalDefinitionLanguage.g:36:9: 'int'
             {
-            match("expression"); 
+            match("int"); 
 
 
             }
@@ -644,10 +644,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:37:7: ( 'int' )
-            // InternalDefinitionLanguage.g:37:9: 'int'
+            // InternalDefinitionLanguage.g:37:7: ( 'float' )
+            // InternalDefinitionLanguage.g:37:9: 'float'
             {
-            match("int"); 
+            match("float"); 
 
 
             }
@@ -665,10 +665,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:38:7: ( 'float' )
-            // InternalDefinitionLanguage.g:38:9: 'float'
+            // InternalDefinitionLanguage.g:38:7: ( 'boolean' )
+            // InternalDefinitionLanguage.g:38:9: 'boolean'
             {
-            match("float"); 
+            match("boolean"); 
 
 
             }
@@ -686,10 +686,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:39:7: ( 'boolean' )
-            // InternalDefinitionLanguage.g:39:9: 'boolean'
+            // InternalDefinitionLanguage.g:39:7: ( 'void' )
+            // InternalDefinitionLanguage.g:39:9: 'void'
             {
-            match("boolean"); 
+            match("void"); 
 
 
             }
@@ -707,10 +707,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:40:7: ( 'void' )
-            // InternalDefinitionLanguage.g:40:9: 'void'
+            // InternalDefinitionLanguage.g:40:7: ( 'data' )
+            // InternalDefinitionLanguage.g:40:9: 'data'
             {
-            match("void"); 
+            match("data"); 
 
 
             }
@@ -728,10 +728,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:41:7: ( 'data' )
-            // InternalDefinitionLanguage.g:41:9: 'data'
+            // InternalDefinitionLanguage.g:41:7: ( 'array' )
+            // InternalDefinitionLanguage.g:41:9: 'array'
             {
-            match("data"); 
+            match("array"); 
 
 
             }
@@ -749,10 +749,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:42:7: ( 'array' )
-            // InternalDefinitionLanguage.g:42:9: 'array'
+            // InternalDefinitionLanguage.g:42:7: ( 'def' )
+            // InternalDefinitionLanguage.g:42:9: 'def'
             {
-            match("array"); 
+            match("def"); 
 
 
             }
@@ -770,10 +770,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:43:7: ( 'def' )
-            // InternalDefinitionLanguage.g:43:9: 'def'
+            // InternalDefinitionLanguage.g:43:7: ( 'const' )
+            // InternalDefinitionLanguage.g:43:9: 'const'
             {
-            match("def"); 
+            match("const"); 
 
 
             }
@@ -1433,8 +1433,8 @@ public class InternalDefinitionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:2608:21: ( '0' .. '9' )
-            // InternalDefinitionLanguage.g:2608:23: '0' .. '9'
+            // InternalDefinitionLanguage.g:2740:21: ( '0' .. '9' )
+            // InternalDefinitionLanguage.g:2740:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1449,11 +1449,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalDefinitionLanguage.g:2610:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalDefinitionLanguage.g:2610:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:2742:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalDefinitionLanguage.g:2742:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalDefinitionLanguage.g:2610:30: ( '+' | '-' )?
+            // InternalDefinitionLanguage.g:2742:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1479,7 +1479,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDefinitionLanguage.g:2610:41: ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:2742:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1493,7 +1493,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2610:41: RULE_DIGIT
+            	    // InternalDefinitionLanguage.g:2742:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1523,10 +1523,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2612:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalDefinitionLanguage.g:2612:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:2744:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalDefinitionLanguage.g:2744:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalDefinitionLanguage.g:2612:12: ( '-' )?
+            // InternalDefinitionLanguage.g:2744:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1535,7 +1535,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2612:12: '-'
+                    // InternalDefinitionLanguage.g:2744:12: '-'
                     {
                     match('-'); 
 
@@ -1544,7 +1544,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
             }
 
-            // InternalDefinitionLanguage.g:2612:17: ( RULE_DIGIT )+
+            // InternalDefinitionLanguage.g:2744:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1558,7 +1558,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2612:17: RULE_DIGIT
+            	    // InternalDefinitionLanguage.g:2744:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1590,15 +1590,15 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2614:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalDefinitionLanguage.g:2614:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDefinitionLanguage.g:2746:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalDefinitionLanguage.g:2746:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalDefinitionLanguage.g:2614:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalDefinitionLanguage.g:2746:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2614:16: RULE_INT RULE_EXPONENT
+                    // InternalDefinitionLanguage.g:2746:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1606,11 +1606,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2614:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalDefinitionLanguage.g:2746:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalDefinitionLanguage.g:2614:52: ( RULE_DIGIT )*
+                    // InternalDefinitionLanguage.g:2746:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1623,7 +1623,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalDefinitionLanguage.g:2614:52: RULE_DIGIT
+                    	    // InternalDefinitionLanguage.g:2746:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1635,7 +1635,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalDefinitionLanguage.g:2614:64: ( RULE_EXPONENT )?
+                    // InternalDefinitionLanguage.g:2746:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1644,7 +1644,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalDefinitionLanguage.g:2614:64: RULE_EXPONENT
+                            // InternalDefinitionLanguage.g:2746:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1675,11 +1675,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2616:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalDefinitionLanguage.g:2616:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalDefinitionLanguage.g:2748:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalDefinitionLanguage.g:2748:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalDefinitionLanguage.g:2616:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalDefinitionLanguage.g:2748:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1695,7 +1695,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2616:20: '\\\\' .
+            	    // InternalDefinitionLanguage.g:2748:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1703,7 +1703,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDefinitionLanguage.g:2616:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalDefinitionLanguage.g:2748:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1740,11 +1740,11 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2618:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalDefinitionLanguage.g:2618:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalDefinitionLanguage.g:2750:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalDefinitionLanguage.g:2750:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalDefinitionLanguage.g:2618:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalDefinitionLanguage.g:2750:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1760,7 +1760,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2618:24: '\\\\' .
+            	    // InternalDefinitionLanguage.g:2750:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1768,7 +1768,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalDefinitionLanguage.g:2618:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalDefinitionLanguage.g:2750:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1805,10 +1805,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2620:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalDefinitionLanguage.g:2620:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDefinitionLanguage.g:2752:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalDefinitionLanguage.g:2752:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalDefinitionLanguage.g:2620:11: ( '^' )?
+            // InternalDefinitionLanguage.g:2752:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1817,7 +1817,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2620:11: '^'
+                    // InternalDefinitionLanguage.g:2752:11: '^'
                     {
                     match('^'); 
 
@@ -1835,7 +1835,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalDefinitionLanguage.g:2620:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalDefinitionLanguage.g:2752:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1884,12 +1884,12 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2622:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalDefinitionLanguage.g:2622:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalDefinitionLanguage.g:2754:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalDefinitionLanguage.g:2754:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalDefinitionLanguage.g:2622:24: ( options {greedy=false; } : . )*
+            // InternalDefinitionLanguage.g:2754:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1914,7 +1914,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2622:52: .
+            	    // InternalDefinitionLanguage.g:2754:52: .
             	    {
             	    matchAny(); 
 
@@ -1944,12 +1944,12 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2624:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalDefinitionLanguage.g:2624:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalDefinitionLanguage.g:2756:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalDefinitionLanguage.g:2756:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalDefinitionLanguage.g:2624:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalDefinitionLanguage.g:2756:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1962,7 +1962,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2624:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalDefinitionLanguage.g:2756: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();
@@ -1982,7 +1982,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalDefinitionLanguage.g:2624:40: ( ( '\\r' )? '\\n' )?
+            // InternalDefinitionLanguage.g:2756:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1991,9 +1991,9 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2624:41: ( '\\r' )? '\\n'
+                    // InternalDefinitionLanguage.g:2756:41: ( '\\r' )? '\\n'
                     {
-                    // InternalDefinitionLanguage.g:2624:41: ( '\\r' )?
+                    // InternalDefinitionLanguage.g:2756:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2002,7 +2002,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalDefinitionLanguage.g:2624:41: '\\r'
+                            // InternalDefinitionLanguage.g:2756:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2034,10 +2034,10 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2626:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalDefinitionLanguage.g:2626:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDefinitionLanguage.g:2758:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalDefinitionLanguage.g:2758:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalDefinitionLanguage.g:2626:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalDefinitionLanguage.g:2758:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2091,8 +2091,8 @@ public class InternalDefinitionLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalDefinitionLanguage.g:2628:16: ( . )
-            // InternalDefinitionLanguage.g:2628:18: .
+            // InternalDefinitionLanguage.g:2760:16: ( . )
+            // InternalDefinitionLanguage.g:2760:18: .
             {
             matchAny(); 
 
@@ -2687,23 +2687,23 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "2614:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "2746:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\71\2\uffff\1\70\1\uffff\3\70\1\103\1\104\3\uffff\2\70\1\116\1\121\1\70\1\124\1\70\1\uffff\2\70\1\133\1\uffff\1\136\1\uffff\1\141\1\uffff\1\144\1\uffff\1\150\1\uffff\1\152\1\153\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\163\1\uffff\1\165\1\166\1\167\1\170\1\171\2\66\3\uffff\1\70\4\uffff\2\70\1\uffff\1\u0082\2\70\6\uffff\6\70\1\uffff\2\70\1\uffff\1\70\2\uffff\1\70\1\uffff\2\70\1\u0093\1\70\10\uffff\1\171\32\uffff\3\70\1\u0098\1\uffff\1\u0099\1\u009a\16\70\1\uffff\1\u00a9\3\70\3\uffff\1\70\1\u00ae\1\u00af\1\u00b0\11\70\1\u00ba\1\uffff\3\70\1\u00be\3\uffff\1\u00bf\1\u00c0\1\70\1\u00c2\5\70\1\uffff\1\u00c8\1\u00c9\1\70\3\uffff\1\70\1\uffff\3\70\1\u00cf\1\70\2\uffff\2\70\1\u00d3\1\70\1\u00d5\1\uffff\1\u00d6\1\u00d7\1\u00d8\1\uffff\1\70\4\uffff\1\70\1\u00db\1\uffff";
+        "\1\uffff\1\71\2\uffff\1\70\1\uffff\3\70\1\103\1\104\3\uffff\1\70\1\114\1\117\1\70\1\122\1\70\1\uffff\3\70\1\132\1\134\1\uffff\1\137\1\uffff\1\142\1\uffff\1\145\1\uffff\1\151\1\uffff\1\153\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\163\1\uffff\1\165\1\166\1\167\1\170\1\171\2\66\3\uffff\1\70\4\uffff\2\70\1\uffff\1\u0082\2\70\6\uffff\4\70\1\uffff\2\70\1\uffff\1\70\2\uffff\1\70\1\uffff\3\70\1\u0092\1\70\1\uffff\1\70\10\uffff\1\171\31\uffff\3\70\1\u0098\1\uffff\1\u0099\1\u009a\15\70\1\uffff\1\u00a8\4\70\3\uffff\1\u00ad\1\u00ae\11\70\1\u00b8\1\u00b9\1\uffff\4\70\2\uffff\1\u00be\1\u00bf\1\70\1\u00c1\5\70\2\uffff\1\u00c7\1\u00c8\1\u00c9\1\70\2\uffff\1\70\1\uffff\3\70\1\u00cf\1\70\3\uffff\2\70\1\u00d3\1\70\1\u00d5\1\uffff\1\u00d6\1\u00d7\1\u00d8\1\uffff\1\70\4\uffff\1\70\1\u00db\1\uffff";
     static final String DFA17_eofS =
         "\u00dc\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\2\uffff\1\155\1\uffff\1\122\1\117\1\116\1\75\1\101\3\uffff\1\141\1\162\2\60\1\170\1\75\1\151\1\uffff\1\164\1\157\1\60\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\4\60\1\56\2\0\3\uffff\1\144\4\uffff\1\160\1\163\1\uffff\1\60\1\122\1\104\6\uffff\1\154\1\151\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\160\2\uffff\1\164\1\uffff\1\162\1\157\1\60\1\146\10\uffff\1\56\32\uffff\1\165\1\157\1\164\1\60\1\uffff\2\60\1\165\1\144\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\151\1\154\1\141\1\uffff\1\60\1\154\1\162\1\141\3\uffff\1\145\3\60\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\156\1\145\1\60\1\uffff\1\145\1\164\1\156\1\60\3\uffff\2\60\1\141\1\60\1\144\1\163\1\141\1\147\1\141\1\uffff\2\60\1\143\3\uffff\1\143\1\uffff\2\163\1\154\1\60\1\156\2\uffff\1\145\1\164\1\60\1\151\1\60\1\uffff\3\60\1\uffff\1\157\4\uffff\1\156\1\60\1\uffff";
+        "\1\0\1\60\2\uffff\1\155\1\uffff\1\122\1\117\1\116\1\75\1\101\3\uffff\1\162\2\60\1\170\1\75\1\151\1\uffff\1\164\2\157\2\60\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\11\60\1\uffff\4\60\1\56\2\0\3\uffff\1\144\4\uffff\1\160\1\163\1\uffff\1\60\1\122\1\104\6\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\160\2\uffff\1\164\1\uffff\1\162\1\157\1\151\1\60\1\146\1\uffff\1\156\10\uffff\1\56\31\uffff\1\165\1\157\1\164\1\60\1\uffff\2\60\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\151\1\154\1\144\1\141\1\uffff\1\60\1\163\1\154\1\162\1\141\3\uffff\2\60\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\156\1\145\2\60\1\uffff\1\164\1\145\1\164\1\156\2\uffff\2\60\1\141\1\60\1\144\1\163\1\141\1\147\1\141\2\uffff\3\60\1\143\2\uffff\1\143\1\uffff\2\163\1\154\1\60\1\156\3\uffff\1\145\1\164\1\60\1\151\1\60\1\uffff\3\60\1\uffff\1\157\4\uffff\1\156\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\2\uffff\1\156\1\uffff\1\122\1\117\1\116\1\75\1\172\3\uffff\1\157\1\171\2\172\1\170\1\75\1\151\1\uffff\1\164\1\157\1\172\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\144\4\uffff\1\160\1\164\1\uffff\1\172\1\122\1\104\6\uffff\1\154\1\151\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\164\2\uffff\1\164\1\uffff\1\162\1\157\1\172\1\146\10\uffff\1\145\32\uffff\1\165\1\157\1\164\1\172\1\uffff\2\172\1\165\1\144\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\151\1\154\1\141\1\uffff\1\172\1\154\1\162\1\141\3\uffff\1\145\3\172\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\156\1\145\1\172\1\uffff\1\145\1\164\1\156\1\172\3\uffff\2\172\1\141\1\172\1\144\1\163\1\141\1\147\1\141\1\uffff\2\172\1\143\3\uffff\1\143\1\uffff\2\163\1\154\1\172\1\156\2\uffff\1\145\1\164\1\172\1\151\1\172\1\uffff\3\172\1\uffff\1\157\4\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\1\172\2\uffff\1\156\1\uffff\1\122\1\117\1\116\1\75\1\172\3\uffff\1\171\2\172\1\170\1\75\1\151\1\uffff\1\164\2\157\2\172\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\11\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\144\4\uffff\1\160\1\164\1\uffff\1\172\1\122\1\104\6\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\164\2\uffff\1\164\1\uffff\1\162\1\157\1\151\1\172\1\146\1\uffff\1\156\10\uffff\1\145\31\uffff\1\165\1\157\1\164\1\172\1\uffff\2\172\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\151\1\154\1\144\1\141\1\uffff\1\172\1\163\1\154\1\162\1\141\3\uffff\2\172\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\156\1\145\2\172\1\uffff\1\164\1\145\1\164\1\156\2\uffff\2\172\1\141\1\172\1\144\1\163\1\141\1\147\1\141\2\uffff\3\172\1\143\2\uffff\1\143\1\uffff\2\163\1\154\1\172\1\156\3\uffff\1\145\1\164\1\172\1\151\1\172\1\uffff\3\172\1\uffff\1\157\4\uffff\1\156\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\2\uffff\1\2\1\3\1\uffff\1\5\5\uffff\1\13\1\14\1\15\7\uffff\1\30\3\uffff\1\42\1\uffff\1\45\1\uffff\1\51\1\uffff\1\53\1\uffff\1\55\12\uffff\1\73\7\uffff\1\106\1\111\1\112\1\uffff\1\106\1\72\1\2\1\3\2\uffff\1\5\3\uffff\1\46\1\11\1\12\1\13\1\14\1\15\6\uffff\1\76\2\uffff\1\77\1\uffff\1\25\1\24\1\uffff\1\30\4\uffff\1\70\1\42\1\43\1\44\1\45\1\50\1\47\1\51\1\uffff\1\52\1\53\1\107\1\110\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\71\1\73\1\74\1\75\1\100\1\101\1\102\1\103\1\104\1\105\1\111\4\uffff\1\6\20\uffff\1\67\4\uffff\1\33\1\7\1\10\16\uffff\1\41\4\uffff\1\36\1\17\1\22\11\uffff\1\37\3\uffff\1\16\1\20\1\34\1\uffff\1\40\5\uffff\1\1\1\4\5\uffff\1\31\3\uffff\1\23\1\uffff\1\26\1\35\1\27\1\21\2\uffff\1\32";
+        "\2\uffff\1\2\1\3\1\uffff\1\5\5\uffff\1\13\1\14\1\15\6\uffff\1\27\5\uffff\1\42\1\uffff\1\45\1\uffff\1\51\1\uffff\1\53\1\uffff\1\55\11\uffff\1\73\7\uffff\1\106\1\111\1\112\1\uffff\1\106\1\72\1\2\1\3\2\uffff\1\5\3\uffff\1\46\1\11\1\12\1\13\1\14\1\15\4\uffff\1\76\2\uffff\1\77\1\uffff\1\24\1\23\1\uffff\1\27\5\uffff\1\70\1\uffff\1\71\1\42\1\43\1\44\1\45\1\50\1\47\1\51\1\uffff\1\52\1\53\1\107\1\110\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\73\1\74\1\75\1\100\1\101\1\102\1\103\1\104\1\105\1\111\4\uffff\1\6\17\uffff\1\67\5\uffff\1\32\1\7\1\10\15\uffff\1\40\4\uffff\1\16\1\21\11\uffff\1\35\1\36\4\uffff\1\17\1\33\1\uffff\1\37\5\uffff\1\41\1\1\1\4\5\uffff\1\30\3\uffff\1\22\1\uffff\1\25\1\34\1\26\1\20\2\uffff\1\31";
     static final String DFA17_specialS =
         "\1\0\61\uffff\1\1\1\2\u00a8\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\66\2\65\2\66\1\65\22\66\1\65\1\11\1\62\2\66\1\41\1\66\1\63\1\13\1\14\1\37\1\35\1\15\1\36\1\31\1\40\12\61\1\23\1\5\1\34\1\33\1\32\2\66\1\10\3\64\1\44\1\64\1\47\5\64\1\50\1\64\1\6\1\45\3\64\1\46\3\64\1\7\1\42\1\43\3\66\1\12\1\64\1\66\1\21\1\27\1\53\1\30\1\22\1\20\1\64\1\52\1\4\1\64\1\51\1\24\1\1\1\55\1\64\1\56\2\64\1\26\1\17\1\64\1\16\2\64\1\60\1\57\1\2\1\25\1\3\67\66\1\54\uff4a\66",
+            "\11\66\2\65\2\66\1\65\22\66\1\65\1\11\1\62\2\66\1\42\1\66\1\63\1\13\1\14\1\40\1\36\1\15\1\37\1\32\1\41\12\61\1\22\1\5\1\35\1\34\1\33\2\66\1\10\3\64\1\45\1\64\1\50\5\64\1\51\1\64\1\6\1\46\3\64\1\47\3\64\1\7\1\43\1\44\3\66\1\12\1\64\1\66\1\20\1\26\1\31\1\30\1\21\1\17\1\64\1\53\1\4\1\64\1\52\1\23\1\1\1\55\1\64\1\56\2\64\1\25\1\16\1\64\1\27\2\64\1\60\1\57\1\2\1\24\1\3\67\66\1\54\uff4a\66",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\16\70\1\67\13\70",
             "",
             "",
@@ -2717,25 +2717,26 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\110\15\uffff\1\111",
-            "\1\112\6\uffff\1\113",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\114\12\70\1\115\16\70",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\70\1\117\17\70\1\120\10\70",
-            "\1\122",
+            "\1\110\6\uffff\1\111",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\112\12\70\1\113\16\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\70\1\115\17\70\1\116\10\70",
+            "\1\120",
+            "\1\121",
             "\1\123",
-            "\1\125",
             "",
+            "\1\125",
+            "\1\126",
             "\1\127",
-            "\1\130",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\131\3\70\1\132\25\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\1\130\3\70\1\131\25\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\16\70\1\133\13\70",
             "",
-            "\1\135",
+            "\1\136",
             "",
-            "\1\140",
+            "\1\141",
             "",
-            "\12\143",
+            "\12\144",
             "",
-            "\1\146\4\uffff\1\147",
+            "\1\147\4\uffff\1\150",
             "",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
@@ -2746,13 +2747,12 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
-            "\1\172\1\uffff\12\143\53\uffff\1\172",
+            "\1\172\1\uffff\12\144\53\uffff\1\172",
             "\0\173",
             "\0\174",
             "",
@@ -2779,22 +2779,22 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u0086",
             "\1\u0087",
             "\1\u0088",
+            "",
             "\1\u0089",
             "\1\u008a",
             "",
-            "\1\u008b",
-            "\1\u008c",
+            "\1\u008c\3\uffff\1\u008b",
             "",
-            "\1\u008e\3\uffff\1\u008d",
             "",
+            "\1\u008d",
             "",
+            "\1\u008e",
             "\1\u008f",
-            "",
             "\1\u0090",
-            "\1\u0091",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\23\70\1\u0092\6\70",
-            "\1\u0094",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\23\70\1\u0091\6\70",
+            "\1\u0093",
             "",
+            "\1\u0094",
             "",
             "",
             "",
@@ -2802,8 +2802,8 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\172\1\uffff\12\143\53\uffff\1\172",
             "",
+            "\1\172\1\uffff\12\144\53\uffff\1\172",
             "",
             "",
             "",
@@ -2849,19 +2849,19 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u00a5",
             "\1\u00a6",
             "\1\u00a7",
-            "\1\u00a8",
             "",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00a9",
             "\1\u00aa",
             "\1\u00ab",
             "\1\u00ac",
             "",
             "",
             "",
-            "\1\u00ad",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00af",
+            "\1\u00b0",
             "\1\u00b1",
             "\1\u00b2",
             "\1\u00b3",
@@ -2869,33 +2869,32 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
-            "\1\u00b8",
-            "\1\u00b9",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "",
+            "\1\u00ba",
             "\1\u00bb",
             "\1\u00bc",
             "\1\u00bd",
-            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
-            "",
             "",
             "",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
-            "\1\u00c1",
+            "\1\u00c0",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\1\u00c2",
             "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
-            "\1\u00c7",
+            "",
             "",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
+            "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
             "\1\u00ca",
             "",
             "",
-            "",
             "\1\u00cb",
             "",
             "\1\u00cc",
@@ -2905,6 +2904,7 @@ public class InternalDefinitionLanguageLexer extends Lexer {
             "\1\u00d0",
             "",
             "",
+            "",
             "\1\u00d1",
             "\1\u00d2",
             "\12\70\7\uffff\32\70\4\uffff\1\70\1\uffff\32\70",
@@ -2991,65 +2991,65 @@ public class InternalDefinitionLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 13;}
 
-                        else if ( (LA17_0=='v') ) {s = 14;}
+                        else if ( (LA17_0=='t') ) {s = 14;}
 
-                        else if ( (LA17_0=='t') ) {s = 15;}
+                        else if ( (LA17_0=='f') ) {s = 15;}
 
-                        else if ( (LA17_0=='f') ) {s = 16;}
+                        else if ( (LA17_0=='a') ) {s = 16;}
 
-                        else if ( (LA17_0=='a') ) {s = 17;}
+                        else if ( (LA17_0=='e') ) {s = 17;}
 
-                        else if ( (LA17_0=='e') ) {s = 18;}
+                        else if ( (LA17_0==':') ) {s = 18;}
 
-                        else if ( (LA17_0==':') ) {s = 19;}
+                        else if ( (LA17_0=='l') ) {s = 19;}
 
-                        else if ( (LA17_0=='l') ) {s = 20;}
+                        else if ( (LA17_0=='|') ) {s = 20;}
 
-                        else if ( (LA17_0=='|') ) {s = 21;}
+                        else if ( (LA17_0=='s') ) {s = 21;}
 
-                        else if ( (LA17_0=='s') ) {s = 22;}
+                        else if ( (LA17_0=='b') ) {s = 22;}
 
-                        else if ( (LA17_0=='b') ) {s = 23;}
+                        else if ( (LA17_0=='v') ) {s = 23;}
 
                         else if ( (LA17_0=='d') ) {s = 24;}
 
-                        else if ( (LA17_0=='.') ) {s = 25;}
+                        else if ( (LA17_0=='c') ) {s = 25;}
 
-                        else if ( (LA17_0=='>') ) {s = 26;}
+                        else if ( (LA17_0=='.') ) {s = 26;}
 
-                        else if ( (LA17_0=='=') ) {s = 27;}
+                        else if ( (LA17_0=='>') ) {s = 27;}
 
-                        else if ( (LA17_0=='<') ) {s = 28;}
+                        else if ( (LA17_0=='=') ) {s = 28;}
 
-                        else if ( (LA17_0=='+') ) {s = 29;}
+                        else if ( (LA17_0=='<') ) {s = 29;}
 
-                        else if ( (LA17_0=='-') ) {s = 30;}
+                        else if ( (LA17_0=='+') ) {s = 30;}
 
-                        else if ( (LA17_0=='*') ) {s = 31;}
+                        else if ( (LA17_0=='-') ) {s = 31;}
 
-                        else if ( (LA17_0=='/') ) {s = 32;}
+                        else if ( (LA17_0=='*') ) {s = 32;}
 
-                        else if ( (LA17_0=='%') ) {s = 33;}
+                        else if ( (LA17_0=='/') ) {s = 33;}
 
-                        else if ( (LA17_0=='Y') ) {s = 34;}
+                        else if ( (LA17_0=='%') ) {s = 34;}
 
-                        else if ( (LA17_0=='Z') ) {s = 35;}
+                        else if ( (LA17_0=='Y') ) {s = 35;}
 
-                        else if ( (LA17_0=='E') ) {s = 36;}
+                        else if ( (LA17_0=='Z') ) {s = 36;}
 
-                        else if ( (LA17_0=='P') ) {s = 37;}
+                        else if ( (LA17_0=='E') ) {s = 37;}
 
-                        else if ( (LA17_0=='T') ) {s = 38;}
+                        else if ( (LA17_0=='P') ) {s = 38;}
 
-                        else if ( (LA17_0=='G') ) {s = 39;}
+                        else if ( (LA17_0=='T') ) {s = 39;}
 
-                        else if ( (LA17_0=='M') ) {s = 40;}
+                        else if ( (LA17_0=='G') ) {s = 40;}
 
-                        else if ( (LA17_0=='k') ) {s = 41;}
+                        else if ( (LA17_0=='M') ) {s = 41;}
 
-                        else if ( (LA17_0=='h') ) {s = 42;}
+                        else if ( (LA17_0=='k') ) {s = 42;}
 
-                        else if ( (LA17_0=='c') ) {s = 43;}
+                        else if ( (LA17_0=='h') ) {s = 43;}
 
                         else if ( (LA17_0=='\u00B5') ) {s = 44;}
 
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageParser.java b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageParser.java
index 4024e908..76ed2caf 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/parser/antlr/internal/InternalDefinitionLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'{'", "'}'", "'import'", "';'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'value'", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'def'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'module'", "'{'", "'}'", "'import'", "';'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "','", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "':='", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'data'", "'array'", "'def'", "'const'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -178,13 +178,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleDefinitionModelRule"
-    // InternalDefinitionLanguage.g:73:1: ruleDefinitionModelRule returns [EObject current=null] : ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )* otherlv_6= '}' ) ;
+    // InternalDefinitionLanguage.g:73:1: ruleDefinitionModelRule returns [EObject current=null] : ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )* otherlv_7= '}' ) ;
     public final EObject ruleDefinitionModelRule() throws RecognitionException {
         EObject current = null;
 
         Token otherlv_1=null;
         Token otherlv_3=null;
-        Token otherlv_6=null;
+        Token otherlv_7=null;
         EObject lv_imports_0_0 = null;
 
         AntlrDatatypeRuleToken lv_name_2_0 = null;
@@ -193,16 +193,18 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
         EObject lv_functions_5_0 = null;
 
+        EObject lv_constants_6_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:79:2: ( ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )* otherlv_6= '}' ) )
-            // InternalDefinitionLanguage.g:80:2: ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )* otherlv_6= '}' )
+            // InternalDefinitionLanguage.g:79:2: ( ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )* otherlv_7= '}' ) )
+            // InternalDefinitionLanguage.g:80:2: ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )* otherlv_7= '}' )
             {
-            // InternalDefinitionLanguage.g:80:2: ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )* otherlv_6= '}' )
-            // InternalDefinitionLanguage.g:81:3: ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )* otherlv_6= '}'
+            // InternalDefinitionLanguage.g:80:2: ( ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )* otherlv_7= '}' )
+            // InternalDefinitionLanguage.g:81:3: ( (lv_imports_0_0= ruleImportRule ) )* otherlv_1= 'module' ( (lv_name_2_0= ruleQualifiedName ) ) otherlv_3= '{' ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )* otherlv_7= '}'
             {
             // InternalDefinitionLanguage.g:81:3: ( (lv_imports_0_0= ruleImportRule ) )*
             loop1:
@@ -292,19 +294,29 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             			newLeafNode(otherlv_3, grammarAccess.getDefinitionModelRuleAccess().getLeftCurlyBracketKeyword_3());
             		
-            // InternalDefinitionLanguage.g:127:3: ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) )*
+            // InternalDefinitionLanguage.g:127:3: ( ( (lv_types_4_0= ruleTypeDefinitionRule ) ) | ( (lv_functions_5_0= ruleFunctionDefinitionRule ) ) | ( (lv_constants_6_0= ruleConstantDefinitionRule ) ) )*
             loop2:
             do {
-                int alt2=3;
-                int LA2_0 = input.LA(1);
-
-                if ( ((LA2_0>=31 && LA2_0<=32)) ) {
+                int alt2=4;
+                switch ( input.LA(1) ) {
+                case 30:
+                case 31:
+                    {
                     alt2=1;
-                }
-                else if ( (LA2_0==47) ) {
+                    }
+                    break;
+                case 46:
+                    {
                     alt2=2;
-                }
+                    }
+                    break;
+                case 47:
+                    {
+                    alt2=3;
+                    }
+                    break;
 
+                }
 
                 switch (alt2) {
             	case 1 :
@@ -379,6 +391,43 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             	    }
 
 
+            	    }
+            	    break;
+            	case 3 :
+            	    // InternalDefinitionLanguage.g:168:4: ( (lv_constants_6_0= ruleConstantDefinitionRule ) )
+            	    {
+            	    // InternalDefinitionLanguage.g:168:4: ( (lv_constants_6_0= ruleConstantDefinitionRule ) )
+            	    // InternalDefinitionLanguage.g:169:5: (lv_constants_6_0= ruleConstantDefinitionRule )
+            	    {
+            	    // InternalDefinitionLanguage.g:169:5: (lv_constants_6_0= ruleConstantDefinitionRule )
+            	    // InternalDefinitionLanguage.g:170:6: lv_constants_6_0= ruleConstantDefinitionRule
+            	    {
+
+            	    						newCompositeNode(grammarAccess.getDefinitionModelRuleAccess().getConstantsConstantDefinitionRuleParserRuleCall_4_2_0());
+            	    					
+            	    pushFollow(FOLLOW_6);
+            	    lv_constants_6_0=ruleConstantDefinitionRule();
+
+            	    state._fsp--;
+
+
+            	    						if (current==null) {
+            	    							current = createModelElementForParent(grammarAccess.getDefinitionModelRuleRule());
+            	    						}
+            	    						add(
+            	    							current,
+            	    							"constants",
+            	    							lv_constants_6_0,
+            	    							"de.evoal.languages.model.base.dsl.BaseLanguage.ConstantDefinitionRule");
+            	    						afterParserOrEnumRuleCall();
+            	    					
+
+            	    }
+
+
+            	    }
+
+
             	    }
             	    break;
 
@@ -387,9 +436,9 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                 }
             } while (true);
 
-            otherlv_6=(Token)match(input,17,FOLLOW_2); 
+            otherlv_7=(Token)match(input,17,FOLLOW_2); 
 
-            			newLeafNode(otherlv_6, grammarAccess.getDefinitionModelRuleAccess().getRightCurlyBracketKeyword_5());
+            			newLeafNode(otherlv_7, grammarAccess.getDefinitionModelRuleAccess().getRightCurlyBracketKeyword_5());
             		
 
             }
@@ -414,7 +463,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleImportRule"
-    // InternalDefinitionLanguage.g:176:1: entryRuleImportRule returns [EObject current=null] : iv_ruleImportRule= ruleImportRule EOF ;
+    // InternalDefinitionLanguage.g:196:1: entryRuleImportRule returns [EObject current=null] : iv_ruleImportRule= ruleImportRule EOF ;
     public final EObject entryRuleImportRule() throws RecognitionException {
         EObject current = null;
 
@@ -422,8 +471,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:176:51: (iv_ruleImportRule= ruleImportRule EOF )
-            // InternalDefinitionLanguage.g:177:2: iv_ruleImportRule= ruleImportRule EOF
+            // InternalDefinitionLanguage.g:196:51: (iv_ruleImportRule= ruleImportRule EOF )
+            // InternalDefinitionLanguage.g:197:2: iv_ruleImportRule= ruleImportRule EOF
             {
              newCompositeNode(grammarAccess.getImportRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -450,7 +499,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleImportRule"
-    // InternalDefinitionLanguage.g:183:1: ruleImportRule returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) ;
+    // InternalDefinitionLanguage.g:203:1: ruleImportRule returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) ;
     public final EObject ruleImportRule() throws RecognitionException {
         EObject current = null;
 
@@ -463,21 +512,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:189:2: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) )
-            // InternalDefinitionLanguage.g:190:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
+            // InternalDefinitionLanguage.g:209:2: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) )
+            // InternalDefinitionLanguage.g:210:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
             {
-            // InternalDefinitionLanguage.g:190:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
-            // InternalDefinitionLanguage.g:191:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';'
+            // InternalDefinitionLanguage.g:210:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
+            // InternalDefinitionLanguage.g:211:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';'
             {
             otherlv_0=(Token)match(input,18,FOLLOW_4); 
 
             			newLeafNode(otherlv_0, grammarAccess.getImportRuleAccess().getImportKeyword_0());
             		
-            // InternalDefinitionLanguage.g:195:3: ( (lv_importedNamespace_1_0= ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:196:4: (lv_importedNamespace_1_0= ruleQualifiedName )
+            // InternalDefinitionLanguage.g:215:3: ( (lv_importedNamespace_1_0= ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:216:4: (lv_importedNamespace_1_0= ruleQualifiedName )
             {
-            // InternalDefinitionLanguage.g:196:4: (lv_importedNamespace_1_0= ruleQualifiedName )
-            // InternalDefinitionLanguage.g:197:5: lv_importedNamespace_1_0= ruleQualifiedName
+            // InternalDefinitionLanguage.g:216:4: (lv_importedNamespace_1_0= ruleQualifiedName )
+            // InternalDefinitionLanguage.g:217:5: lv_importedNamespace_1_0= ruleQualifiedName
             {
 
             					newCompositeNode(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0());
@@ -531,7 +580,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalDefinitionLanguage.g:222:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:242:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -539,8 +588,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:222:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalDefinitionLanguage.g:223:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalDefinitionLanguage.g:242:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalDefinitionLanguage.g:243:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -567,7 +616,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalDefinitionLanguage.g:229:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalDefinitionLanguage.g:249:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -578,8 +627,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:235:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalDefinitionLanguage.g:236:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalDefinitionLanguage.g:255:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalDefinitionLanguage.g:256:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
 
             		newCompositeNode(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall());
@@ -613,7 +662,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalDefinitionLanguage.g:247:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:267:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -621,8 +670,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:247:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalDefinitionLanguage.g:248:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalDefinitionLanguage.g:267:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalDefinitionLanguage.g:268:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -649,7 +698,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalDefinitionLanguage.g:254:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalDefinitionLanguage.g:274:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -663,17 +712,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:260:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalDefinitionLanguage.g:261:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:280:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalDefinitionLanguage.g:281:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalDefinitionLanguage.g:261:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalDefinitionLanguage.g:262:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:281:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:282:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalDefinitionLanguage.g:262:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalDefinitionLanguage.g:263:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:282:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalDefinitionLanguage.g:283:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalDefinitionLanguage.g:263:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalDefinitionLanguage.g:264:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalDefinitionLanguage.g:283:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalDefinitionLanguage.g:284:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0());
@@ -700,7 +749,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:281:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:301:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             loop3:
             do {
                 int alt3=2;
@@ -713,17 +762,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt3) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:282:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:302:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,20,FOLLOW_9); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	    			
-            	    // InternalDefinitionLanguage.g:286:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalDefinitionLanguage.g:287:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalDefinitionLanguage.g:306:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:307:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:287:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalDefinitionLanguage.g:288:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalDefinitionLanguage.g:307:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalDefinitionLanguage.g:308:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0());
@@ -782,7 +831,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalDefinitionLanguage.g:310:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:330:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -790,8 +839,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:310:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalDefinitionLanguage.g:311:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalDefinitionLanguage.g:330:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalDefinitionLanguage.g:331:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -818,7 +867,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalDefinitionLanguage.g:317:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalDefinitionLanguage.g:337:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -832,17 +881,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:323:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalDefinitionLanguage.g:324:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:343:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalDefinitionLanguage.g:344:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalDefinitionLanguage.g:324:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalDefinitionLanguage.g:325:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:344:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:345:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalDefinitionLanguage.g:325:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalDefinitionLanguage.g:326:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:345:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalDefinitionLanguage.g:346:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalDefinitionLanguage.g:326:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalDefinitionLanguage.g:327:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalDefinitionLanguage.g:346:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalDefinitionLanguage.g:347:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0());
@@ -869,7 +918,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:344:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:364:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             loop4:
             do {
                 int alt4=2;
@@ -882,17 +931,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:345:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:365:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,21,FOLLOW_9); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	    			
-            	    // InternalDefinitionLanguage.g:349:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalDefinitionLanguage.g:350:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalDefinitionLanguage.g:369:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:370:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:350:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalDefinitionLanguage.g:351:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalDefinitionLanguage.g:370:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalDefinitionLanguage.g:371:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0());
@@ -951,7 +1000,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalDefinitionLanguage.g:373:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:393:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -959,8 +1008,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:373:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalDefinitionLanguage.g:374:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalDefinitionLanguage.g:393:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalDefinitionLanguage.g:394:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -987,7 +1036,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalDefinitionLanguage.g:380:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalDefinitionLanguage.g:400:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1001,17 +1050,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:386:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalDefinitionLanguage.g:387:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:406:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalDefinitionLanguage.g:407:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalDefinitionLanguage.g:387:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalDefinitionLanguage.g:388:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:407:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:408:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalDefinitionLanguage.g:388:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalDefinitionLanguage.g:389:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:408:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalDefinitionLanguage.g:409:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalDefinitionLanguage.g:389:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalDefinitionLanguage.g:390:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalDefinitionLanguage.g:409:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalDefinitionLanguage.g:410:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0());
@@ -1038,7 +1087,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:407:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:427:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             loop5:
             do {
                 int alt5=2;
@@ -1051,17 +1100,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt5) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:408:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:428:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
             	    otherlv_1=(Token)match(input,22,FOLLOW_9); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	    			
-            	    // InternalDefinitionLanguage.g:412:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalDefinitionLanguage.g:413:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalDefinitionLanguage.g:432:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:433:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:413:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalDefinitionLanguage.g:414:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalDefinitionLanguage.g:433:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalDefinitionLanguage.g:434:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0());
@@ -1120,7 +1169,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalDefinitionLanguage.g:436:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:456:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1128,8 +1177,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:436:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalDefinitionLanguage.g:437:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalDefinitionLanguage.g:456:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalDefinitionLanguage.g:457:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1156,7 +1205,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalDefinitionLanguage.g:443:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalDefinitionLanguage.g:463:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1168,13 +1217,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:449:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalDefinitionLanguage.g:450:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalDefinitionLanguage.g:469:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalDefinitionLanguage.g:470:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalDefinitionLanguage.g:450:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalDefinitionLanguage.g:451:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalDefinitionLanguage.g:470:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalDefinitionLanguage.g:471:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalDefinitionLanguage.g:451:3: ( (lv_negated_0_0= '!' ) )?
+            // InternalDefinitionLanguage.g:471:3: ( (lv_negated_0_0= '!' ) )?
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -1183,10 +1232,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt6) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:452:4: (lv_negated_0_0= '!' )
+                    // InternalDefinitionLanguage.g:472:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalDefinitionLanguage.g:452:4: (lv_negated_0_0= '!' )
-                    // InternalDefinitionLanguage.g:453:5: lv_negated_0_0= '!'
+                    // InternalDefinitionLanguage.g:472:4: (lv_negated_0_0= '!' )
+                    // InternalDefinitionLanguage.g:473:5: lv_negated_0_0= '!'
                     {
                     lv_negated_0_0=(Token)match(input,23,FOLLOW_9); 
 
@@ -1207,11 +1256,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:465:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalDefinitionLanguage.g:466:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:485:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalDefinitionLanguage.g:486:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalDefinitionLanguage.g:466:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalDefinitionLanguage.g:467:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalDefinitionLanguage.g:486:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalDefinitionLanguage.g:487:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0());
@@ -1261,7 +1310,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalDefinitionLanguage.g:488:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:508:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1269,8 +1318,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:488:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalDefinitionLanguage.g:489:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalDefinitionLanguage.g:508:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalDefinitionLanguage.g:509:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1297,7 +1346,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalDefinitionLanguage.g:495:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalDefinitionLanguage.g:515:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1310,17 +1359,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:501:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalDefinitionLanguage.g:502:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalDefinitionLanguage.g:521:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalDefinitionLanguage.g:522:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalDefinitionLanguage.g:502:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalDefinitionLanguage.g:503:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalDefinitionLanguage.g:522:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalDefinitionLanguage.g:523:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalDefinitionLanguage.g:503:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:504:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:523:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:524:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:504:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:505:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:524:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:525:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0());
@@ -1347,7 +1396,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:522:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalDefinitionLanguage.g:542:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             loop7:
             do {
                 int alt7=2;
@@ -1360,10 +1409,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt7) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:523:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalDefinitionLanguage.g:543:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:523:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalDefinitionLanguage.g:524:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalDefinitionLanguage.g:543:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalDefinitionLanguage.g:544:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0());
@@ -1419,7 +1468,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalDefinitionLanguage.g:545:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:565:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1427,8 +1476,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:545:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalDefinitionLanguage.g:546:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalDefinitionLanguage.g:565:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalDefinitionLanguage.g:566:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1455,7 +1504,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalDefinitionLanguage.g:552:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalDefinitionLanguage.g:572:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1468,17 +1517,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:558:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalDefinitionLanguage.g:559:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalDefinitionLanguage.g:578:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalDefinitionLanguage.g:579:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalDefinitionLanguage.g:559:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalDefinitionLanguage.g:560:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:579:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalDefinitionLanguage.g:580:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalDefinitionLanguage.g:560:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalDefinitionLanguage.g:561:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalDefinitionLanguage.g:580:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalDefinitionLanguage.g:581:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalDefinitionLanguage.g:561:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalDefinitionLanguage.g:562:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalDefinitionLanguage.g:581:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalDefinitionLanguage.g:582:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0());
@@ -1505,11 +1554,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:579:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:580:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:599:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:600:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:580:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:581:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:600:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:601:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0());
@@ -1559,7 +1608,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalDefinitionLanguage.g:602:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:622:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1567,8 +1616,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:602:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalDefinitionLanguage.g:603:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalDefinitionLanguage.g:622:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalDefinitionLanguage.g:623:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1595,7 +1644,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalDefinitionLanguage.g:609:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalDefinitionLanguage.g:629:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1610,17 +1659,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:615:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalDefinitionLanguage.g:616:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:635:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalDefinitionLanguage.g:636:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalDefinitionLanguage.g:616:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalDefinitionLanguage.g:617:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:636:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:637:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalDefinitionLanguage.g:617:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalDefinitionLanguage.g:618:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:637:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalDefinitionLanguage.g:638:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalDefinitionLanguage.g:618:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalDefinitionLanguage.g:619:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalDefinitionLanguage.g:638:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalDefinitionLanguage.g:639:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0());
@@ -1647,7 +1696,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:636:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:656:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             loop8:
             do {
                 int alt8=2;
@@ -1660,13 +1709,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:637:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:657:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalDefinitionLanguage.g:637:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalDefinitionLanguage.g:638:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDefinitionLanguage.g:657:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalDefinitionLanguage.g:658:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalDefinitionLanguage.g:638:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalDefinitionLanguage.g:639:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalDefinitionLanguage.g:658:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDefinitionLanguage.g:659:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0());
@@ -1693,11 +1742,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             	    }
 
-            	    // InternalDefinitionLanguage.g:656:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalDefinitionLanguage.g:657:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalDefinitionLanguage.g:676:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:677:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:657:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalDefinitionLanguage.g:658:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalDefinitionLanguage.g:677:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalDefinitionLanguage.g:678:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0());
@@ -1756,7 +1805,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalDefinitionLanguage.g:680:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:700:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1764,8 +1813,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:680:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalDefinitionLanguage.g:681:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalDefinitionLanguage.g:700:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalDefinitionLanguage.g:701:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1792,7 +1841,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalDefinitionLanguage.g:687:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalDefinitionLanguage.g:707:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1807,17 +1856,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:693:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalDefinitionLanguage.g:694:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:713:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalDefinitionLanguage.g:714:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalDefinitionLanguage.g:694:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalDefinitionLanguage.g:695:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:714:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalDefinitionLanguage.g:715:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalDefinitionLanguage.g:695:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalDefinitionLanguage.g:696:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:715:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalDefinitionLanguage.g:716:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalDefinitionLanguage.g:696:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalDefinitionLanguage.g:697:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalDefinitionLanguage.g:716:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalDefinitionLanguage.g:717:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0());
@@ -1844,7 +1893,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:714:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalDefinitionLanguage.g:734:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             loop9:
             do {
                 int alt9=2;
@@ -1857,13 +1906,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:715:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:735:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalDefinitionLanguage.g:715:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalDefinitionLanguage.g:716:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalDefinitionLanguage.g:735:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalDefinitionLanguage.g:736:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalDefinitionLanguage.g:716:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalDefinitionLanguage.g:717:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalDefinitionLanguage.g:736:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalDefinitionLanguage.g:737:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0());
@@ -1890,11 +1939,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             	    }
 
-            	    // InternalDefinitionLanguage.g:734:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalDefinitionLanguage.g:735:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalDefinitionLanguage.g:754:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalDefinitionLanguage.g:755:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:735:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalDefinitionLanguage.g:736:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalDefinitionLanguage.g:755:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalDefinitionLanguage.g:756:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0());
@@ -1953,7 +2002,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalDefinitionLanguage.g:758:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:778:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1961,8 +2010,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:758:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalDefinitionLanguage.g:759:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalDefinitionLanguage.g:778:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalDefinitionLanguage.g:779:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1989,7 +2038,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalDefinitionLanguage.g:765:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalDefinitionLanguage.g:785:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2003,17 +2052,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:771:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalDefinitionLanguage.g:772:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalDefinitionLanguage.g:791:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalDefinitionLanguage.g:792:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalDefinitionLanguage.g:772:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalDefinitionLanguage.g:773:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalDefinitionLanguage.g:792:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalDefinitionLanguage.g:793:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalDefinitionLanguage.g:773:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalDefinitionLanguage.g:774:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:793:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalDefinitionLanguage.g:794:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalDefinitionLanguage.g:774:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalDefinitionLanguage.g:775:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalDefinitionLanguage.g:794:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalDefinitionLanguage.g:795:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0());
@@ -2040,7 +2089,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:792:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalDefinitionLanguage.g:812:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -2049,17 +2098,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt10) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:793:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalDefinitionLanguage.g:813:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
                     otherlv_1=(Token)match(input,24,FOLLOW_9); 
 
                     				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                     			
-                    // InternalDefinitionLanguage.g:797:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalDefinitionLanguage.g:798:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalDefinitionLanguage.g:817:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalDefinitionLanguage.g:818:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalDefinitionLanguage.g:798:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalDefinitionLanguage.g:799:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalDefinitionLanguage.g:818:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalDefinitionLanguage.g:819:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0());
@@ -2115,7 +2164,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalDefinitionLanguage.g:821:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalDefinitionLanguage.g:841:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2123,8 +2172,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:821:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalDefinitionLanguage.g:822:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalDefinitionLanguage.g:841:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalDefinitionLanguage.g:842:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2151,7 +2200,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalDefinitionLanguage.g:828:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalDefinitionLanguage.g:848:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2164,13 +2213,13 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:834:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalDefinitionLanguage.g:835:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalDefinitionLanguage.g:854:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalDefinitionLanguage.g:855:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalDefinitionLanguage.g:835:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalDefinitionLanguage.g:836:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalDefinitionLanguage.g:855:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalDefinitionLanguage.g:856:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalDefinitionLanguage.g:836:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            // InternalDefinitionLanguage.g:856:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
             loop11:
             do {
                 int alt11=2;
@@ -2183,10 +2232,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt11) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:837:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDefinitionLanguage.g:857:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalDefinitionLanguage.g:837:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalDefinitionLanguage.g:838:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalDefinitionLanguage.g:857:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalDefinitionLanguage.g:858:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0());
@@ -2219,11 +2268,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                 }
             } while (true);
 
-            // InternalDefinitionLanguage.g:855:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalDefinitionLanguage.g:856:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalDefinitionLanguage.g:875:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalDefinitionLanguage.g:876:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalDefinitionLanguage.g:856:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalDefinitionLanguage.g:857:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalDefinitionLanguage.g:876:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalDefinitionLanguage.g:877:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
 
             					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0());
@@ -2273,7 +2322,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalDefinitionLanguage.g:878:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalDefinitionLanguage.g:898:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2281,8 +2330,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:878:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalDefinitionLanguage.g:879:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalDefinitionLanguage.g:898:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalDefinitionLanguage.g:899:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2309,7 +2358,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalDefinitionLanguage.g:885:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalDefinitionLanguage.g:905:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2326,47 +2375,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:891:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalDefinitionLanguage.g:892:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalDefinitionLanguage.g:911:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalDefinitionLanguage.g:912:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalDefinitionLanguage.g:892:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalDefinitionLanguage.g:912:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             int alt12=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt12=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 29:
-            case 30:
-                {
-                alt12=2;
-                }
-                break;
-            case 25:
-                {
-                alt12=3;
-                }
-                break;
-            case 28:
-                {
-                alt12=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 12, 0, input);
-
-                throw nvae;
-            }
-
+            alt12 = dfa12.predict(input);
             switch (alt12) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:893:3: this_CallRule_0= ruleCallRule
+                    // InternalDefinitionLanguage.g:913:3: this_CallRule_0= ruleCallRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0());
@@ -2384,7 +2401,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:902:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalDefinitionLanguage.g:922:3: this_LiteralRule_1= ruleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1());
@@ -2402,7 +2419,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:911:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalDefinitionLanguage.g:931:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2());
@@ -2420,7 +2437,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:920:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalDefinitionLanguage.g:940:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3());
@@ -2460,7 +2477,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalDefinitionLanguage.g:932:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalDefinitionLanguage.g:952:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -2468,8 +2485,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:932:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalDefinitionLanguage.g:933:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalDefinitionLanguage.g:952:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalDefinitionLanguage.g:953:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
              newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2496,7 +2513,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalDefinitionLanguage.g:939:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalDefinitionLanguage.g:959:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -2509,21 +2526,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:945:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalDefinitionLanguage.g:946:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalDefinitionLanguage.g:965:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalDefinitionLanguage.g:966:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalDefinitionLanguage.g:946:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalDefinitionLanguage.g:947:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalDefinitionLanguage.g:966:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalDefinitionLanguage.g:967:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
             otherlv_0=(Token)match(input,25,FOLLOW_9); 
 
             			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalDefinitionLanguage.g:951:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalDefinitionLanguage.g:952:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalDefinitionLanguage.g:971:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:972:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalDefinitionLanguage.g:952:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalDefinitionLanguage.g:953:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalDefinitionLanguage.g:972:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalDefinitionLanguage.g:973:5: lv_subExpression_1_0= ruleExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0());
@@ -2577,7 +2594,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalDefinitionLanguage.g:978:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalDefinitionLanguage.g:998:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -2585,8 +2602,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:978:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalDefinitionLanguage.g:979:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalDefinitionLanguage.g:998:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalDefinitionLanguage.g:999:2: iv_ruleCallRule= ruleCallRule EOF
             {
              newCompositeNode(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2613,7 +2630,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalDefinitionLanguage.g:985:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalDefinitionLanguage.g:1005:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -2631,17 +2648,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:991:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalDefinitionLanguage.g:992:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalDefinitionLanguage.g:1011:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalDefinitionLanguage.g:1012:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalDefinitionLanguage.g:992:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalDefinitionLanguage.g:993:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalDefinitionLanguage.g:1012:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalDefinitionLanguage.g:1013:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalDefinitionLanguage.g:993:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalDefinitionLanguage.g:994:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalDefinitionLanguage.g:1013:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalDefinitionLanguage.g:1014:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalDefinitionLanguage.g:994:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalDefinitionLanguage.g:995:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalDefinitionLanguage.g:1014:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalDefinitionLanguage.g:1015:5: lv_function_0_0= ruleFunctionNameRule
             {
 
             					newCompositeNode(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0());
@@ -2672,22 +2689,22 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalDefinitionLanguage.g:1016:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            // InternalDefinitionLanguage.g:1036:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( ((LA14_0>=RULE_DOUBLE && LA14_0<=RULE_ID)||LA14_0==23||LA14_0==25||(LA14_0>=28 && LA14_0<=30)||(LA14_0>=55 && LA14_0<=56)) ) {
+            if ( ((LA14_0>=RULE_DOUBLE && LA14_0<=RULE_ID)||LA14_0==23||LA14_0==25||(LA14_0>=28 && LA14_0<=29)||(LA14_0>=55 && LA14_0<=56)) ) {
                 alt14=1;
             }
             switch (alt14) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1017:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalDefinitionLanguage.g:1037:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalDefinitionLanguage.g:1017:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalDefinitionLanguage.g:1018:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalDefinitionLanguage.g:1037:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalDefinitionLanguage.g:1038:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalDefinitionLanguage.g:1018:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalDefinitionLanguage.g:1019:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalDefinitionLanguage.g:1038:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalDefinitionLanguage.g:1039:6: lv_parameters_2_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0());
@@ -2714,7 +2731,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                     }
 
-                    // InternalDefinitionLanguage.g:1036:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalDefinitionLanguage.g:1056:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     loop13:
                     do {
                         int alt13=2;
@@ -2727,17 +2744,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                         switch (alt13) {
                     	case 1 :
-                    	    // InternalDefinitionLanguage.g:1037:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalDefinitionLanguage.g:1057:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
                     	    otherlv_3=(Token)match(input,27,FOLLOW_9); 
 
                     	    					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	    				
-                    	    // InternalDefinitionLanguage.g:1041:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalDefinitionLanguage.g:1042:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalDefinitionLanguage.g:1061:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalDefinitionLanguage.g:1062:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalDefinitionLanguage.g:1042:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalDefinitionLanguage.g:1043:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalDefinitionLanguage.g:1062:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalDefinitionLanguage.g:1063:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
 
                     	    							newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0());
@@ -2806,7 +2823,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalDefinitionLanguage.g:1070:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
+    // InternalDefinitionLanguage.g:1090:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
     public final EObject entryRuleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2814,8 +2831,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1070:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
-            // InternalDefinitionLanguage.g:1071:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
+            // InternalDefinitionLanguage.g:1090:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
+            // InternalDefinitionLanguage.g:1091:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2842,37 +2859,124 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalDefinitionLanguage.g:1077:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalDefinitionLanguage.g:1097:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1083:2: ( ( () otherlv_1= 'value' ) )
-            // InternalDefinitionLanguage.g:1084:2: ( () otherlv_1= 'value' )
+            // InternalDefinitionLanguage.g:1103:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalDefinitionLanguage.g:1104:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
             {
-            // InternalDefinitionLanguage.g:1084:2: ( () otherlv_1= 'value' )
-            // InternalDefinitionLanguage.g:1085:3: () otherlv_1= 'value'
+
+            		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+            	
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+
+            		current = this_ConstantReferenceRule_0;
+            		afterParserOrEnumRuleCall();
+            	
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalDefinitionLanguage.g:1115:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantReferenceRule = null;
+
+
+        try {
+            // InternalDefinitionLanguage.g:1115:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalDefinitionLanguage.g:1116:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
             {
-            // InternalDefinitionLanguage.g:1085:3: ()
-            // InternalDefinitionLanguage.g:1086:4: 
+             newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantReferenceRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalDefinitionLanguage.g:1122:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalDefinitionLanguage.g:1128:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:1129:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalDefinitionLanguage.g:1129:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:1130:3: ( ruleQualifiedName )
+            {
+            // InternalDefinitionLanguage.g:1130:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:1131:4: ruleQualifiedName
             {
 
-            				current = forceCreateModelElement(
-            					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-            					current);
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+            				}
             			
 
-            }
+            				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+            			
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
 
-            otherlv_1=(Token)match(input,28,FOLLOW_2); 
+            state._fsp--;
+
+
+            				afterParserOrEnumRuleCall();
+            			
+
+            }
 
-            			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-            		
 
             }
 
@@ -2892,11 +2996,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         }
         return current;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalDefinitionLanguage.g:1100:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1148:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
     public final EObject entryRuleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2904,8 +3008,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1100:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1101:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalDefinitionLanguage.g:1148:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1149:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2932,7 +3036,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalDefinitionLanguage.g:1107:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalDefinitionLanguage.g:1155:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -2947,10 +3051,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1113:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalDefinitionLanguage.g:1114:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalDefinitionLanguage.g:1161:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalDefinitionLanguage.g:1162:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalDefinitionLanguage.g:1114:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalDefinitionLanguage.g:1162:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             int alt15=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -2964,8 +3068,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                 alt15=2;
                 }
                 break;
+            case 28:
             case 29:
-            case 30:
                 {
                 alt15=3;
                 }
@@ -2979,7 +3083,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             switch (alt15) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1115:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalDefinitionLanguage.g:1163:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0());
@@ -2997,7 +3101,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1124:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalDefinitionLanguage.g:1172:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1());
@@ -3015,7 +3119,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1133:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalDefinitionLanguage.g:1181:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2());
@@ -3055,7 +3159,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalDefinitionLanguage.g:1145:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1193:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3063,8 +3167,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1145:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1146:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalDefinitionLanguage.g:1193:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1194:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3091,7 +3195,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalDefinitionLanguage.g:1152:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalDefinitionLanguage.g:1200:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3104,10 +3208,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1158:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalDefinitionLanguage.g:1159:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalDefinitionLanguage.g:1206:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalDefinitionLanguage.g:1207:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalDefinitionLanguage.g:1159:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalDefinitionLanguage.g:1207:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -3125,7 +3229,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt16) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1160:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalDefinitionLanguage.g:1208:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0());
@@ -3143,7 +3247,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1169:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalDefinitionLanguage.g:1217:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1());
@@ -3183,7 +3287,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalDefinitionLanguage.g:1181:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1229:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3191,8 +3295,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1181:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1182:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalDefinitionLanguage.g:1229:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1230:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3219,7 +3323,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalDefinitionLanguage.g:1188:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalDefinitionLanguage.g:1236:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3231,17 +3335,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1194:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalDefinitionLanguage.g:1195:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDefinitionLanguage.g:1242:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalDefinitionLanguage.g:1243:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalDefinitionLanguage.g:1195:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalDefinitionLanguage.g:1196:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDefinitionLanguage.g:1243:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDefinitionLanguage.g:1244:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalDefinitionLanguage.g:1196:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalDefinitionLanguage.g:1197:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalDefinitionLanguage.g:1244:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalDefinitionLanguage.g:1245:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalDefinitionLanguage.g:1197:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalDefinitionLanguage.g:1198:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalDefinitionLanguage.g:1245:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalDefinitionLanguage.g:1246:5: lv_literal_0_0= RULE_DOUBLE
             {
             lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_20); 
 
@@ -3263,7 +3367,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1214:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDefinitionLanguage.g:1262:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -3272,10 +3376,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt17) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1215:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDefinitionLanguage.g:1263:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalDefinitionLanguage.g:1215:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalDefinitionLanguage.g:1216:5: lv_factor_1_0= ruleFactorRule
+                    // InternalDefinitionLanguage.g:1263:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDefinitionLanguage.g:1264:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -3328,7 +3432,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalDefinitionLanguage.g:1237:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1285:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3336,8 +3440,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1237:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1238:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalDefinitionLanguage.g:1285:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1286:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3364,7 +3468,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalDefinitionLanguage.g:1244:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalDefinitionLanguage.g:1292:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3376,17 +3480,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1250:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalDefinitionLanguage.g:1251:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDefinitionLanguage.g:1298:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalDefinitionLanguage.g:1299:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalDefinitionLanguage.g:1251:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalDefinitionLanguage.g:1252:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDefinitionLanguage.g:1299:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalDefinitionLanguage.g:1300:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalDefinitionLanguage.g:1252:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalDefinitionLanguage.g:1253:4: (lv_literal_0_0= RULE_INT )
+            // InternalDefinitionLanguage.g:1300:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalDefinitionLanguage.g:1301:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalDefinitionLanguage.g:1253:4: (lv_literal_0_0= RULE_INT )
-            // InternalDefinitionLanguage.g:1254:5: lv_literal_0_0= RULE_INT
+            // InternalDefinitionLanguage.g:1301:4: (lv_literal_0_0= RULE_INT )
+            // InternalDefinitionLanguage.g:1302:5: lv_literal_0_0= RULE_INT
             {
             lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_20); 
 
@@ -3408,7 +3512,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1270:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalDefinitionLanguage.g:1318:3: ( (lv_factor_1_0= ruleFactorRule ) )?
             int alt18=2;
             int LA18_0 = input.LA(1);
 
@@ -3417,10 +3521,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt18) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1271:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDefinitionLanguage.g:1319:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalDefinitionLanguage.g:1271:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalDefinitionLanguage.g:1272:5: lv_factor_1_0= ruleFactorRule
+                    // InternalDefinitionLanguage.g:1319:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalDefinitionLanguage.g:1320:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -3473,7 +3577,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalDefinitionLanguage.g:1293:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1341:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3481,8 +3585,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1293:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1294:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalDefinitionLanguage.g:1341:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1342:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3509,7 +3613,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalDefinitionLanguage.g:1300:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalDefinitionLanguage.g:1348:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3519,14 +3623,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1306:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalDefinitionLanguage.g:1307:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalDefinitionLanguage.g:1354:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalDefinitionLanguage.g:1355:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalDefinitionLanguage.g:1307:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalDefinitionLanguage.g:1308:3: (lv_value_0_0= RULE_STRING )
+            // InternalDefinitionLanguage.g:1355:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalDefinitionLanguage.g:1356:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalDefinitionLanguage.g:1308:3: (lv_value_0_0= RULE_STRING )
-            // InternalDefinitionLanguage.g:1309:4: lv_value_0_0= RULE_STRING
+            // InternalDefinitionLanguage.g:1356:3: (lv_value_0_0= RULE_STRING )
+            // InternalDefinitionLanguage.g:1357:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
 
@@ -3568,7 +3672,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalDefinitionLanguage.g:1328:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalDefinitionLanguage.g:1376:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3576,8 +3680,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1328:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalDefinitionLanguage.g:1329:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalDefinitionLanguage.g:1376:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalDefinitionLanguage.g:1377:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3604,7 +3708,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalDefinitionLanguage.g:1335:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalDefinitionLanguage.g:1383:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3615,14 +3719,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1341:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalDefinitionLanguage.g:1342:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalDefinitionLanguage.g:1389:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalDefinitionLanguage.g:1390:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalDefinitionLanguage.g:1342:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalDefinitionLanguage.g:1343:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalDefinitionLanguage.g:1390:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalDefinitionLanguage.g:1391:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalDefinitionLanguage.g:1343:3: ()
-            // InternalDefinitionLanguage.g:1344:4: 
+            // InternalDefinitionLanguage.g:1391:3: ()
+            // InternalDefinitionLanguage.g:1392:4: 
             {
 
             				current = forceCreateModelElement(
@@ -3632,14 +3736,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1350:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalDefinitionLanguage.g:1398:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             int alt19=2;
             int LA19_0 = input.LA(1);
 
-            if ( (LA19_0==29) ) {
+            if ( (LA19_0==28) ) {
                 alt19=1;
             }
-            else if ( (LA19_0==30) ) {
+            else if ( (LA19_0==29) ) {
                 alt19=2;
             }
             else {
@@ -3650,15 +3754,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt19) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1351:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalDefinitionLanguage.g:1399:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalDefinitionLanguage.g:1351:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalDefinitionLanguage.g:1352:5: (lv_value_1_0= 'true' )
+                    // InternalDefinitionLanguage.g:1399:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalDefinitionLanguage.g:1400:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalDefinitionLanguage.g:1352:5: (lv_value_1_0= 'true' )
-                    // InternalDefinitionLanguage.g:1353:6: lv_value_1_0= 'true'
+                    // InternalDefinitionLanguage.g:1400:5: (lv_value_1_0= 'true' )
+                    // InternalDefinitionLanguage.g:1401:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,29,FOLLOW_2); 
+                    lv_value_1_0=(Token)match(input,28,FOLLOW_2); 
 
                     						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
                     					
@@ -3678,9 +3782,9 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1366:4: otherlv_2= 'false'
+                    // InternalDefinitionLanguage.g:1414:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,30,FOLLOW_2); 
+                    otherlv_2=(Token)match(input,29,FOLLOW_2); 
 
                     				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
                     			
@@ -3713,7 +3817,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleTypeDefinitionRule"
-    // InternalDefinitionLanguage.g:1375:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:1423:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
     public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3721,8 +3825,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1375:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:1376:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            // InternalDefinitionLanguage.g:1423:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:1424:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3749,7 +3853,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleTypeDefinitionRule"
-    // InternalDefinitionLanguage.g:1382:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    // InternalDefinitionLanguage.g:1430:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
     public final EObject ruleTypeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3767,27 +3871,27 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1388:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
-            // InternalDefinitionLanguage.g:1389:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalDefinitionLanguage.g:1436:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalDefinitionLanguage.g:1437:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
             {
-            // InternalDefinitionLanguage.g:1389:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
-            // InternalDefinitionLanguage.g:1390:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            // InternalDefinitionLanguage.g:1437:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalDefinitionLanguage.g:1438:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
             {
-            // InternalDefinitionLanguage.g:1390:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            // InternalDefinitionLanguage.g:1438:3: ( (lv_abstract_0_0= 'abstract' ) )?
             int alt20=2;
             int LA20_0 = input.LA(1);
 
-            if ( (LA20_0==31) ) {
+            if ( (LA20_0==30) ) {
                 alt20=1;
             }
             switch (alt20) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1391:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalDefinitionLanguage.g:1439:4: (lv_abstract_0_0= 'abstract' )
                     {
-                    // InternalDefinitionLanguage.g:1391:4: (lv_abstract_0_0= 'abstract' )
-                    // InternalDefinitionLanguage.g:1392:5: lv_abstract_0_0= 'abstract'
+                    // InternalDefinitionLanguage.g:1439:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalDefinitionLanguage.g:1440:5: lv_abstract_0_0= 'abstract'
                     {
-                    lv_abstract_0_0=(Token)match(input,31,FOLLOW_21); 
+                    lv_abstract_0_0=(Token)match(input,30,FOLLOW_21); 
 
                     					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
                     				
@@ -3806,15 +3910,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,32,FOLLOW_4); 
+            otherlv_1=(Token)match(input,31,FOLLOW_4); 
 
             			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
             		
-            // InternalDefinitionLanguage.g:1408:3: ( (lv_name_2_0= ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:1409:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:1456:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:1457:4: (lv_name_2_0= ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:1409:4: (lv_name_2_0= ruleStringOrId )
-            // InternalDefinitionLanguage.g:1410:5: lv_name_2_0= ruleStringOrId
+            // InternalDefinitionLanguage.g:1457:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:1458:5: lv_name_2_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
@@ -3841,26 +3945,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1427:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            // InternalDefinitionLanguage.g:1475:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
-            if ( (LA21_0==33) ) {
+            if ( (LA21_0==32) ) {
                 alt21=1;
             }
             switch (alt21) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1428:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    // InternalDefinitionLanguage.g:1476:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
                     {
-                    otherlv_3=(Token)match(input,33,FOLLOW_4); 
+                    otherlv_3=(Token)match(input,32,FOLLOW_4); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
                     			
-                    // InternalDefinitionLanguage.g:1432:4: ( ( ruleQualifiedName ) )
-                    // InternalDefinitionLanguage.g:1433:5: ( ruleQualifiedName )
+                    // InternalDefinitionLanguage.g:1480:4: ( ( ruleQualifiedName ) )
+                    // InternalDefinitionLanguage.g:1481:5: ( ruleQualifiedName )
                     {
-                    // InternalDefinitionLanguage.g:1433:5: ( ruleQualifiedName )
-                    // InternalDefinitionLanguage.g:1434:6: ruleQualifiedName
+                    // InternalDefinitionLanguage.g:1481:5: ( ruleQualifiedName )
+                    // InternalDefinitionLanguage.g:1482:6: ruleQualifiedName
                     {
 
                     						if (current==null) {
@@ -3894,7 +3998,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
             		
-            // InternalDefinitionLanguage.g:1453:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            // InternalDefinitionLanguage.g:1501:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
             loop22:
             do {
                 int alt22=2;
@@ -3907,10 +4011,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1454:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalDefinitionLanguage.g:1502:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
             	    {
-            	    // InternalDefinitionLanguage.g:1454:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
-            	    // InternalDefinitionLanguage.g:1455:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    // InternalDefinitionLanguage.g:1502:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalDefinitionLanguage.g:1503:5: lv_attributes_6_0= ruleAttributeDefinitionRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
@@ -3970,7 +4074,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalDefinitionLanguage.g:1480:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:1528:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3978,8 +4082,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1480:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:1481:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalDefinitionLanguage.g:1528:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:1529:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4006,7 +4110,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalDefinitionLanguage.g:1487:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalDefinitionLanguage.g:1535:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4024,17 +4128,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1493:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalDefinitionLanguage.g:1494:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalDefinitionLanguage.g:1541:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalDefinitionLanguage.g:1542:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalDefinitionLanguage.g:1494:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalDefinitionLanguage.g:1495:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalDefinitionLanguage.g:1542:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalDefinitionLanguage.g:1543:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalDefinitionLanguage.g:1495:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:1496:4: (lv_name_0_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:1543:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:1544:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:1496:4: (lv_name_0_0= ruleStringOrId )
-            // InternalDefinitionLanguage.g:1497:5: lv_name_0_0= ruleStringOrId
+            // InternalDefinitionLanguage.g:1544:4: (lv_name_0_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:1545:5: lv_name_0_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
@@ -4061,15 +4165,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,34,FOLLOW_25); 
+            otherlv_1=(Token)match(input,33,FOLLOW_25); 
 
             			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
             		
-            // InternalDefinitionLanguage.g:1518:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:1519:4: (lv_type_2_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:1566:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:1567:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:1519:4: (lv_type_2_0= ruleTypeRule )
-            // InternalDefinitionLanguage.g:1520:5: lv_type_2_0= ruleTypeRule
+            // InternalDefinitionLanguage.g:1567:4: (lv_type_2_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:1568:5: lv_type_2_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
@@ -4096,26 +4200,26 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1537:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            // InternalDefinitionLanguage.g:1585:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
-            if ( (LA23_0==35) ) {
+            if ( (LA23_0==34) ) {
                 alt23=1;
             }
             switch (alt23) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1538:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalDefinitionLanguage.g:1586:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,35,FOLLOW_9); 
+                    otherlv_3=(Token)match(input,34,FOLLOW_9); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                     			
-                    // InternalDefinitionLanguage.g:1542:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalDefinitionLanguage.g:1543:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalDefinitionLanguage.g:1590:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalDefinitionLanguage.g:1591:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalDefinitionLanguage.g:1543:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalDefinitionLanguage.g:1544:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalDefinitionLanguage.g:1591:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalDefinitionLanguage.g:1592:6: lv_initialisation_4_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0());
@@ -4175,7 +4279,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalDefinitionLanguage.g:1570:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1618:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4183,8 +4287,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1570:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalDefinitionLanguage.g:1571:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalDefinitionLanguage.g:1618:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalDefinitionLanguage.g:1619:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
              newCompositeNode(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4211,7 +4315,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalDefinitionLanguage.g:1577:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalDefinitionLanguage.g:1625:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4240,58 +4344,58 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1583:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalDefinitionLanguage.g:1584:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalDefinitionLanguage.g:1631:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalDefinitionLanguage.g:1632:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalDefinitionLanguage.g:1584:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalDefinitionLanguage.g:1632:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             int alt24=10;
             switch ( input.LA(1) ) {
-            case 39:
+            case 38:
                 {
                 alt24=1;
                 }
                 break;
-            case 41:
+            case 40:
                 {
                 alt24=2;
                 }
                 break;
-            case 42:
+            case 41:
                 {
                 alt24=3;
                 }
                 break;
-            case 43:
+            case 42:
                 {
                 alt24=4;
                 }
                 break;
-            case 36:
+            case 35:
                 {
                 alt24=5;
                 }
                 break;
-            case 46:
+            case 45:
                 {
                 alt24=6;
                 }
                 break;
-            case 37:
+            case 36:
                 {
                 alt24=7;
                 }
                 break;
-            case 44:
+            case 43:
                 {
                 alt24=8;
                 }
                 break;
-            case 40:
+            case 39:
                 {
                 alt24=9;
                 }
                 break;
-            case 45:
+            case 44:
                 {
                 alt24=10;
                 }
@@ -4305,7 +4409,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             switch (alt24) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:1585:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalDefinitionLanguage.g:1633:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0());
@@ -4323,7 +4427,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:1594:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalDefinitionLanguage.g:1642:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1());
@@ -4341,7 +4445,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:1603:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalDefinitionLanguage.g:1651:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2());
@@ -4359,7 +4463,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:1612:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalDefinitionLanguage.g:1660:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3());
@@ -4377,7 +4481,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:1621:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalDefinitionLanguage.g:1669:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4());
@@ -4395,7 +4499,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:1630:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalDefinitionLanguage.g:1678:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5());
@@ -4413,7 +4517,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 7 :
-                    // InternalDefinitionLanguage.g:1639:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalDefinitionLanguage.g:1687:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6());
@@ -4431,7 +4535,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 8 :
-                    // InternalDefinitionLanguage.g:1648:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalDefinitionLanguage.g:1696:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7());
@@ -4449,7 +4553,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 9 :
-                    // InternalDefinitionLanguage.g:1657:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalDefinitionLanguage.g:1705:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8());
@@ -4467,7 +4571,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 10 :
-                    // InternalDefinitionLanguage.g:1666:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalDefinitionLanguage.g:1714:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9());
@@ -4507,7 +4611,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalDefinitionLanguage.g:1678:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1726:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4515,8 +4619,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1678:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalDefinitionLanguage.g:1679:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalDefinitionLanguage.g:1726:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalDefinitionLanguage.g:1727:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4543,7 +4647,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalDefinitionLanguage.g:1685:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalDefinitionLanguage.g:1733:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4553,14 +4657,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1691:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalDefinitionLanguage.g:1692:2: ( () otherlv_1= 'literal' )
+            // InternalDefinitionLanguage.g:1739:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalDefinitionLanguage.g:1740:2: ( () otherlv_1= 'literal' )
             {
-            // InternalDefinitionLanguage.g:1692:2: ( () otherlv_1= 'literal' )
-            // InternalDefinitionLanguage.g:1693:3: () otherlv_1= 'literal'
+            // InternalDefinitionLanguage.g:1740:2: ( () otherlv_1= 'literal' )
+            // InternalDefinitionLanguage.g:1741:3: () otherlv_1= 'literal'
             {
-            // InternalDefinitionLanguage.g:1693:3: ()
-            // InternalDefinitionLanguage.g:1694:4: 
+            // InternalDefinitionLanguage.g:1741:3: ()
+            // InternalDefinitionLanguage.g:1742:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4570,7 +4674,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,36,FOLLOW_2); 
+            otherlv_1=(Token)match(input,35,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
             		
@@ -4597,7 +4701,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalDefinitionLanguage.g:1708:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1756:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4605,8 +4709,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1708:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalDefinitionLanguage.g:1709:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalDefinitionLanguage.g:1756:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalDefinitionLanguage.g:1757:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
              newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4633,7 +4737,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalDefinitionLanguage.g:1715:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalDefinitionLanguage.g:1763:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4644,14 +4748,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1721:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalDefinitionLanguage.g:1722:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalDefinitionLanguage.g:1769:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalDefinitionLanguage.g:1770:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalDefinitionLanguage.g:1722:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalDefinitionLanguage.g:1723:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalDefinitionLanguage.g:1770:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalDefinitionLanguage.g:1771:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalDefinitionLanguage.g:1723:3: ()
-            // InternalDefinitionLanguage.g:1724:4: 
+            // InternalDefinitionLanguage.g:1771:3: ()
+            // InternalDefinitionLanguage.g:1772:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4661,15 +4765,15 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_4); 
+            otherlv_1=(Token)match(input,36,FOLLOW_4); 
 
             			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
             		
-            // InternalDefinitionLanguage.g:1734:3: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:1735:4: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:1782:3: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:1783:4: ( ruleQualifiedName )
             {
-            // InternalDefinitionLanguage.g:1735:4: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:1736:5: ruleQualifiedName
+            // InternalDefinitionLanguage.g:1783:4: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:1784:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -4693,30 +4797,30 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:1750:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalDefinitionLanguage.g:1798:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             loop25:
             do {
                 int alt25=2;
                 int LA25_0 = input.LA(1);
 
-                if ( (LA25_0==38) ) {
+                if ( (LA25_0==37) ) {
                     alt25=1;
                 }
 
 
                 switch (alt25) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:1751:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalDefinitionLanguage.g:1799:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,38,FOLLOW_4); 
+            	    otherlv_3=(Token)match(input,37,FOLLOW_4); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	    			
-            	    // InternalDefinitionLanguage.g:1755:4: ( ( ruleQualifiedName ) )
-            	    // InternalDefinitionLanguage.g:1756:5: ( ruleQualifiedName )
+            	    // InternalDefinitionLanguage.g:1803:4: ( ( ruleQualifiedName ) )
+            	    // InternalDefinitionLanguage.g:1804:5: ( ruleQualifiedName )
             	    {
-            	    // InternalDefinitionLanguage.g:1756:5: ( ruleQualifiedName )
-            	    // InternalDefinitionLanguage.g:1757:6: ruleQualifiedName
+            	    // InternalDefinitionLanguage.g:1804:5: ( ruleQualifiedName )
+            	    // InternalDefinitionLanguage.g:1805:6: ruleQualifiedName
             	    {
 
             	    						if (current==null) {
@@ -4772,7 +4876,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalDefinitionLanguage.g:1776:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1824:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4780,8 +4884,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1776:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalDefinitionLanguage.g:1777:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalDefinitionLanguage.g:1824:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalDefinitionLanguage.g:1825:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
              newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4808,7 +4912,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalDefinitionLanguage.g:1783:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalDefinitionLanguage.g:1831:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4818,14 +4922,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1789:2: ( ( () otherlv_1= 'string' ) )
-            // InternalDefinitionLanguage.g:1790:2: ( () otherlv_1= 'string' )
+            // InternalDefinitionLanguage.g:1837:2: ( ( () otherlv_1= 'string' ) )
+            // InternalDefinitionLanguage.g:1838:2: ( () otherlv_1= 'string' )
             {
-            // InternalDefinitionLanguage.g:1790:2: ( () otherlv_1= 'string' )
-            // InternalDefinitionLanguage.g:1791:3: () otherlv_1= 'string'
+            // InternalDefinitionLanguage.g:1838:2: ( () otherlv_1= 'string' )
+            // InternalDefinitionLanguage.g:1839:3: () otherlv_1= 'string'
             {
-            // InternalDefinitionLanguage.g:1791:3: ()
-            // InternalDefinitionLanguage.g:1792:4: 
+            // InternalDefinitionLanguage.g:1839:3: ()
+            // InternalDefinitionLanguage.g:1840:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4835,7 +4939,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,39,FOLLOW_2); 
+            otherlv_1=(Token)match(input,38,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
             		
@@ -4862,7 +4966,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalDefinitionLanguage.g:1806:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1854:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4870,8 +4974,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1806:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalDefinitionLanguage.g:1807:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalDefinitionLanguage.g:1854:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalDefinitionLanguage.g:1855:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4898,7 +5002,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalDefinitionLanguage.g:1813:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalDefinitionLanguage.g:1861:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4908,14 +5012,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1819:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalDefinitionLanguage.g:1820:2: ( () otherlv_1= 'expression' )
+            // InternalDefinitionLanguage.g:1867:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalDefinitionLanguage.g:1868:2: ( () otherlv_1= 'expression' )
             {
-            // InternalDefinitionLanguage.g:1820:2: ( () otherlv_1= 'expression' )
-            // InternalDefinitionLanguage.g:1821:3: () otherlv_1= 'expression'
+            // InternalDefinitionLanguage.g:1868:2: ( () otherlv_1= 'expression' )
+            // InternalDefinitionLanguage.g:1869:3: () otherlv_1= 'expression'
             {
-            // InternalDefinitionLanguage.g:1821:3: ()
-            // InternalDefinitionLanguage.g:1822:4: 
+            // InternalDefinitionLanguage.g:1869:3: ()
+            // InternalDefinitionLanguage.g:1870:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4925,7 +5029,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_2); 
+            otherlv_1=(Token)match(input,39,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
             		
@@ -4952,7 +5056,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalDefinitionLanguage.g:1836:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1884:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4960,8 +5064,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1836:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalDefinitionLanguage.g:1837:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalDefinitionLanguage.g:1884:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalDefinitionLanguage.g:1885:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
              newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4988,7 +5092,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalDefinitionLanguage.g:1843:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalDefinitionLanguage.g:1891:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4998,14 +5102,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1849:2: ( ( () otherlv_1= 'int' ) )
-            // InternalDefinitionLanguage.g:1850:2: ( () otherlv_1= 'int' )
+            // InternalDefinitionLanguage.g:1897:2: ( ( () otherlv_1= 'int' ) )
+            // InternalDefinitionLanguage.g:1898:2: ( () otherlv_1= 'int' )
             {
-            // InternalDefinitionLanguage.g:1850:2: ( () otherlv_1= 'int' )
-            // InternalDefinitionLanguage.g:1851:3: () otherlv_1= 'int'
+            // InternalDefinitionLanguage.g:1898:2: ( () otherlv_1= 'int' )
+            // InternalDefinitionLanguage.g:1899:3: () otherlv_1= 'int'
             {
-            // InternalDefinitionLanguage.g:1851:3: ()
-            // InternalDefinitionLanguage.g:1852:4: 
+            // InternalDefinitionLanguage.g:1899:3: ()
+            // InternalDefinitionLanguage.g:1900:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5015,7 +5119,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,41,FOLLOW_2); 
+            otherlv_1=(Token)match(input,40,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
             		
@@ -5042,7 +5146,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalDefinitionLanguage.g:1866:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1914:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5050,8 +5154,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1866:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalDefinitionLanguage.g:1867:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalDefinitionLanguage.g:1914:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalDefinitionLanguage.g:1915:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
              newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5078,7 +5182,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalDefinitionLanguage.g:1873:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalDefinitionLanguage.g:1921:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5088,14 +5192,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1879:2: ( ( () otherlv_1= 'float' ) )
-            // InternalDefinitionLanguage.g:1880:2: ( () otherlv_1= 'float' )
+            // InternalDefinitionLanguage.g:1927:2: ( ( () otherlv_1= 'float' ) )
+            // InternalDefinitionLanguage.g:1928:2: ( () otherlv_1= 'float' )
             {
-            // InternalDefinitionLanguage.g:1880:2: ( () otherlv_1= 'float' )
-            // InternalDefinitionLanguage.g:1881:3: () otherlv_1= 'float'
+            // InternalDefinitionLanguage.g:1928:2: ( () otherlv_1= 'float' )
+            // InternalDefinitionLanguage.g:1929:3: () otherlv_1= 'float'
             {
-            // InternalDefinitionLanguage.g:1881:3: ()
-            // InternalDefinitionLanguage.g:1882:4: 
+            // InternalDefinitionLanguage.g:1929:3: ()
+            // InternalDefinitionLanguage.g:1930:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5105,7 +5209,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_2); 
+            otherlv_1=(Token)match(input,41,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
             		
@@ -5132,7 +5236,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalDefinitionLanguage.g:1896:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1944:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5140,8 +5244,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1896:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalDefinitionLanguage.g:1897:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalDefinitionLanguage.g:1944:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalDefinitionLanguage.g:1945:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5168,7 +5272,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalDefinitionLanguage.g:1903:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalDefinitionLanguage.g:1951:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5178,14 +5282,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1909:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalDefinitionLanguage.g:1910:2: ( () otherlv_1= 'boolean' )
+            // InternalDefinitionLanguage.g:1957:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalDefinitionLanguage.g:1958:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalDefinitionLanguage.g:1910:2: ( () otherlv_1= 'boolean' )
-            // InternalDefinitionLanguage.g:1911:3: () otherlv_1= 'boolean'
+            // InternalDefinitionLanguage.g:1958:2: ( () otherlv_1= 'boolean' )
+            // InternalDefinitionLanguage.g:1959:3: () otherlv_1= 'boolean'
             {
-            // InternalDefinitionLanguage.g:1911:3: ()
-            // InternalDefinitionLanguage.g:1912:4: 
+            // InternalDefinitionLanguage.g:1959:3: ()
+            // InternalDefinitionLanguage.g:1960:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5195,7 +5299,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_2); 
+            otherlv_1=(Token)match(input,42,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
             		
@@ -5222,7 +5326,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalDefinitionLanguage.g:1926:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalDefinitionLanguage.g:1974:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5230,8 +5334,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1926:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalDefinitionLanguage.g:1927:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalDefinitionLanguage.g:1974:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalDefinitionLanguage.g:1975:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
              newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5258,7 +5362,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalDefinitionLanguage.g:1933:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalDefinitionLanguage.g:1981:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5268,14 +5372,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1939:2: ( ( () otherlv_1= 'void' ) )
-            // InternalDefinitionLanguage.g:1940:2: ( () otherlv_1= 'void' )
+            // InternalDefinitionLanguage.g:1987:2: ( ( () otherlv_1= 'void' ) )
+            // InternalDefinitionLanguage.g:1988:2: ( () otherlv_1= 'void' )
             {
-            // InternalDefinitionLanguage.g:1940:2: ( () otherlv_1= 'void' )
-            // InternalDefinitionLanguage.g:1941:3: () otherlv_1= 'void'
+            // InternalDefinitionLanguage.g:1988:2: ( () otherlv_1= 'void' )
+            // InternalDefinitionLanguage.g:1989:3: () otherlv_1= 'void'
             {
-            // InternalDefinitionLanguage.g:1941:3: ()
-            // InternalDefinitionLanguage.g:1942:4: 
+            // InternalDefinitionLanguage.g:1989:3: ()
+            // InternalDefinitionLanguage.g:1990:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5285,7 +5389,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,44,FOLLOW_2); 
+            otherlv_1=(Token)match(input,43,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
             		
@@ -5312,7 +5416,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalDefinitionLanguage.g:1956:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalDefinitionLanguage.g:2004:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5320,8 +5424,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1956:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalDefinitionLanguage.g:1957:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalDefinitionLanguage.g:2004:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalDefinitionLanguage.g:2005:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
              newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5348,7 +5452,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalDefinitionLanguage.g:1963:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalDefinitionLanguage.g:2011:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5358,14 +5462,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1969:2: ( ( () otherlv_1= 'data' ) )
-            // InternalDefinitionLanguage.g:1970:2: ( () otherlv_1= 'data' )
+            // InternalDefinitionLanguage.g:2017:2: ( ( () otherlv_1= 'data' ) )
+            // InternalDefinitionLanguage.g:2018:2: ( () otherlv_1= 'data' )
             {
-            // InternalDefinitionLanguage.g:1970:2: ( () otherlv_1= 'data' )
-            // InternalDefinitionLanguage.g:1971:3: () otherlv_1= 'data'
+            // InternalDefinitionLanguage.g:2018:2: ( () otherlv_1= 'data' )
+            // InternalDefinitionLanguage.g:2019:3: () otherlv_1= 'data'
             {
-            // InternalDefinitionLanguage.g:1971:3: ()
-            // InternalDefinitionLanguage.g:1972:4: 
+            // InternalDefinitionLanguage.g:2019:3: ()
+            // InternalDefinitionLanguage.g:2020:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5375,7 +5479,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            otherlv_1=(Token)match(input,45,FOLLOW_2); 
+            otherlv_1=(Token)match(input,44,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getDataTypeRuleAccess().getDataKeyword_1());
             		
@@ -5402,7 +5506,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalDefinitionLanguage.g:1986:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalDefinitionLanguage.g:2034:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5410,8 +5514,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:1986:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalDefinitionLanguage.g:1987:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalDefinitionLanguage.g:2034:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalDefinitionLanguage.g:2035:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
              newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5438,7 +5542,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalDefinitionLanguage.g:1993:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalDefinitionLanguage.g:2041:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5450,21 +5554,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:1999:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalDefinitionLanguage.g:2000:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalDefinitionLanguage.g:2047:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalDefinitionLanguage.g:2048:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalDefinitionLanguage.g:2000:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalDefinitionLanguage.g:2001:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:2048:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalDefinitionLanguage.g:2049:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,46,FOLLOW_25); 
+            otherlv_0=(Token)match(input,45,FOLLOW_25); 
 
             			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
             		
-            // InternalDefinitionLanguage.g:2005:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:2006:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2053:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:2054:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:2006:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalDefinitionLanguage.g:2007:5: lv_elements_1_0= ruleTypeRule
+            // InternalDefinitionLanguage.g:2054:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2055:5: lv_elements_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0());
@@ -5514,7 +5618,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleFunctionDefinitionRule"
-    // InternalDefinitionLanguage.g:2028:1: entryRuleFunctionDefinitionRule returns [EObject current=null] : iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF ;
+    // InternalDefinitionLanguage.g:2076:1: entryRuleFunctionDefinitionRule returns [EObject current=null] : iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF ;
     public final EObject entryRuleFunctionDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5522,8 +5626,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:2028:63: (iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF )
-            // InternalDefinitionLanguage.g:2029:2: iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF
+            // InternalDefinitionLanguage.g:2076:63: (iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:2077:2: iv_ruleFunctionDefinitionRule= ruleFunctionDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5550,7 +5654,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleFunctionDefinitionRule"
-    // InternalDefinitionLanguage.g:2035:1: ruleFunctionDefinitionRule returns [EObject current=null] : (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' ) ;
+    // InternalDefinitionLanguage.g:2083:1: ruleFunctionDefinitionRule returns [EObject current=null] : (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' ) ;
     public final EObject ruleFunctionDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5572,21 +5676,21 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2041:2: ( (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' ) )
-            // InternalDefinitionLanguage.g:2042:2: (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' )
+            // InternalDefinitionLanguage.g:2089:2: ( (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' ) )
+            // InternalDefinitionLanguage.g:2090:2: (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' )
             {
-            // InternalDefinitionLanguage.g:2042:2: (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' )
-            // InternalDefinitionLanguage.g:2043:3: otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';'
+            // InternalDefinitionLanguage.g:2090:2: (otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';' )
+            // InternalDefinitionLanguage.g:2091:3: otherlv_0= 'def' ( (lv_type_1_0= ruleTypeRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= '(' ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )? otherlv_7= ')' otherlv_8= ';'
             {
-            otherlv_0=(Token)match(input,47,FOLLOW_25); 
+            otherlv_0=(Token)match(input,46,FOLLOW_25); 
 
             			newLeafNode(otherlv_0, grammarAccess.getFunctionDefinitionRuleAccess().getDefKeyword_0());
             		
-            // InternalDefinitionLanguage.g:2047:3: ( (lv_type_1_0= ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:2048:4: (lv_type_1_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2095:3: ( (lv_type_1_0= ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:2096:4: (lv_type_1_0= ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:2048:4: (lv_type_1_0= ruleTypeRule )
-            // InternalDefinitionLanguage.g:2049:5: lv_type_1_0= ruleTypeRule
+            // InternalDefinitionLanguage.g:2096:4: (lv_type_1_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2097:5: lv_type_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getFunctionDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_1_0());
@@ -5613,11 +5717,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:2066:3: ( (lv_name_2_0= ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:2067:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:2114:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:2115:4: (lv_name_2_0= ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:2067:4: (lv_name_2_0= ruleStringOrId )
-            // InternalDefinitionLanguage.g:2068:5: lv_name_2_0= ruleStringOrId
+            // InternalDefinitionLanguage.g:2115:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:2116:5: lv_name_2_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getFunctionDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
@@ -5648,22 +5752,22 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             			newLeafNode(otherlv_3, grammarAccess.getFunctionDefinitionRuleAccess().getLeftParenthesisKeyword_3());
             		
-            // InternalDefinitionLanguage.g:2089:3: ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )?
+            // InternalDefinitionLanguage.g:2137:3: ( ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )* )?
             int alt27=2;
             int LA27_0 = input.LA(1);
 
-            if ( ((LA27_0>=36 && LA27_0<=37)||(LA27_0>=39 && LA27_0<=46)) ) {
+            if ( ((LA27_0>=35 && LA27_0<=36)||(LA27_0>=38 && LA27_0<=45)) ) {
                 alt27=1;
             }
             switch (alt27) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2090:4: ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )*
+                    // InternalDefinitionLanguage.g:2138:4: ( (lv_parameters_4_0= ruleParameterRule ) ) (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )*
                     {
-                    // InternalDefinitionLanguage.g:2090:4: ( (lv_parameters_4_0= ruleParameterRule ) )
-                    // InternalDefinitionLanguage.g:2091:5: (lv_parameters_4_0= ruleParameterRule )
+                    // InternalDefinitionLanguage.g:2138:4: ( (lv_parameters_4_0= ruleParameterRule ) )
+                    // InternalDefinitionLanguage.g:2139:5: (lv_parameters_4_0= ruleParameterRule )
                     {
-                    // InternalDefinitionLanguage.g:2091:5: (lv_parameters_4_0= ruleParameterRule )
-                    // InternalDefinitionLanguage.g:2092:6: lv_parameters_4_0= ruleParameterRule
+                    // InternalDefinitionLanguage.g:2139:5: (lv_parameters_4_0= ruleParameterRule )
+                    // InternalDefinitionLanguage.g:2140:6: lv_parameters_4_0= ruleParameterRule
                     {
 
                     						newCompositeNode(grammarAccess.getFunctionDefinitionRuleAccess().getParametersParameterRuleParserRuleCall_4_0_0());
@@ -5690,7 +5794,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                     }
 
-                    // InternalDefinitionLanguage.g:2109:4: (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )*
+                    // InternalDefinitionLanguage.g:2157:4: (otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) ) )*
                     loop26:
                     do {
                         int alt26=2;
@@ -5703,17 +5807,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                         switch (alt26) {
                     	case 1 :
-                    	    // InternalDefinitionLanguage.g:2110:5: otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) )
+                    	    // InternalDefinitionLanguage.g:2158:5: otherlv_5= ',' ( (lv_parameters_6_0= ruleParameterRule ) )
                     	    {
                     	    otherlv_5=(Token)match(input,27,FOLLOW_25); 
 
                     	    					newLeafNode(otherlv_5, grammarAccess.getFunctionDefinitionRuleAccess().getCommaKeyword_4_1_0());
                     	    				
-                    	    // InternalDefinitionLanguage.g:2114:5: ( (lv_parameters_6_0= ruleParameterRule ) )
-                    	    // InternalDefinitionLanguage.g:2115:6: (lv_parameters_6_0= ruleParameterRule )
+                    	    // InternalDefinitionLanguage.g:2162:5: ( (lv_parameters_6_0= ruleParameterRule ) )
+                    	    // InternalDefinitionLanguage.g:2163:6: (lv_parameters_6_0= ruleParameterRule )
                     	    {
-                    	    // InternalDefinitionLanguage.g:2115:6: (lv_parameters_6_0= ruleParameterRule )
-                    	    // InternalDefinitionLanguage.g:2116:7: lv_parameters_6_0= ruleParameterRule
+                    	    // InternalDefinitionLanguage.g:2163:6: (lv_parameters_6_0= ruleParameterRule )
+                    	    // InternalDefinitionLanguage.g:2164:7: lv_parameters_6_0= ruleParameterRule
                     	    {
 
                     	    							newCompositeNode(grammarAccess.getFunctionDefinitionRuleAccess().getParametersParameterRuleParserRuleCall_4_1_1_0());
@@ -5785,8 +5889,191 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
     // $ANTLR end "ruleFunctionDefinitionRule"
 
 
+    // $ANTLR start "entryRuleConstantDefinitionRule"
+    // InternalDefinitionLanguage.g:2195:1: entryRuleConstantDefinitionRule returns [EObject current=null] : iv_ruleConstantDefinitionRule= ruleConstantDefinitionRule EOF ;
+    public final EObject entryRuleConstantDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantDefinitionRule = null;
+
+
+        try {
+            // InternalDefinitionLanguage.g:2195:63: (iv_ruleConstantDefinitionRule= ruleConstantDefinitionRule EOF )
+            // InternalDefinitionLanguage.g:2196:2: iv_ruleConstantDefinitionRule= ruleConstantDefinitionRule EOF
+            {
+             newCompositeNode(grammarAccess.getConstantDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantDefinitionRule=ruleConstantDefinitionRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantDefinitionRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantDefinitionRule"
+
+
+    // $ANTLR start "ruleConstantDefinitionRule"
+    // InternalDefinitionLanguage.g:2202:1: ruleConstantDefinitionRule returns [EObject current=null] : (otherlv_0= 'const' ( (lv_type_1_0= ruleTypeDefinitionRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= ':=' ( (lv_value_4_0= ruleExpressionRule ) ) ) ;
+    public final EObject ruleConstantDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token otherlv_0=null;
+        Token otherlv_3=null;
+        EObject lv_type_1_0 = null;
+
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_value_4_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalDefinitionLanguage.g:2208:2: ( (otherlv_0= 'const' ( (lv_type_1_0= ruleTypeDefinitionRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= ':=' ( (lv_value_4_0= ruleExpressionRule ) ) ) )
+            // InternalDefinitionLanguage.g:2209:2: (otherlv_0= 'const' ( (lv_type_1_0= ruleTypeDefinitionRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= ':=' ( (lv_value_4_0= ruleExpressionRule ) ) )
+            {
+            // InternalDefinitionLanguage.g:2209:2: (otherlv_0= 'const' ( (lv_type_1_0= ruleTypeDefinitionRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= ':=' ( (lv_value_4_0= ruleExpressionRule ) ) )
+            // InternalDefinitionLanguage.g:2210:3: otherlv_0= 'const' ( (lv_type_1_0= ruleTypeDefinitionRule ) ) ( (lv_name_2_0= ruleStringOrId ) ) otherlv_3= ':=' ( (lv_value_4_0= ruleExpressionRule ) )
+            {
+            otherlv_0=(Token)match(input,47,FOLLOW_29); 
+
+            			newLeafNode(otherlv_0, grammarAccess.getConstantDefinitionRuleAccess().getConstKeyword_0());
+            		
+            // InternalDefinitionLanguage.g:2214:3: ( (lv_type_1_0= ruleTypeDefinitionRule ) )
+            // InternalDefinitionLanguage.g:2215:4: (lv_type_1_0= ruleTypeDefinitionRule )
+            {
+            // InternalDefinitionLanguage.g:2215:4: (lv_type_1_0= ruleTypeDefinitionRule )
+            // InternalDefinitionLanguage.g:2216:5: lv_type_1_0= ruleTypeDefinitionRule
+            {
+
+            					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getTypeTypeDefinitionRuleParserRuleCall_1_0());
+            				
+            pushFollow(FOLLOW_4);
+            lv_type_1_0=ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"type",
+            						lv_type_1_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.TypeDefinitionRule");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalDefinitionLanguage.g:2233:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:2234:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalDefinitionLanguage.g:2234:4: (lv_name_2_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:2235:5: lv_name_2_0= ruleStringOrId
+            {
+
+            					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_30);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"name",
+            						lv_name_2_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            otherlv_3=(Token)match(input,34,FOLLOW_9); 
+
+            			newLeafNode(otherlv_3, grammarAccess.getConstantDefinitionRuleAccess().getColonEqualsSignKeyword_3());
+            		
+            // InternalDefinitionLanguage.g:2256:3: ( (lv_value_4_0= ruleExpressionRule ) )
+            // InternalDefinitionLanguage.g:2257:4: (lv_value_4_0= ruleExpressionRule )
+            {
+            // InternalDefinitionLanguage.g:2257:4: (lv_value_4_0= ruleExpressionRule )
+            // InternalDefinitionLanguage.g:2258:5: lv_value_4_0= ruleExpressionRule
+            {
+
+            					newCompositeNode(grammarAccess.getConstantDefinitionRuleAccess().getValueExpressionRuleParserRuleCall_4_0());
+            				
+            pushFollow(FOLLOW_2);
+            lv_value_4_0=ruleExpressionRule();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getConstantDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"value",
+            						lv_value_4_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.ExpressionRule");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConstantDefinitionRule"
+
+
     // $ANTLR start "entryRuleParameterRule"
-    // InternalDefinitionLanguage.g:2147:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalDefinitionLanguage.g:2279:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -5794,8 +6081,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:2147:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalDefinitionLanguage.g:2148:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalDefinitionLanguage.g:2279:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalDefinitionLanguage.g:2280:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
              newCompositeNode(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5822,7 +6109,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalDefinitionLanguage.g:2154:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalDefinitionLanguage.g:2286:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -5835,17 +6122,17 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2160:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalDefinitionLanguage.g:2161:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalDefinitionLanguage.g:2292:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalDefinitionLanguage.g:2293:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalDefinitionLanguage.g:2161:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalDefinitionLanguage.g:2162:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:2293:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalDefinitionLanguage.g:2294:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalDefinitionLanguage.g:2162:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalDefinitionLanguage.g:2163:4: (lv_type_0_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2294:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalDefinitionLanguage.g:2295:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalDefinitionLanguage.g:2163:4: (lv_type_0_0= ruleTypeRule )
-            // InternalDefinitionLanguage.g:2164:5: lv_type_0_0= ruleTypeRule
+            // InternalDefinitionLanguage.g:2295:4: (lv_type_0_0= ruleTypeRule )
+            // InternalDefinitionLanguage.g:2296:5: lv_type_0_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0());
@@ -5872,11 +6159,11 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             }
 
-            // InternalDefinitionLanguage.g:2181:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalDefinitionLanguage.g:2182:4: (lv_name_1_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:2313:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalDefinitionLanguage.g:2314:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalDefinitionLanguage.g:2182:4: (lv_name_1_0= ruleStringOrId )
-            // InternalDefinitionLanguage.g:2183:5: lv_name_1_0= ruleStringOrId
+            // InternalDefinitionLanguage.g:2314:4: (lv_name_1_0= ruleStringOrId )
+            // InternalDefinitionLanguage.g:2315:5: lv_name_1_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0());
@@ -5926,7 +6213,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalDefinitionLanguage.g:2204:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalDefinitionLanguage.g:2336:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -5934,8 +6221,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:2204:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalDefinitionLanguage.g:2205:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalDefinitionLanguage.g:2336:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalDefinitionLanguage.g:2337:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5962,7 +6249,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalDefinitionLanguage.g:2211:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalDefinitionLanguage.g:2343:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -5970,14 +6257,14 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2217:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalDefinitionLanguage.g:2218:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:2349:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalDefinitionLanguage.g:2350:2: ( ( ruleQualifiedName ) )
             {
-            // InternalDefinitionLanguage.g:2218:2: ( ( ruleQualifiedName ) )
-            // InternalDefinitionLanguage.g:2219:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:2350:2: ( ( ruleQualifiedName ) )
+            // InternalDefinitionLanguage.g:2351:3: ( ruleQualifiedName )
             {
-            // InternalDefinitionLanguage.g:2219:3: ( ruleQualifiedName )
-            // InternalDefinitionLanguage.g:2220:4: ruleQualifiedName
+            // InternalDefinitionLanguage.g:2351:3: ( ruleQualifiedName )
+            // InternalDefinitionLanguage.g:2352:4: ruleQualifiedName
             {
 
             				if (current==null) {
@@ -6021,7 +6308,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalDefinitionLanguage.g:2237:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalDefinitionLanguage.g:2369:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -6029,8 +6316,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:2237:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalDefinitionLanguage.g:2238:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalDefinitionLanguage.g:2369:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalDefinitionLanguage.g:2370:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
              newCompositeNode(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -6057,7 +6344,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalDefinitionLanguage.g:2244:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalDefinitionLanguage.g:2376:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6071,16 +6358,16 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2250:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalDefinitionLanguage.g:2251:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalDefinitionLanguage.g:2382:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalDefinitionLanguage.g:2383:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalDefinitionLanguage.g:2251:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalDefinitionLanguage.g:2252:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalDefinitionLanguage.g:2383:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalDefinitionLanguage.g:2384:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
 
             			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
             		
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_31);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -6091,7 +6378,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             			afterParserOrEnumRuleCall();
             		
-            // InternalDefinitionLanguage.g:2262:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalDefinitionLanguage.g:2394:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
             loop28:
             do {
                 int alt28=2;
@@ -6104,7 +6391,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
                 switch (alt28) {
             	case 1 :
-            	    // InternalDefinitionLanguage.g:2263:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalDefinitionLanguage.g:2395:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
             	    kw=(Token)match(input,48,FOLLOW_4); 
 
@@ -6114,7 +6401,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             	    				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	    			
-            	    pushFollow(FOLLOW_29);
+            	    pushFollow(FOLLOW_31);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -6157,7 +6444,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalDefinitionLanguage.g:2283:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalDefinitionLanguage.g:2415:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -6165,8 +6452,8 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
         try {
-            // InternalDefinitionLanguage.g:2283:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalDefinitionLanguage.g:2284:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalDefinitionLanguage.g:2415:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalDefinitionLanguage.g:2416:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
              newCompositeNode(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -6193,7 +6480,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalDefinitionLanguage.g:2290:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalDefinitionLanguage.g:2422:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6204,10 +6491,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2296:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalDefinitionLanguage.g:2297:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalDefinitionLanguage.g:2428:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalDefinitionLanguage.g:2429:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalDefinitionLanguage.g:2297:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalDefinitionLanguage.g:2429:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             int alt29=2;
             int LA29_0 = input.LA(1);
 
@@ -6225,7 +6512,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt29) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2298:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalDefinitionLanguage.g:2430:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 
 
@@ -6238,7 +6525,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2306:3: this_ID_1= RULE_ID
+                    // InternalDefinitionLanguage.g:2438:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -6273,7 +6560,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalDefinitionLanguage.g:2317:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalDefinitionLanguage.g:2449:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6288,10 +6575,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2323:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalDefinitionLanguage.g:2324:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalDefinitionLanguage.g:2455:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalDefinitionLanguage.g:2456:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalDefinitionLanguage.g:2324:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalDefinitionLanguage.g:2456:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             int alt30=6;
             switch ( input.LA(1) ) {
             case 49:
@@ -6333,10 +6620,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             switch (alt30) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2325:3: (enumLiteral_0= '>=' )
+                    // InternalDefinitionLanguage.g:2457:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalDefinitionLanguage.g:2325:3: (enumLiteral_0= '>=' )
-                    // InternalDefinitionLanguage.g:2326:4: enumLiteral_0= '>='
+                    // InternalDefinitionLanguage.g:2457:3: (enumLiteral_0= '>=' )
+                    // InternalDefinitionLanguage.g:2458:4: enumLiteral_0= '>='
                     {
                     enumLiteral_0=(Token)match(input,49,FOLLOW_2); 
 
@@ -6350,10 +6637,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2333:3: (enumLiteral_1= '>' )
+                    // InternalDefinitionLanguage.g:2465:3: (enumLiteral_1= '>' )
                     {
-                    // InternalDefinitionLanguage.g:2333:3: (enumLiteral_1= '>' )
-                    // InternalDefinitionLanguage.g:2334:4: enumLiteral_1= '>'
+                    // InternalDefinitionLanguage.g:2465:3: (enumLiteral_1= '>' )
+                    // InternalDefinitionLanguage.g:2466:4: enumLiteral_1= '>'
                     {
                     enumLiteral_1=(Token)match(input,50,FOLLOW_2); 
 
@@ -6367,10 +6654,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:2341:3: (enumLiteral_2= '=' )
+                    // InternalDefinitionLanguage.g:2473:3: (enumLiteral_2= '=' )
                     {
-                    // InternalDefinitionLanguage.g:2341:3: (enumLiteral_2= '=' )
-                    // InternalDefinitionLanguage.g:2342:4: enumLiteral_2= '='
+                    // InternalDefinitionLanguage.g:2473:3: (enumLiteral_2= '=' )
+                    // InternalDefinitionLanguage.g:2474:4: enumLiteral_2= '='
                     {
                     enumLiteral_2=(Token)match(input,51,FOLLOW_2); 
 
@@ -6384,10 +6671,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:2349:3: (enumLiteral_3= '!=' )
+                    // InternalDefinitionLanguage.g:2481:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalDefinitionLanguage.g:2349:3: (enumLiteral_3= '!=' )
-                    // InternalDefinitionLanguage.g:2350:4: enumLiteral_3= '!='
+                    // InternalDefinitionLanguage.g:2481:3: (enumLiteral_3= '!=' )
+                    // InternalDefinitionLanguage.g:2482:4: enumLiteral_3= '!='
                     {
                     enumLiteral_3=(Token)match(input,52,FOLLOW_2); 
 
@@ -6401,10 +6688,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:2357:3: (enumLiteral_4= '<' )
+                    // InternalDefinitionLanguage.g:2489:3: (enumLiteral_4= '<' )
                     {
-                    // InternalDefinitionLanguage.g:2357:3: (enumLiteral_4= '<' )
-                    // InternalDefinitionLanguage.g:2358:4: enumLiteral_4= '<'
+                    // InternalDefinitionLanguage.g:2489:3: (enumLiteral_4= '<' )
+                    // InternalDefinitionLanguage.g:2490:4: enumLiteral_4= '<'
                     {
                     enumLiteral_4=(Token)match(input,53,FOLLOW_2); 
 
@@ -6418,10 +6705,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:2365:3: (enumLiteral_5= '<=' )
+                    // InternalDefinitionLanguage.g:2497:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalDefinitionLanguage.g:2365:3: (enumLiteral_5= '<=' )
-                    // InternalDefinitionLanguage.g:2366:4: enumLiteral_5= '<='
+                    // InternalDefinitionLanguage.g:2497:3: (enumLiteral_5= '<=' )
+                    // InternalDefinitionLanguage.g:2498:4: enumLiteral_5= '<='
                     {
                     enumLiteral_5=(Token)match(input,54,FOLLOW_2); 
 
@@ -6457,7 +6744,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalDefinitionLanguage.g:2376:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalDefinitionLanguage.g:2508:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6468,10 +6755,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2382:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalDefinitionLanguage.g:2383:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalDefinitionLanguage.g:2514:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalDefinitionLanguage.g:2515:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalDefinitionLanguage.g:2383:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalDefinitionLanguage.g:2515:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             int alt31=2;
             int LA31_0 = input.LA(1);
 
@@ -6489,10 +6776,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
             }
             switch (alt31) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2384:3: (enumLiteral_0= '+' )
+                    // InternalDefinitionLanguage.g:2516:3: (enumLiteral_0= '+' )
                     {
-                    // InternalDefinitionLanguage.g:2384:3: (enumLiteral_0= '+' )
-                    // InternalDefinitionLanguage.g:2385:4: enumLiteral_0= '+'
+                    // InternalDefinitionLanguage.g:2516:3: (enumLiteral_0= '+' )
+                    // InternalDefinitionLanguage.g:2517:4: enumLiteral_0= '+'
                     {
                     enumLiteral_0=(Token)match(input,55,FOLLOW_2); 
 
@@ -6506,10 +6793,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2392:3: (enumLiteral_1= '-' )
+                    // InternalDefinitionLanguage.g:2524:3: (enumLiteral_1= '-' )
                     {
-                    // InternalDefinitionLanguage.g:2392:3: (enumLiteral_1= '-' )
-                    // InternalDefinitionLanguage.g:2393:4: enumLiteral_1= '-'
+                    // InternalDefinitionLanguage.g:2524:3: (enumLiteral_1= '-' )
+                    // InternalDefinitionLanguage.g:2525:4: enumLiteral_1= '-'
                     {
                     enumLiteral_1=(Token)match(input,56,FOLLOW_2); 
 
@@ -6545,7 +6832,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalDefinitionLanguage.g:2403:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalDefinitionLanguage.g:2535:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6557,10 +6844,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2409:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalDefinitionLanguage.g:2410:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalDefinitionLanguage.g:2541:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalDefinitionLanguage.g:2542:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalDefinitionLanguage.g:2410:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalDefinitionLanguage.g:2542:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             int alt32=3;
             switch ( input.LA(1) ) {
             case 57:
@@ -6587,10 +6874,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             switch (alt32) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2411:3: (enumLiteral_0= '*' )
+                    // InternalDefinitionLanguage.g:2543:3: (enumLiteral_0= '*' )
                     {
-                    // InternalDefinitionLanguage.g:2411:3: (enumLiteral_0= '*' )
-                    // InternalDefinitionLanguage.g:2412:4: enumLiteral_0= '*'
+                    // InternalDefinitionLanguage.g:2543:3: (enumLiteral_0= '*' )
+                    // InternalDefinitionLanguage.g:2544:4: enumLiteral_0= '*'
                     {
                     enumLiteral_0=(Token)match(input,57,FOLLOW_2); 
 
@@ -6604,10 +6891,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2419:3: (enumLiteral_1= '/' )
+                    // InternalDefinitionLanguage.g:2551:3: (enumLiteral_1= '/' )
                     {
-                    // InternalDefinitionLanguage.g:2419:3: (enumLiteral_1= '/' )
-                    // InternalDefinitionLanguage.g:2420:4: enumLiteral_1= '/'
+                    // InternalDefinitionLanguage.g:2551:3: (enumLiteral_1= '/' )
+                    // InternalDefinitionLanguage.g:2552:4: enumLiteral_1= '/'
                     {
                     enumLiteral_1=(Token)match(input,58,FOLLOW_2); 
 
@@ -6621,10 +6908,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:2427:3: (enumLiteral_2= '%' )
+                    // InternalDefinitionLanguage.g:2559:3: (enumLiteral_2= '%' )
                     {
-                    // InternalDefinitionLanguage.g:2427:3: (enumLiteral_2= '%' )
-                    // InternalDefinitionLanguage.g:2428:4: enumLiteral_2= '%'
+                    // InternalDefinitionLanguage.g:2559:3: (enumLiteral_2= '%' )
+                    // InternalDefinitionLanguage.g:2560:4: enumLiteral_2= '%'
                     {
                     enumLiteral_2=(Token)match(input,59,FOLLOW_2); 
 
@@ -6660,7 +6947,7 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalDefinitionLanguage.g:2438:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalDefinitionLanguage.g:2570:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6689,10 +6976,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
         	enterRule();
 
         try {
-            // InternalDefinitionLanguage.g:2444:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalDefinitionLanguage.g:2445:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalDefinitionLanguage.g:2576:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalDefinitionLanguage.g:2577:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalDefinitionLanguage.g:2445:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalDefinitionLanguage.g:2577:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             int alt33=20;
             switch ( input.LA(1) ) {
             case 60:
@@ -6804,10 +7091,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
 
             switch (alt33) {
                 case 1 :
-                    // InternalDefinitionLanguage.g:2446:3: (enumLiteral_0= 'Y' )
+                    // InternalDefinitionLanguage.g:2578:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalDefinitionLanguage.g:2446:3: (enumLiteral_0= 'Y' )
-                    // InternalDefinitionLanguage.g:2447:4: enumLiteral_0= 'Y'
+                    // InternalDefinitionLanguage.g:2578:3: (enumLiteral_0= 'Y' )
+                    // InternalDefinitionLanguage.g:2579:4: enumLiteral_0= 'Y'
                     {
                     enumLiteral_0=(Token)match(input,60,FOLLOW_2); 
 
@@ -6821,10 +7108,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 2 :
-                    // InternalDefinitionLanguage.g:2454:3: (enumLiteral_1= 'Z' )
+                    // InternalDefinitionLanguage.g:2586:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalDefinitionLanguage.g:2454:3: (enumLiteral_1= 'Z' )
-                    // InternalDefinitionLanguage.g:2455:4: enumLiteral_1= 'Z'
+                    // InternalDefinitionLanguage.g:2586:3: (enumLiteral_1= 'Z' )
+                    // InternalDefinitionLanguage.g:2587:4: enumLiteral_1= 'Z'
                     {
                     enumLiteral_1=(Token)match(input,61,FOLLOW_2); 
 
@@ -6838,10 +7125,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 3 :
-                    // InternalDefinitionLanguage.g:2462:3: (enumLiteral_2= 'E' )
+                    // InternalDefinitionLanguage.g:2594:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalDefinitionLanguage.g:2462:3: (enumLiteral_2= 'E' )
-                    // InternalDefinitionLanguage.g:2463:4: enumLiteral_2= 'E'
+                    // InternalDefinitionLanguage.g:2594:3: (enumLiteral_2= 'E' )
+                    // InternalDefinitionLanguage.g:2595:4: enumLiteral_2= 'E'
                     {
                     enumLiteral_2=(Token)match(input,62,FOLLOW_2); 
 
@@ -6855,10 +7142,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 4 :
-                    // InternalDefinitionLanguage.g:2470:3: (enumLiteral_3= 'P' )
+                    // InternalDefinitionLanguage.g:2602:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalDefinitionLanguage.g:2470:3: (enumLiteral_3= 'P' )
-                    // InternalDefinitionLanguage.g:2471:4: enumLiteral_3= 'P'
+                    // InternalDefinitionLanguage.g:2602:3: (enumLiteral_3= 'P' )
+                    // InternalDefinitionLanguage.g:2603:4: enumLiteral_3= 'P'
                     {
                     enumLiteral_3=(Token)match(input,63,FOLLOW_2); 
 
@@ -6872,10 +7159,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 5 :
-                    // InternalDefinitionLanguage.g:2478:3: (enumLiteral_4= 'T' )
+                    // InternalDefinitionLanguage.g:2610:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalDefinitionLanguage.g:2478:3: (enumLiteral_4= 'T' )
-                    // InternalDefinitionLanguage.g:2479:4: enumLiteral_4= 'T'
+                    // InternalDefinitionLanguage.g:2610:3: (enumLiteral_4= 'T' )
+                    // InternalDefinitionLanguage.g:2611:4: enumLiteral_4= 'T'
                     {
                     enumLiteral_4=(Token)match(input,64,FOLLOW_2); 
 
@@ -6889,10 +7176,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 6 :
-                    // InternalDefinitionLanguage.g:2486:3: (enumLiteral_5= 'G' )
+                    // InternalDefinitionLanguage.g:2618:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalDefinitionLanguage.g:2486:3: (enumLiteral_5= 'G' )
-                    // InternalDefinitionLanguage.g:2487:4: enumLiteral_5= 'G'
+                    // InternalDefinitionLanguage.g:2618:3: (enumLiteral_5= 'G' )
+                    // InternalDefinitionLanguage.g:2619:4: enumLiteral_5= 'G'
                     {
                     enumLiteral_5=(Token)match(input,65,FOLLOW_2); 
 
@@ -6906,10 +7193,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 7 :
-                    // InternalDefinitionLanguage.g:2494:3: (enumLiteral_6= 'M' )
+                    // InternalDefinitionLanguage.g:2626:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalDefinitionLanguage.g:2494:3: (enumLiteral_6= 'M' )
-                    // InternalDefinitionLanguage.g:2495:4: enumLiteral_6= 'M'
+                    // InternalDefinitionLanguage.g:2626:3: (enumLiteral_6= 'M' )
+                    // InternalDefinitionLanguage.g:2627:4: enumLiteral_6= 'M'
                     {
                     enumLiteral_6=(Token)match(input,66,FOLLOW_2); 
 
@@ -6923,10 +7210,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 8 :
-                    // InternalDefinitionLanguage.g:2502:3: (enumLiteral_7= 'k' )
+                    // InternalDefinitionLanguage.g:2634:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalDefinitionLanguage.g:2502:3: (enumLiteral_7= 'k' )
-                    // InternalDefinitionLanguage.g:2503:4: enumLiteral_7= 'k'
+                    // InternalDefinitionLanguage.g:2634:3: (enumLiteral_7= 'k' )
+                    // InternalDefinitionLanguage.g:2635:4: enumLiteral_7= 'k'
                     {
                     enumLiteral_7=(Token)match(input,67,FOLLOW_2); 
 
@@ -6940,10 +7227,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 9 :
-                    // InternalDefinitionLanguage.g:2510:3: (enumLiteral_8= 'h' )
+                    // InternalDefinitionLanguage.g:2642:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalDefinitionLanguage.g:2510:3: (enumLiteral_8= 'h' )
-                    // InternalDefinitionLanguage.g:2511:4: enumLiteral_8= 'h'
+                    // InternalDefinitionLanguage.g:2642:3: (enumLiteral_8= 'h' )
+                    // InternalDefinitionLanguage.g:2643:4: enumLiteral_8= 'h'
                     {
                     enumLiteral_8=(Token)match(input,68,FOLLOW_2); 
 
@@ -6957,10 +7244,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 10 :
-                    // InternalDefinitionLanguage.g:2518:3: (enumLiteral_9= 'da' )
+                    // InternalDefinitionLanguage.g:2650:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalDefinitionLanguage.g:2518:3: (enumLiteral_9= 'da' )
-                    // InternalDefinitionLanguage.g:2519:4: enumLiteral_9= 'da'
+                    // InternalDefinitionLanguage.g:2650:3: (enumLiteral_9= 'da' )
+                    // InternalDefinitionLanguage.g:2651:4: enumLiteral_9= 'da'
                     {
                     enumLiteral_9=(Token)match(input,69,FOLLOW_2); 
 
@@ -6974,10 +7261,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 11 :
-                    // InternalDefinitionLanguage.g:2526:3: (enumLiteral_10= 'd' )
+                    // InternalDefinitionLanguage.g:2658:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalDefinitionLanguage.g:2526:3: (enumLiteral_10= 'd' )
-                    // InternalDefinitionLanguage.g:2527:4: enumLiteral_10= 'd'
+                    // InternalDefinitionLanguage.g:2658:3: (enumLiteral_10= 'd' )
+                    // InternalDefinitionLanguage.g:2659:4: enumLiteral_10= 'd'
                     {
                     enumLiteral_10=(Token)match(input,70,FOLLOW_2); 
 
@@ -6991,10 +7278,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 12 :
-                    // InternalDefinitionLanguage.g:2534:3: (enumLiteral_11= 'c' )
+                    // InternalDefinitionLanguage.g:2666:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalDefinitionLanguage.g:2534:3: (enumLiteral_11= 'c' )
-                    // InternalDefinitionLanguage.g:2535:4: enumLiteral_11= 'c'
+                    // InternalDefinitionLanguage.g:2666:3: (enumLiteral_11= 'c' )
+                    // InternalDefinitionLanguage.g:2667:4: enumLiteral_11= 'c'
                     {
                     enumLiteral_11=(Token)match(input,71,FOLLOW_2); 
 
@@ -7008,10 +7295,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 13 :
-                    // InternalDefinitionLanguage.g:2542:3: (enumLiteral_12= 'm' )
+                    // InternalDefinitionLanguage.g:2674:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalDefinitionLanguage.g:2542:3: (enumLiteral_12= 'm' )
-                    // InternalDefinitionLanguage.g:2543:4: enumLiteral_12= 'm'
+                    // InternalDefinitionLanguage.g:2674:3: (enumLiteral_12= 'm' )
+                    // InternalDefinitionLanguage.g:2675:4: enumLiteral_12= 'm'
                     {
                     enumLiteral_12=(Token)match(input,72,FOLLOW_2); 
 
@@ -7025,10 +7312,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 14 :
-                    // InternalDefinitionLanguage.g:2550:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalDefinitionLanguage.g:2682:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalDefinitionLanguage.g:2550:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalDefinitionLanguage.g:2551:4: enumLiteral_13= '\\u00B5'
+                    // InternalDefinitionLanguage.g:2682:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalDefinitionLanguage.g:2683:4: enumLiteral_13= '\\u00B5'
                     {
                     enumLiteral_13=(Token)match(input,73,FOLLOW_2); 
 
@@ -7042,10 +7329,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 15 :
-                    // InternalDefinitionLanguage.g:2558:3: (enumLiteral_14= 'n' )
+                    // InternalDefinitionLanguage.g:2690:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalDefinitionLanguage.g:2558:3: (enumLiteral_14= 'n' )
-                    // InternalDefinitionLanguage.g:2559:4: enumLiteral_14= 'n'
+                    // InternalDefinitionLanguage.g:2690:3: (enumLiteral_14= 'n' )
+                    // InternalDefinitionLanguage.g:2691:4: enumLiteral_14= 'n'
                     {
                     enumLiteral_14=(Token)match(input,74,FOLLOW_2); 
 
@@ -7059,10 +7346,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 16 :
-                    // InternalDefinitionLanguage.g:2566:3: (enumLiteral_15= 'p' )
+                    // InternalDefinitionLanguage.g:2698:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalDefinitionLanguage.g:2566:3: (enumLiteral_15= 'p' )
-                    // InternalDefinitionLanguage.g:2567:4: enumLiteral_15= 'p'
+                    // InternalDefinitionLanguage.g:2698:3: (enumLiteral_15= 'p' )
+                    // InternalDefinitionLanguage.g:2699:4: enumLiteral_15= 'p'
                     {
                     enumLiteral_15=(Token)match(input,75,FOLLOW_2); 
 
@@ -7076,10 +7363,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 17 :
-                    // InternalDefinitionLanguage.g:2574:3: (enumLiteral_16= 'f' )
+                    // InternalDefinitionLanguage.g:2706:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalDefinitionLanguage.g:2574:3: (enumLiteral_16= 'f' )
-                    // InternalDefinitionLanguage.g:2575:4: enumLiteral_16= 'f'
+                    // InternalDefinitionLanguage.g:2706:3: (enumLiteral_16= 'f' )
+                    // InternalDefinitionLanguage.g:2707:4: enumLiteral_16= 'f'
                     {
                     enumLiteral_16=(Token)match(input,76,FOLLOW_2); 
 
@@ -7093,10 +7380,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 18 :
-                    // InternalDefinitionLanguage.g:2582:3: (enumLiteral_17= 'a' )
+                    // InternalDefinitionLanguage.g:2714:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalDefinitionLanguage.g:2582:3: (enumLiteral_17= 'a' )
-                    // InternalDefinitionLanguage.g:2583:4: enumLiteral_17= 'a'
+                    // InternalDefinitionLanguage.g:2714:3: (enumLiteral_17= 'a' )
+                    // InternalDefinitionLanguage.g:2715:4: enumLiteral_17= 'a'
                     {
                     enumLiteral_17=(Token)match(input,77,FOLLOW_2); 
 
@@ -7110,10 +7397,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 19 :
-                    // InternalDefinitionLanguage.g:2590:3: (enumLiteral_18= 'z' )
+                    // InternalDefinitionLanguage.g:2722:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalDefinitionLanguage.g:2590:3: (enumLiteral_18= 'z' )
-                    // InternalDefinitionLanguage.g:2591:4: enumLiteral_18= 'z'
+                    // InternalDefinitionLanguage.g:2722:3: (enumLiteral_18= 'z' )
+                    // InternalDefinitionLanguage.g:2723:4: enumLiteral_18= 'z'
                     {
                     enumLiteral_18=(Token)match(input,78,FOLLOW_2); 
 
@@ -7127,10 +7414,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
                     }
                     break;
                 case 20 :
-                    // InternalDefinitionLanguage.g:2598:3: (enumLiteral_19= 'y' )
+                    // InternalDefinitionLanguage.g:2730:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalDefinitionLanguage.g:2598:3: (enumLiteral_19= 'y' )
-                    // InternalDefinitionLanguage.g:2599:4: enumLiteral_19= 'y'
+                    // InternalDefinitionLanguage.g:2730:3: (enumLiteral_19= 'y' )
+                    // InternalDefinitionLanguage.g:2731:4: enumLiteral_19= 'y'
                     {
                     enumLiteral_19=(Token)match(input,79,FOLLOW_2); 
 
@@ -7167,6 +7454,51 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
     // Delegated rules
 
 
+    protected DFA12 dfa12 = new DFA12(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\6\5\uffff\2\6";
+    static final String dfa_3s = "\1\4\2\21\2\uffff\1\7\2\uffff\2\21";
+    static final String dfa_4s = "\1\35\2\73\2\uffff\1\10\2\uffff\2\73";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\4\1\1\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\3\3\1\1\1\2\20\uffff\1\4\2\uffff\2\3",
+            "\1\6\1\uffff\4\6\1\uffff\1\6\1\7\2\6\2\uffff\2\6\16\uffff\2\6\1\5\13\6",
+            "\1\6\1\uffff\4\6\1\uffff\1\6\1\7\2\6\2\uffff\2\6\16\uffff\2\6\1\5\13\6",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\1\6\1\uffff\4\6\1\uffff\1\6\1\7\2\6\2\uffff\2\6\16\uffff\2\6\1\5\13\6",
+            "\1\6\1\uffff\4\6\1\uffff\1\6\1\7\2\6\2\uffff\2\6\16\uffff\2\6\1\5\13\6"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA12 extends DFA {
+
+        public DFA12(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 12;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "912:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -7174,10 +7506,10 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000048000L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000000180L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000010000L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000800180020000L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0000C000C0020000L});
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000080000L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0000000000100002L});
-    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x01800000728001F0L});
+    public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x01800000328001F0L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000200002L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000400002L});
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x007E000000000002L});
@@ -7186,17 +7518,19 @@ public class InternalDefinitionLanguageParser extends AbstractInternalAntlrParse
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000001000002L});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000004000000L});
     public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0000000002000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x01800000768001F0L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x01800000368001F0L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x000000000C000000L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0xF000000000000002L,0x000000000000FFFFL});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000100000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000200010000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000080000000L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000100010000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000000020180L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00007FB000000000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000800080000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000004000000002L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x00007FB004000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0001000000000002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00003FD800000000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000400080000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000002000000002L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x00003FD804000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00000000C0000000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000400000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0001000000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/serializer/DefinitionLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/serializer/DefinitionLanguageSemanticSequencer.java
index 7f19b1e2..590c4ea4 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/serializer/DefinitionLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/serializer/DefinitionLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -34,7 +36,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.base.dsl.serializer.BaseLanguageSemanticSequencer;
@@ -90,6 +91,12 @@ public class DefinitionLanguageSemanticSequencer extends BaseLanguageSemanticSeq
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -153,9 +160,6 @@ public class DefinitionLanguageSemanticSequencer extends BaseLanguageSemanticSeq
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
@@ -182,7 +186,7 @@ public class DefinitionLanguageSemanticSequencer extends BaseLanguageSemanticSeq
 	 *     DefinitionModelRule returns DefinitionModel
 	 *
 	 * Constraint:
-	 *     (imports+=ImportRule* name=QualifiedName (types+=TypeDefinitionRule | functions+=FunctionDefinitionRule)*)
+	 *     (imports+=ImportRule* name=QualifiedName (types+=TypeDefinitionRule | functions+=FunctionDefinitionRule | constants+=ConstantDefinitionRule)*)
 	 * </pre>
 	 */
 	protected void sequence_DefinitionModelRule(ISerializationContext context, DefinitionModel semanticObject) {
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/services/DefinitionLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/services/DefinitionLanguageGrammarAccess.java
index ffbc9d54..d63cbeff 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/services/DefinitionLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src-gen/de/evoal/languages/model/dl/dsl/services/DefinitionLanguageGrammarAccess.java
@@ -39,19 +39,21 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 		private final RuleCall cTypesTypeDefinitionRuleParserRuleCall_4_0_0 = (RuleCall)cTypesAssignment_4_0.eContents().get(0);
 		private final Assignment cFunctionsAssignment_4_1 = (Assignment)cAlternatives_4.eContents().get(1);
 		private final RuleCall cFunctionsFunctionDefinitionRuleParserRuleCall_4_1_0 = (RuleCall)cFunctionsAssignment_4_1.eContents().get(0);
+		private final Assignment cConstantsAssignment_4_2 = (Assignment)cAlternatives_4.eContents().get(2);
+		private final RuleCall cConstantsConstantDefinitionRuleParserRuleCall_4_2_0 = (RuleCall)cConstantsAssignment_4_2.eContents().get(0);
 		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
 		
 		//DefinitionModelRule returns DefinitionModel:
 		//    (imports += ImportRule)*
 		//    'module' name = QualifiedName '{'
-		//        ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ))*
+		//        ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ) | constants += ConstantDefinitionRule)*
 		//    '}'
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
 		//(imports += ImportRule)*
 		//'module' name = QualifiedName '{'
-		//    ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ))*
+		//    ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ) | constants += ConstantDefinitionRule)*
 		//'}'
 		public Group getGroup() { return cGroup; }
 		
@@ -73,7 +75,7 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 		//'{'
 		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }
 		
-		//((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ))*
+		//((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ) | constants += ConstantDefinitionRule)*
 		public Alternatives getAlternatives_4() { return cAlternatives_4; }
 		
 		//(types += TypeDefinitionRule )
@@ -88,6 +90,12 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 		//FunctionDefinitionRule
 		public RuleCall getFunctionsFunctionDefinitionRuleParserRuleCall_4_1_0() { return cFunctionsFunctionDefinitionRuleParserRuleCall_4_1_0; }
 		
+		//constants += ConstantDefinitionRule
+		public Assignment getConstantsAssignment_4_2() { return cConstantsAssignment_4_2; }
+		
+		//ConstantDefinitionRule
+		public RuleCall getConstantsConstantDefinitionRuleParserRuleCall_4_2_0() { return cConstantsConstantDefinitionRuleParserRuleCall_4_2_0; }
+		
 		//'}'
 		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
 	}
@@ -175,7 +183,7 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 	//DefinitionModelRule returns DefinitionModel:
 	//    (imports += ImportRule)*
 	//    'module' name = QualifiedName '{'
-	//        ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ))*
+	//        ((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ) | constants += ConstantDefinitionRule)*
 	//    '}'
 	//;
 	public DefinitionModelRuleElements getDefinitionModelRuleAccess() {
@@ -389,7 +397,7 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public BaseLanguageGrammarAccess.ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return gaBaseLanguage.getValueReferenceRuleAccess();
@@ -399,6 +407,17 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -661,6 +680,17 @@ public class DefinitionLanguageGrammarAccess extends AbstractElementFinder.Abstr
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.dl.dsl/src/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtext b/src/languages/de.evoal.languages.model.dl.dsl/src/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtext
index f62462c3..af73c504 100644
--- a/src/languages/de.evoal.languages.model.dl.dsl/src/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtext
+++ b/src/languages/de.evoal.languages.model.dl.dsl/src/de/evoal/languages/model/dl/dsl/DefinitionLanguage.xtext
@@ -6,7 +6,7 @@ import "https://www.evoal.de/languages/dl/1.0.0"
 DefinitionModelRule returns DefinitionModel:
 	(imports += ImportRule)*
 	'module' name = QualifiedName '{'
-		((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ))*
+		((types += TypeDefinitionRule ) | (functions += FunctionDefinitionRule ) | constants += ConstantDefinitionRule)*
 	'}'
 ;
 
diff --git a/src/languages/de.evoal.languages.model.dl/model/model.ecore b/src/languages/de.evoal.languages.model.dl/model/model.ecore
index e522c4c9..2f6fcb73 100644
--- a/src/languages/de.evoal.languages.model.dl/model/model.ecore
+++ b/src/languages/de.evoal.languages.model.dl/model/model.ecore
@@ -31,6 +31,9 @@
         <details key="nullFree" value="false"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="constants" upperBound="-1"
+        eType="ecore:EClass ../../de.evoal.languages.model.base/model/model.ecore#//ConstantDefinition"
+        containment="true"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifiedName"/>
   <eClassifiers xsi:type="ecore:EClass" name="Import">
diff --git a/src/languages/de.evoal.languages.model.dl/model/model.genmodel b/src/languages/de.evoal.languages.model.dl/model/model.genmodel
index 3c07e445..9b42645d 100644
--- a/src/languages/de.evoal.languages.model.dl/model/model.genmodel
+++ b/src/languages/de.evoal.languages.model.dl/model/model.genmodel
@@ -13,6 +13,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute model.ecore#//DefinitionModel/name"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//DefinitionModel/types"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//DefinitionModel/functions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference model.ecore#//DefinitionModel/constants"/>
     </genClasses>
     <genClasses ecoreClass="model.ecore#//QualifiedName"/>
     <genClasses ecoreClass="model.ecore#//Import">
diff --git a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DefinitionModel.java b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DefinitionModel.java
index 9e5a8098..536d2121 100644
--- a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DefinitionModel.java
+++ b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DefinitionModel.java
@@ -3,6 +3,7 @@
  */
 package de.evoal.languages.model.dl;
 
+import de.evoal.languages.model.base.ConstantDefinition;
 import de.evoal.languages.model.base.FunctionDefinition;
 import de.evoal.languages.model.base.TypeDefinition;
 
@@ -28,6 +29,7 @@ import org.eclipse.emf.ecore.EObject;
  *   <li>{@link de.evoal.languages.model.dl.DefinitionModel#getName <em>Name</em>}</li>
  *   <li>{@link de.evoal.languages.model.dl.DefinitionModel#getTypes <em>Types</em>}</li>
  *   <li>{@link de.evoal.languages.model.dl.DefinitionModel#getFunctions <em>Functions</em>}</li>
+ *   <li>{@link de.evoal.languages.model.dl.DefinitionModel#getConstants <em>Constants</em>}</li>
  * </ul>
  *
  * @see de.evoal.languages.model.dl.DlPackage#getDefinitionModel()
@@ -100,4 +102,16 @@ public interface DefinitionModel extends EObject {
 	 */
 	EList<FunctionDefinition> getFunctions();
 
+	/**
+	 * Returns the value of the '<em><b>Constants</b></em>' containment reference list.
+	 * The list contents are of type {@link de.evoal.languages.model.base.ConstantDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Constants</em>' containment reference list.
+	 * @see de.evoal.languages.model.dl.DlPackage#getDefinitionModel_Constants()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ConstantDefinition> getConstants();
+
 } // DefinitionModel
diff --git a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DlPackage.java b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DlPackage.java
index e9b9af5e..16e7d4c2 100644
--- a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DlPackage.java
+++ b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/DlPackage.java
@@ -107,6 +107,15 @@ public interface DlPackage extends EPackage {
 	 */
 	int DEFINITION_MODEL__FUNCTIONS = 3;
 
+	/**
+	 * The feature id for the '<em><b>Constants</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DEFINITION_MODEL__CONSTANTS = 4;
+
 	/**
 	 * The number of structural features of the '<em>Definition Model</em>' class.
 	 * <!-- begin-user-doc -->
@@ -114,7 +123,7 @@ public interface DlPackage extends EPackage {
 	 * @generated
 	 * @ordered
 	 */
-	int DEFINITION_MODEL_FEATURE_COUNT = 4;
+	int DEFINITION_MODEL_FEATURE_COUNT = 5;
 
 	/**
 	 * The meta object id for the '{@link de.evoal.languages.model.dl.impl.QualifiedNameImpl <em>Qualified Name</em>}' class.
@@ -218,6 +227,17 @@ public interface DlPackage extends EPackage {
 	 */
 	EReference getDefinitionModel_Functions();
 
+	/**
+	 * Returns the meta object for the containment reference list '{@link de.evoal.languages.model.dl.DefinitionModel#getConstants <em>Constants</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Constants</em>'.
+	 * @see de.evoal.languages.model.dl.DefinitionModel#getConstants()
+	 * @see #getDefinitionModel()
+	 * @generated
+	 */
+	EReference getDefinitionModel_Constants();
+
 	/**
 	 * Returns the meta object for class '{@link de.evoal.languages.model.dl.QualifiedName <em>Qualified Name</em>}'.
 	 * <!-- begin-user-doc -->
@@ -313,6 +333,14 @@ public interface DlPackage extends EPackage {
 		 */
 		EReference DEFINITION_MODEL__FUNCTIONS = eINSTANCE.getDefinitionModel_Functions();
 
+		/**
+		 * The meta object literal for the '<em><b>Constants</b></em>' containment reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference DEFINITION_MODEL__CONSTANTS = eINSTANCE.getDefinitionModel_Constants();
+
 		/**
 		 * The meta object literal for the '{@link de.evoal.languages.model.dl.impl.QualifiedNameImpl <em>Qualified Name</em>}' class.
 		 * <!-- begin-user-doc -->
diff --git a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DefinitionModelImpl.java b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DefinitionModelImpl.java
index fb80da58..ae3e9d6f 100644
--- a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DefinitionModelImpl.java
+++ b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DefinitionModelImpl.java
@@ -3,6 +3,7 @@
  */
 package de.evoal.languages.model.dl.impl;
 
+import de.evoal.languages.model.base.ConstantDefinition;
 import de.evoal.languages.model.base.FunctionDefinition;
 import de.evoal.languages.model.base.TypeDefinition;
 
@@ -38,6 +39,7 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link de.evoal.languages.model.dl.impl.DefinitionModelImpl#getName <em>Name</em>}</li>
  *   <li>{@link de.evoal.languages.model.dl.impl.DefinitionModelImpl#getTypes <em>Types</em>}</li>
  *   <li>{@link de.evoal.languages.model.dl.impl.DefinitionModelImpl#getFunctions <em>Functions</em>}</li>
+ *   <li>{@link de.evoal.languages.model.dl.impl.DefinitionModelImpl#getConstants <em>Constants</em>}</li>
  * </ul>
  *
  * @generated
@@ -93,6 +95,16 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 	 */
 	protected EList<FunctionDefinition> functions;
 
+	/**
+	 * The cached value of the '{@link #getConstants() <em>Constants</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getConstants()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ConstantDefinition> constants;
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -174,6 +186,19 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 		return functions;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ConstantDefinition> getConstants() {
+		if (constants == null) {
+			constants = new EObjectContainmentEList<ConstantDefinition>(ConstantDefinition.class, this, DlPackage.DEFINITION_MODEL__CONSTANTS);
+		}
+		return constants;
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -188,6 +213,8 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 				return ((InternalEList<?>)getTypes()).basicRemove(otherEnd, msgs);
 			case DlPackage.DEFINITION_MODEL__FUNCTIONS:
 				return ((InternalEList<?>)getFunctions()).basicRemove(otherEnd, msgs);
+			case DlPackage.DEFINITION_MODEL__CONSTANTS:
+				return ((InternalEList<?>)getConstants()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -208,6 +235,8 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 				return getTypes();
 			case DlPackage.DEFINITION_MODEL__FUNCTIONS:
 				return getFunctions();
+			case DlPackage.DEFINITION_MODEL__CONSTANTS:
+				return getConstants();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -236,6 +265,10 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 				getFunctions().clear();
 				getFunctions().addAll((Collection<? extends FunctionDefinition>)newValue);
 				return;
+			case DlPackage.DEFINITION_MODEL__CONSTANTS:
+				getConstants().clear();
+				getConstants().addAll((Collection<? extends ConstantDefinition>)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -260,6 +293,9 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 			case DlPackage.DEFINITION_MODEL__FUNCTIONS:
 				getFunctions().clear();
 				return;
+			case DlPackage.DEFINITION_MODEL__CONSTANTS:
+				getConstants().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -280,6 +316,8 @@ public class DefinitionModelImpl extends MinimalEObjectImpl.Container implements
 				return types != null && !types.isEmpty();
 			case DlPackage.DEFINITION_MODEL__FUNCTIONS:
 				return functions != null && !functions.isEmpty();
+			case DlPackage.DEFINITION_MODEL__CONSTANTS:
+				return constants != null && !constants.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DlPackageImpl.java b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DlPackageImpl.java
index 6b7b3ecc..654c50b9 100644
--- a/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DlPackageImpl.java
+++ b/src/languages/de.evoal.languages.model.dl/src-gen/de/evoal/languages/model/dl/impl/DlPackageImpl.java
@@ -159,6 +159,16 @@ public class DlPackageImpl extends EPackageImpl implements DlPackage {
 		return (EReference)definitionModelEClass.getEStructuralFeatures().get(3);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getDefinitionModel_Constants() {
+		return (EReference)definitionModelEClass.getEStructuralFeatures().get(4);
+	}
+
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -223,6 +233,7 @@ public class DlPackageImpl extends EPackageImpl implements DlPackage {
 		createEAttribute(definitionModelEClass, DEFINITION_MODEL__NAME);
 		createEReference(definitionModelEClass, DEFINITION_MODEL__TYPES);
 		createEReference(definitionModelEClass, DEFINITION_MODEL__FUNCTIONS);
+		createEReference(definitionModelEClass, DEFINITION_MODEL__CONSTANTS);
 
 		qualifiedNameEClass = createEClass(QUALIFIED_NAME);
 
@@ -268,6 +279,7 @@ public class DlPackageImpl extends EPackageImpl implements DlPackage {
 		initEAttribute(getDefinitionModel_Name(), ecorePackage.getEString(), "name", null, 1, 1, DefinitionModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getDefinitionModel_Types(), theBasePackage.getTypeDefinition(), null, "types", null, 0, -1, DefinitionModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getDefinitionModel_Functions(), theBasePackage.getFunctionDefinition(), null, "functions", null, 0, -1, DefinitionModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getDefinitionModel_Constants(), theBasePackage.getConstantDefinition(), null, "constants", null, 0, -1, DefinitionModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(qualifiedNameEClass, QualifiedName.class, "QualifiedName", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
diff --git a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/GeneratorDSLParser.java b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/GeneratorDSLParser.java
index 0bda13af..4bec5353 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/GeneratorDSLParser.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/GeneratorDSLParser.java
@@ -70,8 +70,6 @@ public class GeneratorDSLParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2(), "rule__ArrayRule__Group_2__0");
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2_1(), "rule__ArrayRule__Group_2_1__0");
 			builder.put(grammarAccess.getDataReferenceRuleAccess().getGroup(), "rule__DataReferenceRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup(), "rule__QualifiedNameRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup_1(), "rule__QualifiedNameRule__Group_1__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup(), "rule__OrExpressionRule__Group__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup_1(), "rule__OrExpressionRule__Group_1__0");
 			builder.put(grammarAccess.getXorExpressionRuleAccess().getGroup(), "rule__XorExpressionRule__Group__0");
@@ -92,7 +90,6 @@ public class GeneratorDSLParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -114,6 +111,7 @@ public class GeneratorDSLParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -175,6 +173,7 @@ public class GeneratorDSLParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -195,6 +194,9 @@ public class GeneratorDSLParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.g b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.g
index 5402d1e4..4c3d7799 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.g
+++ b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.g
@@ -524,31 +524,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule
-:
-{ before(grammarAccess.getQualifiedNameRuleRule()); }
-	 ruleQualifiedNameRule
-{ after(grammarAccess.getQualifiedNameRuleRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-		(rule__QualifiedNameRule__Group__0)
-		{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule
 :
@@ -915,9 +890,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -1074,6 +1074,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -4559,114 +4584,6 @@ finally {
 }
 
 
-rule__QualifiedNameRule__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__0__Impl
-	rule__QualifiedNameRule__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-	(rule__QualifiedNameRule__Group_1__0)*
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedNameRule__Group_1__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__0__Impl
-	rule__QualifiedNameRule__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-	'.'
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__OrExpressionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -5828,53 +5745,161 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
+rule__DoubleLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__0__Impl
+	rule__DoubleLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__DoubleLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__DoubleLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntegerLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
+	rule__IntegerLiteralRule__Group__0__Impl
+	rule__IntegerLiteralRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__0__Impl
+rule__IntegerLiteralRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__IntegerLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__IntegerLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanLiteralRule__Group__0__Impl
+	rule__BooleanLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1
+rule__BooleanLiteralRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__1__Impl
+	rule__BooleanLiteralRule__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1__Impl
+rule__BooleanLiteralRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	(rule__BooleanLiteralRule__Alternatives_1)
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
 )
 ;
 finally {
@@ -5882,161 +5907,242 @@ finally {
 }
 
 
-rule__DoubleLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__0__Impl
-	rule__DoubleLiteralRule__Group__1
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__DoubleLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__DoubleLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__IntegerLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__2__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__0__Impl
-	rule__IntegerLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__IntegerLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__IntegerLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__BooleanLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__0__Impl
-	rule__BooleanLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
-	()
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1
+
+rule__TypeDefinitionRule__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
-	(rule__BooleanLiteralRule__Alternatives_1)
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
 )
 ;
 finally {
@@ -7419,9 +7525,9 @@ rule__InstanceRule__DefinitionAssignment_0
 	(
 		{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 		(
-			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
-			ruleQualifiedNameRule
-			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
+			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
 		)
 		{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 	)
@@ -7937,6 +8043,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -8031,6 +8156,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.tokens b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.tokens
index f6b0047c..d8b2ca48 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.tokens
+++ b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSL.tokens
@@ -1,13 +1,13 @@
-'!'=91
+'!'=92
 '!='=19
 '%'=26
-'('=77
-')'=78
+'('=76
+')'=77
 '*'=24
 '+'=22
 ','=57
 '-'=23
-'.'=72
+'.'=91
 '/'=25
 ':'=80
 ':='=70
@@ -17,21 +17,22 @@
 '='=18
 '>'=17
 '>='=16
-'AND'=75
+'AND'=74
 'E'=29
 'G'=32
 'M'=33
-'OR'=73
+'OR'=72
 'P'=30
 'T'=31
-'XOR'=74
+'XOR'=73
 'Y'=27
 'Z'=28
 '['=50
 '\u00B5'=40
 ']'=51
-'^'=76
+'^'=75
 'a'=44
+'abstract'=94
 'array'=90
 'boolean'=88
 'c'=38
@@ -42,6 +43,7 @@
 'end'=62
 'executing'=69
 'expression'=85
+'extends'=79
 'f'=43
 'false'=15
 'float'=87
@@ -65,8 +67,8 @@
 'step'=52
 'string'=84
 'to'=63
-'true'=92
-'value'=79
+'true'=93
+'type'=78
 'void'=89
 'with'=66
 'write'=65
@@ -165,3 +167,5 @@ T__89=89
 T__90=90
 T__91=91
 T__92=92
+T__93=93
+T__94=94
diff --git a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLLexer.java b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLLexer.java
index 961ed05e..a8f3f271 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLLexer.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLLexer.java
@@ -60,6 +60,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
     public static final int T__43=43;
     public static final int T__91=91;
     public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__94=94;
     public static final int T__90=90;
     public static final int T__19=19;
     public static final int T__15=15;
@@ -1285,10 +1287,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:68:7: ( '.' )
-            // InternalGeneratorDSL.g:68:9: '.'
+            // InternalGeneratorDSL.g:68:7: ( 'OR' )
+            // InternalGeneratorDSL.g:68:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -1305,10 +1308,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:69:7: ( 'OR' )
-            // InternalGeneratorDSL.g:69:9: 'OR'
+            // InternalGeneratorDSL.g:69:7: ( 'XOR' )
+            // InternalGeneratorDSL.g:69:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -1326,10 +1329,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:70:7: ( 'XOR' )
-            // InternalGeneratorDSL.g:70:9: 'XOR'
+            // InternalGeneratorDSL.g:70:7: ( 'AND' )
+            // InternalGeneratorDSL.g:70:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -1347,11 +1350,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:71:7: ( 'AND' )
-            // InternalGeneratorDSL.g:71:9: 'AND'
+            // InternalGeneratorDSL.g:71:7: ( '^' )
+            // InternalGeneratorDSL.g:71:9: '^'
             {
-            match("AND"); 
-
+            match('^'); 
 
             }
 
@@ -1368,10 +1370,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:72:7: ( '^' )
-            // InternalGeneratorDSL.g:72:9: '^'
+            // InternalGeneratorDSL.g:72:7: ( '(' )
+            // InternalGeneratorDSL.g:72:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -1388,10 +1390,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:73:7: ( '(' )
-            // InternalGeneratorDSL.g:73:9: '('
+            // InternalGeneratorDSL.g:73:7: ( ')' )
+            // InternalGeneratorDSL.g:73:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -1408,10 +1410,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:74:7: ( ')' )
-            // InternalGeneratorDSL.g:74:9: ')'
+            // InternalGeneratorDSL.g:74:7: ( 'type' )
+            // InternalGeneratorDSL.g:74:9: 'type'
             {
-            match(')'); 
+            match("type"); 
+
 
             }
 
@@ -1428,10 +1431,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:75:7: ( 'value' )
-            // InternalGeneratorDSL.g:75:9: 'value'
+            // InternalGeneratorDSL.g:75:7: ( 'extends' )
+            // InternalGeneratorDSL.g:75:9: 'extends'
             {
-            match("value"); 
+            match("extends"); 
 
 
             }
@@ -1678,10 +1681,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:87:7: ( '!' )
-            // InternalGeneratorDSL.g:87:9: '!'
+            // InternalGeneratorDSL.g:87:7: ( '.' )
+            // InternalGeneratorDSL.g:87:9: '.'
             {
-            match('!'); 
+            match('.'); 
 
             }
 
@@ -1698,8 +1701,28 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:88:7: ( 'true' )
-            // InternalGeneratorDSL.g:88:9: 'true'
+            // InternalGeneratorDSL.g:88:7: ( '!' )
+            // InternalGeneratorDSL.g:88:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__92"
+
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalGeneratorDSL.g:89:7: ( 'true' )
+            // InternalGeneratorDSL.g:89:9: 'true'
             {
             match("true"); 
 
@@ -1712,13 +1735,34 @@ public class InternalGeneratorDSLLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__92"
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalGeneratorDSL.g:90:7: ( 'abstract' )
+            // InternalGeneratorDSL.g:90:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
 
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:8181:21: ( '0' .. '9' )
-            // InternalGeneratorDSL.g:8181:23: '0' .. '9'
+            // InternalGeneratorDSL.g:8374:21: ( '0' .. '9' )
+            // InternalGeneratorDSL.g:8374:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1733,11 +1777,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:8183:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalGeneratorDSL.g:8183:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:8376:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalGeneratorDSL.g:8376:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalGeneratorDSL.g:8183:30: ( '+' | '-' )?
+            // InternalGeneratorDSL.g:8376:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1763,7 +1807,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
             }
 
-            // InternalGeneratorDSL.g:8183:41: ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:8376:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1777,7 +1821,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8183:41: RULE_DIGIT
+            	    // InternalGeneratorDSL.g:8376:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1807,10 +1851,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8185:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalGeneratorDSL.g:8185:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:8378:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalGeneratorDSL.g:8378:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalGeneratorDSL.g:8185:12: ( '-' )?
+            // InternalGeneratorDSL.g:8378:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1819,7 +1863,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalGeneratorDSL.g:8185:12: '-'
+                    // InternalGeneratorDSL.g:8378:12: '-'
                     {
                     match('-'); 
 
@@ -1828,7 +1872,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
             }
 
-            // InternalGeneratorDSL.g:8185:17: ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:8378:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1842,7 +1886,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8185:17: RULE_DIGIT
+            	    // InternalGeneratorDSL.g:8378:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1874,15 +1918,15 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8187:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalGeneratorDSL.g:8187:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalGeneratorDSL.g:8380:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalGeneratorDSL.g:8380:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalGeneratorDSL.g:8187:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalGeneratorDSL.g:8380:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalGeneratorDSL.g:8187:16: RULE_INT RULE_EXPONENT
+                    // InternalGeneratorDSL.g:8380:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1890,11 +1934,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:8187:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalGeneratorDSL.g:8380:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalGeneratorDSL.g:8187:52: ( RULE_DIGIT )*
+                    // InternalGeneratorDSL.g:8380:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1907,7 +1951,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalGeneratorDSL.g:8187:52: RULE_DIGIT
+                    	    // InternalGeneratorDSL.g:8380:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1919,7 +1963,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalGeneratorDSL.g:8187:64: ( RULE_EXPONENT )?
+                    // InternalGeneratorDSL.g:8380:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1928,7 +1972,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalGeneratorDSL.g:8187:64: RULE_EXPONENT
+                            // InternalGeneratorDSL.g:8380:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1959,11 +2003,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8189:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalGeneratorDSL.g:8189:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalGeneratorDSL.g:8382:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalGeneratorDSL.g:8382:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalGeneratorDSL.g:8189:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalGeneratorDSL.g:8382:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1979,7 +2023,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8189:20: '\\\\' .
+            	    // InternalGeneratorDSL.g:8382:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1987,7 +2031,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalGeneratorDSL.g:8189:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalGeneratorDSL.g:8382:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2024,11 +2068,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8191:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalGeneratorDSL.g:8191:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalGeneratorDSL.g:8384:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalGeneratorDSL.g:8384:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalGeneratorDSL.g:8191:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalGeneratorDSL.g:8384:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -2044,7 +2088,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8191:24: '\\\\' .
+            	    // InternalGeneratorDSL.g:8384:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2052,7 +2096,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalGeneratorDSL.g:8191:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalGeneratorDSL.g:8384:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2089,10 +2133,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8193:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalGeneratorDSL.g:8193:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalGeneratorDSL.g:8386:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalGeneratorDSL.g:8386:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalGeneratorDSL.g:8193:11: ( '^' )?
+            // InternalGeneratorDSL.g:8386:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -2101,7 +2145,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalGeneratorDSL.g:8193:11: '^'
+                    // InternalGeneratorDSL.g:8386:11: '^'
                     {
                     match('^'); 
 
@@ -2119,7 +2163,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalGeneratorDSL.g:8193:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalGeneratorDSL.g:8386:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -2168,12 +2212,12 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8195:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalGeneratorDSL.g:8195:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalGeneratorDSL.g:8388:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalGeneratorDSL.g:8388:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalGeneratorDSL.g:8195:24: ( options {greedy=false; } : . )*
+            // InternalGeneratorDSL.g:8388:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2198,7 +2242,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8195:52: .
+            	    // InternalGeneratorDSL.g:8388:52: .
             	    {
             	    matchAny(); 
 
@@ -2228,12 +2272,12 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8197:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalGeneratorDSL.g:8197:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalGeneratorDSL.g:8390:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalGeneratorDSL.g:8390:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalGeneratorDSL.g:8197:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalGeneratorDSL.g:8390:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2246,7 +2290,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:8197:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalGeneratorDSL.g:8390: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();
@@ -2266,7 +2310,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalGeneratorDSL.g:8197:40: ( ( '\\r' )? '\\n' )?
+            // InternalGeneratorDSL.g:8390:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2275,9 +2319,9 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalGeneratorDSL.g:8197:41: ( '\\r' )? '\\n'
+                    // InternalGeneratorDSL.g:8390:41: ( '\\r' )? '\\n'
                     {
-                    // InternalGeneratorDSL.g:8197:41: ( '\\r' )?
+                    // InternalGeneratorDSL.g:8390:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2286,7 +2330,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalGeneratorDSL.g:8197:41: '\\r'
+                            // InternalGeneratorDSL.g:8390:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2318,10 +2362,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8199:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalGeneratorDSL.g:8199:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalGeneratorDSL.g:8392:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalGeneratorDSL.g:8392:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalGeneratorDSL.g:8199:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalGeneratorDSL.g:8392:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2375,8 +2419,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:8201:16: ( . )
-            // InternalGeneratorDSL.g:8201:18: .
+            // InternalGeneratorDSL.g:8394:16: ( . )
+            // InternalGeneratorDSL.g:8394:18: .
             {
             matchAny(); 
 
@@ -2391,8 +2435,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalGeneratorDSL.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=87;
+        // InternalGeneratorDSL.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=89;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2942,63 +2986,77 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 }
                 break;
             case 79 :
-                // InternalGeneratorDSL.g:1:478: RULE_INT
+                // InternalGeneratorDSL.g:1:478: T__93
                 {
-                mRULE_INT(); 
+                mT__93(); 
 
                 }
                 break;
             case 80 :
-                // InternalGeneratorDSL.g:1:487: RULE_DOUBLE
+                // InternalGeneratorDSL.g:1:484: T__94
                 {
-                mRULE_DOUBLE(); 
+                mT__94(); 
 
                 }
                 break;
             case 81 :
-                // InternalGeneratorDSL.g:1:499: RULE_STRING
+                // InternalGeneratorDSL.g:1:490: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 82 :
-                // InternalGeneratorDSL.g:1:511: RULE_QUOTED_ID
+                // InternalGeneratorDSL.g:1:499: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 83 :
-                // InternalGeneratorDSL.g:1:526: RULE_ID
+                // InternalGeneratorDSL.g:1:511: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 84 :
-                // InternalGeneratorDSL.g:1:534: RULE_ML_COMMENT
+                // InternalGeneratorDSL.g:1:523: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 85 :
-                // InternalGeneratorDSL.g:1:550: RULE_SL_COMMENT
+                // InternalGeneratorDSL.g:1:538: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 86 :
-                // InternalGeneratorDSL.g:1:566: RULE_WS
+                // InternalGeneratorDSL.g:1:546: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 87 :
-                // InternalGeneratorDSL.g:1:574: RULE_ANY_OTHER
+                // InternalGeneratorDSL.g:1:562: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 88 :
+                // InternalGeneratorDSL.g:1:578: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 89 :
+                // InternalGeneratorDSL.g:1:586: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3021,13 +3079,13 @@ public class InternalGeneratorDSLLexer extends Lexer {
     static final String DFA7_maxS =
         "\2\71\1\145\2\uffff";
     static final String DFA7_acceptS =
-        "\3\uffff\1\1\1\2";
+        "\3\uffff\1\2\1\1";
     static final String DFA7_specialS =
         "\5\uffff}>";
     static final String[] DFA7_transitionS = {
             "\1\1\2\uffff\12\2",
             "\12\2",
-            "\1\4\1\uffff\12\2\53\uffff\1\3",
+            "\1\3\1\uffff\12\2\53\uffff\1\4",
             "",
             ""
     };
@@ -3062,30 +3120,30 @@ public class InternalGeneratorDSLLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "8187:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "8380:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\77\1\102\1\uffff\1\105\1\107\1\uffff\1\111\1\uffff\1\116\1\uffff\1\120\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\132\1\134\1\135\1\uffff\1\137\1\141\1\143\1\144\1\145\1\100\3\uffff\1\100\2\uffff\1\100\1\uffff\4\100\1\172\1\uffff\3\100\1\177\2\uffff\1\100\1\uffff\1\100\1\u0086\2\72\3\uffff\4\100\13\uffff\1\u0086\16\uffff\1\u0090\1\uffff\1\100\4\uffff\1\100\1\uffff\1\100\3\uffff\1\100\1\u0097\3\uffff\2\100\2\uffff\1\100\1\uffff\6\100\1\u00a3\1\100\3\uffff\1\u00a5\2\100\3\uffff\2\100\1\uffff\1\100\5\uffff\1\100\1\u00ac\3\100\1\uffff\5\100\1\u00b5\1\uffff\10\100\1\u00be\2\100\1\uffff\1\100\1\uffff\1\u00c2\1\u00c3\4\100\1\uffff\1\u00c8\1\100\1\u00ca\5\100\1\uffff\1\u00d0\4\100\1\u00d5\1\u00d6\1\100\1\uffff\2\100\1\u00da\2\uffff\1\100\1\u00dc\1\100\1\u00de\1\uffff\1\u00df\1\uffff\2\100\1\u00e2\2\100\1\uffff\2\100\1\u00e7\1\u00e9\2\uffff\3\100\1\uffff\1\u00ed\1\uffff\1\100\2\uffff\2\100\1\uffff\1\u00f1\1\100\1\u00f3\1\100\1\uffff\1\u00f5\1\uffff\3\100\1\uffff\3\100\1\uffff\1\100\1\uffff\1\u00fd\1\uffff\1\u00fe\2\100\1\u0101\1\100\1\u0104\1\u0105\2\uffff\2\100\1\uffff\1\u0108\1\u0109\2\uffff\1\u010a\1\100\3\uffff\1\u010c\1\uffff";
+        "\1\uffff\1\77\1\102\1\uffff\1\105\1\107\1\uffff\1\112\1\uffff\1\116\1\uffff\1\120\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\132\1\134\1\135\1\uffff\1\137\1\141\1\144\1\145\1\146\1\100\3\uffff\1\100\2\uffff\1\100\1\uffff\4\100\1\174\3\100\1\u0080\3\uffff\2\100\1\uffff\1\u0087\2\72\3\uffff\4\100\12\uffff\1\u0087\17\uffff\1\u0091\1\uffff\1\100\4\uffff\1\100\1\uffff\2\100\3\uffff\1\100\1\u0099\3\uffff\2\100\2\uffff\1\100\1\uffff\6\100\1\u00a6\2\100\2\uffff\1\u00a9\2\100\4\uffff\2\100\6\uffff\1\100\1\u00af\3\100\1\uffff\6\100\1\u00b9\1\uffff\10\100\1\u00c2\3\100\1\uffff\2\100\1\uffff\1\u00c8\1\u00c9\3\100\1\uffff\1\u00cd\1\100\1\u00cf\6\100\1\uffff\1\u00d6\4\100\1\u00db\1\u00dc\1\100\1\uffff\3\100\1\u00e1\1\u00e2\2\uffff\1\100\1\u00e4\1\u00e5\1\uffff\1\u00e6\1\uffff\2\100\1\u00e9\3\100\1\uffff\2\100\1\u00ef\1\u00f1\2\uffff\4\100\2\uffff\1\100\3\uffff\2\100\1\uffff\1\100\1\u00fa\1\100\1\u00fc\1\100\1\uffff\1\u00fe\1\uffff\10\100\1\uffff\1\100\1\uffff\1\u0108\1\uffff\1\u0109\1\100\1\u010b\1\100\1\u010d\1\100\1\u0110\1\u0111\1\u0112\2\uffff\1\100\1\uffff\1\100\1\uffff\1\u0115\1\u0116\3\uffff\1\u0117\1\100\3\uffff\1\u0119\1\uffff";
     static final String DFA17_eofS =
-        "\u010d\uffff";
+        "\u011a\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\155\3\uffff\1\141\2\uffff\1\145\1\uffff\2\151\1\156\1\157\1\75\1\uffff\1\122\1\117\1\116\1\101\2\uffff\1\141\1\uffff\1\157\1\56\2\0\3\uffff\1\154\1\162\2\157\13\uffff\1\56\16\uffff\1\60\1\uffff\1\155\4\uffff\1\160\1\uffff\1\162\3\uffff\1\160\1\60\3\uffff\1\145\1\155\2\uffff\1\141\1\uffff\1\151\1\164\1\157\1\164\1\144\1\145\1\60\1\165\3\uffff\1\60\1\122\1\104\3\uffff\1\154\1\151\1\uffff\1\157\5\uffff\1\163\1\60\1\155\2\141\1\uffff\1\160\1\145\1\141\1\157\1\164\1\60\1\uffff\1\160\1\151\1\160\1\144\1\164\1\150\1\160\1\145\1\60\1\143\1\162\1\uffff\1\145\1\uffff\2\60\1\165\1\144\1\154\1\145\1\uffff\1\60\1\164\1\60\1\157\1\154\1\171\1\162\1\141\1\uffff\1\60\1\156\1\154\1\163\1\145\2\60\1\162\1\uffff\1\165\1\145\1\60\2\uffff\1\145\1\60\1\145\1\60\1\uffff\1\60\1\uffff\1\156\1\151\1\60\1\164\1\156\1\uffff\1\147\1\145\2\60\2\uffff\1\141\1\164\1\163\1\uffff\1\60\1\uffff\1\141\2\uffff\1\145\1\156\1\uffff\1\60\1\143\1\60\1\163\1\uffff\1\60\1\uffff\1\154\1\151\1\163\1\uffff\2\156\1\145\1\uffff\1\145\1\uffff\1\60\1\uffff\1\60\1\156\1\151\1\60\1\164\2\60\2\uffff\1\147\1\157\1\uffff\2\60\2\uffff\1\60\1\156\3\uffff\1\60\1\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\155\3\uffff\1\141\2\uffff\1\145\1\uffff\2\151\1\156\1\157\1\75\1\122\1\117\1\116\1\101\3\uffff\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\162\2\157\12\uffff\1\56\17\uffff\1\60\1\uffff\1\155\4\uffff\1\160\1\uffff\1\162\1\163\3\uffff\1\160\1\60\3\uffff\1\145\1\155\2\uffff\1\141\1\uffff\1\151\1\164\1\157\1\164\1\144\1\145\1\60\1\160\1\165\2\uffff\1\60\1\122\1\104\4\uffff\1\157\1\151\6\uffff\1\163\1\60\1\155\2\141\1\uffff\1\160\1\145\1\141\1\164\1\157\1\164\1\60\1\uffff\1\160\1\151\1\160\1\144\1\164\1\150\1\160\1\145\1\60\1\143\1\145\1\162\1\uffff\2\145\1\uffff\2\60\1\154\1\144\1\145\1\uffff\1\60\1\164\1\60\1\157\1\154\1\171\2\162\1\141\1\uffff\1\60\1\156\1\154\1\163\1\145\2\60\1\162\1\uffff\1\165\1\156\1\145\2\60\2\uffff\1\145\2\60\1\uffff\1\60\1\uffff\1\156\1\151\1\60\1\141\1\164\1\156\1\uffff\1\147\1\145\2\60\2\uffff\1\141\1\164\1\144\1\163\2\uffff\1\141\3\uffff\1\145\1\156\1\uffff\1\143\1\60\1\143\1\60\1\163\1\uffff\1\60\1\uffff\1\154\1\151\2\163\2\156\1\145\1\164\1\uffff\1\145\1\uffff\1\60\1\uffff\1\60\1\156\1\60\1\151\1\60\1\164\3\60\2\uffff\1\147\1\uffff\1\157\1\uffff\2\60\3\uffff\1\60\1\156\3\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\156\3\uffff\1\164\2\uffff\1\145\1\uffff\1\162\1\157\1\170\1\162\1\75\1\uffff\1\122\1\117\1\116\1\172\2\uffff\1\157\1\uffff\1\157\1\145\2\uffff\3\uffff\1\154\1\162\2\157\13\uffff\1\145\16\uffff\1\172\1\uffff\1\155\4\uffff\1\160\1\uffff\1\162\3\uffff\1\160\1\172\3\uffff\1\162\1\155\2\uffff\1\141\1\uffff\1\151\1\164\1\157\1\164\1\144\1\160\1\172\1\165\3\uffff\1\172\1\122\1\104\3\uffff\1\154\1\151\1\uffff\1\157\5\uffff\1\163\1\172\1\155\2\141\1\uffff\1\160\1\145\1\141\1\157\1\164\1\172\1\uffff\1\160\1\151\1\160\1\144\1\164\1\150\1\160\1\145\1\172\1\143\1\162\1\uffff\1\145\1\uffff\2\172\1\165\1\144\1\154\1\145\1\uffff\1\172\1\164\1\172\1\157\1\154\1\171\1\162\1\141\1\uffff\1\172\1\156\1\154\1\163\1\145\2\172\1\162\1\uffff\1\165\1\145\1\172\2\uffff\1\145\1\172\1\145\1\172\1\uffff\1\172\1\uffff\1\156\1\151\1\172\1\164\1\156\1\uffff\1\147\1\145\2\172\2\uffff\1\141\1\164\1\163\1\uffff\1\172\1\uffff\1\141\2\uffff\1\145\1\156\1\uffff\1\172\1\143\1\172\1\163\1\uffff\1\172\1\uffff\1\154\1\151\1\163\1\uffff\2\156\1\145\1\uffff\1\145\1\uffff\1\172\1\uffff\1\172\1\156\1\151\1\172\1\164\2\172\2\uffff\1\147\1\157\1\uffff\2\172\2\uffff\1\172\1\156\3\uffff\1\172\1\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\156\3\uffff\1\164\2\uffff\1\145\1\uffff\1\162\1\157\1\170\1\171\1\75\1\122\1\117\1\116\1\172\3\uffff\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\162\2\157\12\uffff\1\145\17\uffff\1\172\1\uffff\1\155\4\uffff\1\160\1\uffff\1\162\1\163\3\uffff\1\160\1\172\3\uffff\1\162\1\155\2\uffff\1\141\1\uffff\1\151\1\164\1\157\1\164\1\144\1\164\1\172\1\160\1\165\2\uffff\1\172\1\122\1\104\4\uffff\1\157\1\151\6\uffff\1\163\1\172\1\155\2\141\1\uffff\1\160\1\145\1\141\1\164\1\157\1\164\1\172\1\uffff\1\160\1\151\1\160\1\144\1\164\1\150\1\160\1\145\1\172\1\143\1\145\1\162\1\uffff\2\145\1\uffff\2\172\1\154\1\144\1\145\1\uffff\1\172\1\164\1\172\1\157\1\154\1\171\2\162\1\141\1\uffff\1\172\1\156\1\154\1\163\1\145\2\172\1\162\1\uffff\1\165\1\156\1\145\2\172\2\uffff\1\145\2\172\1\uffff\1\172\1\uffff\1\156\1\151\1\172\1\141\1\164\1\156\1\uffff\1\147\1\145\2\172\2\uffff\1\141\1\164\1\144\1\163\2\uffff\1\141\3\uffff\1\145\1\156\1\uffff\1\143\1\172\1\143\1\172\1\163\1\uffff\1\172\1\uffff\1\154\1\151\2\163\2\156\1\145\1\164\1\uffff\1\145\1\uffff\1\172\1\uffff\1\172\1\156\1\172\1\151\1\172\1\164\3\172\2\uffff\1\147\1\uffff\1\157\1\uffff\2\172\3\uffff\1\172\1\156\3\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\1\44\1\45\1\uffff\1\47\1\51\1\uffff\1\53\5\uffff\1\72\4\uffff\1\77\1\100\1\uffff\1\105\4\uffff\1\123\1\126\1\127\4\uffff\1\35\1\123\1\2\1\3\1\4\1\5\1\115\1\7\1\6\1\10\1\11\1\uffff\1\12\1\124\1\125\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\uffff\1\30\1\31\1\32\1\33\1\uffff\1\34\1\uffff\1\36\1\37\1\40\2\uffff\1\42\1\44\1\45\2\uffff\1\47\1\51\1\uffff\1\53\10\uffff\1\70\1\102\1\72\3\uffff\1\76\1\77\1\100\2\uffff\1\105\1\uffff\1\117\1\120\1\121\1\122\1\126\5\uffff\1\26\6\uffff\1\56\13\uffff\1\61\1\uffff\1\73\6\uffff\1\55\10\uffff\1\110\10\uffff\1\60\3\uffff\1\74\1\75\4\uffff\1\66\1\uffff\1\71\5\uffff\1\46\4\uffff\1\64\1\57\3\uffff\1\116\1\uffff\1\113\1\uffff\1\1\1\111\2\uffff\1\114\4\uffff\1\52\1\uffff\1\63\3\uffff\1\101\3\uffff\1\41\1\uffff\1\106\1\uffff\1\54\7\uffff\1\65\1\103\2\uffff\1\112\2\uffff\1\43\1\104\2\uffff\1\50\1\62\1\67\1\uffff\1\107";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\1\44\1\45\1\uffff\1\47\1\51\1\uffff\1\53\11\uffff\1\76\1\77\1\105\2\uffff\1\115\3\uffff\1\125\1\130\1\131\4\uffff\1\35\1\125\1\2\1\3\1\4\1\5\1\116\1\7\1\6\1\10\1\uffff\1\11\1\12\1\126\1\127\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\uffff\1\30\1\31\1\32\1\33\1\uffff\1\34\2\uffff\1\36\1\37\1\40\2\uffff\1\42\1\44\1\45\2\uffff\1\47\1\51\1\uffff\1\53\11\uffff\1\70\1\102\3\uffff\1\75\1\76\1\77\1\105\2\uffff\1\115\1\121\1\122\1\123\1\124\1\130\5\uffff\1\26\7\uffff\1\56\14\uffff\1\61\2\uffff\1\72\5\uffff\1\55\11\uffff\1\110\10\uffff\1\60\5\uffff\1\73\1\74\3\uffff\1\66\1\uffff\1\71\6\uffff\1\46\4\uffff\1\64\1\57\4\uffff\1\100\1\117\1\uffff\1\113\1\1\1\111\2\uffff\1\114\5\uffff\1\52\1\uffff\1\63\10\uffff\1\41\1\uffff\1\106\1\uffff\1\54\11\uffff\1\65\1\103\1\uffff\1\101\1\uffff\1\112\2\uffff\1\43\1\120\1\104\2\uffff\1\50\1\62\1\67\1\uffff\1\107";
     static final String DFA17_specialS =
-        "\1\0\65\uffff\1\1\1\2\u00d5\uffff}>";
+        "\1\2\65\uffff\1\1\1\0\u00e2\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\72\2\71\2\72\1\71\22\72\1\71\1\4\1\66\2\72\1\12\1\72\1\67\1\60\1\61\1\10\1\6\1\45\1\7\1\53\1\11\12\65\1\52\1\36\1\5\1\3\1\2\2\72\1\56\3\70\1\15\1\70\1\20\5\70\1\21\1\70\1\54\1\16\3\70\1\17\3\70\1\55\1\13\1\14\1\37\1\72\1\40\1\57\1\70\1\72\1\32\1\64\1\25\1\24\1\50\1\1\1\70\1\23\1\35\1\70\1\22\1\47\1\26\1\30\1\70\1\31\1\70\1\44\1\41\1\51\1\70\1\62\1\46\1\70\1\34\1\33\1\42\1\63\1\43\67\72\1\27\uff4a\72",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\4\1\66\2\72\1\12\1\72\1\67\1\57\1\60\1\10\1\6\1\45\1\7\1\64\1\11\12\65\1\52\1\36\1\5\1\3\1\2\2\72\1\55\3\70\1\15\1\70\1\20\5\70\1\21\1\70\1\53\1\16\3\70\1\17\3\70\1\54\1\13\1\14\1\37\1\72\1\40\1\56\1\70\1\72\1\32\1\62\1\25\1\24\1\50\1\1\1\70\1\23\1\35\1\70\1\22\1\47\1\26\1\30\1\70\1\31\1\70\1\44\1\41\1\51\1\70\1\63\1\46\1\70\1\34\1\33\1\42\1\61\1\43\67\72\1\27\uff4a\72",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\1\73\12\100\1\76\2\100\1\74\2\100\1\75\10\100",
             "\1\101",
             "",
             "\1\104",
             "\1\106",
             "",
-            "\12\112",
+            "\12\111",
             "",
             "\1\114\4\uffff\1\115",
             "",
@@ -3104,43 +3162,43 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\10\100\1\140\21\100",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\21\100\1\142\10\100",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\1\100\1\143\17\100\1\142\10\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\146\1\147",
+            "\1\147\1\150",
             "",
             "",
             "",
-            "\1\154\22\uffff\1\153",
+            "\1\155\22\uffff\1\154",
             "",
             "",
-            "\1\157",
+            "\1\160",
             "",
-            "\1\162\10\uffff\1\161",
-            "\1\164\5\uffff\1\163",
-            "\1\165\11\uffff\1\166",
-            "\1\167\2\uffff\1\170",
-            "\1\171",
-            "",
-            "\1\174",
+            "\1\163\10\uffff\1\162",
+            "\1\165\5\uffff\1\164",
+            "\1\166\11\uffff\1\167",
+            "\1\170\2\uffff\1\172\6\uffff\1\171",
+            "\1\173",
             "\1\175",
             "\1\176",
+            "\1\177",
             "\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
             "",
-            "\1\u0082\15\uffff\1\u0083",
             "",
+            "\1\u0084",
             "\1\u0085",
-            "\1\u0087\1\uffff\12\112\53\uffff\1\u0087",
-            "\0\u0088",
+            "",
+            "\1\u0088\1\uffff\12\111\53\uffff\1\u0088",
             "\0\u0089",
+            "\0\u008a",
             "",
             "",
             "",
-            "\1\u008b",
             "\1\u008c",
             "\1\u008d",
             "\1\u008e",
+            "\1\u008f",
             "",
             "",
             "",
@@ -3151,8 +3209,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "",
             "",
             "",
-            "",
-            "\1\u0087\1\uffff\12\112\53\uffff\1\u0087",
+            "\1\u0088\1\uffff\12\111\53\uffff\1\u0088",
             "",
             "",
             "",
@@ -3167,181 +3224,195 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "",
             "",
             "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\23\100\1\u008f\6\100",
             "",
-            "\1\u0091",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\23\100\1\u0090\6\100",
             "",
+            "\1\u0092",
             "",
             "",
             "",
-            "\1\u0092",
             "",
             "\1\u0093",
             "",
-            "",
-            "",
             "\1\u0094",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u0095\1\u0096\6\100",
+            "\1\u0095",
             "",
             "",
             "",
-            "\1\u0098\14\uffff\1\u0099",
-            "\1\u009a",
+            "\1\u0096",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u0097\1\u0098\6\100",
             "",
             "",
-            "\1\u009b",
             "",
+            "\1\u009a\14\uffff\1\u009b",
             "\1\u009c",
+            "",
+            "",
             "\1\u009d",
+            "",
             "\1\u009e",
             "\1\u009f",
             "\1\u00a0",
-            "\1\u00a1\12\uffff\1\u00a2",
+            "\1\u00a1",
+            "\1\u00a2",
+            "\1\u00a3\12\uffff\1\u00a5\3\uffff\1\u00a4",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u00a4",
-            "",
+            "\1\u00a7",
+            "\1\u00a8",
             "",
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u00a6",
-            "\1\u00a7",
+            "\1\u00aa",
+            "\1\u00ab",
             "",
             "",
             "",
-            "\1\u00a8",
-            "\1\u00a9",
             "",
-            "\1\u00aa",
+            "\1\u00ac",
+            "\1\u00ad",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00ab",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u00ad",
-            "\1\u00ae",
-            "\1\u00af",
             "",
+            "\1\u00ae",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00b0",
             "\1\u00b1",
             "\1\u00b2",
+            "",
             "\1\u00b3",
             "\1\u00b4",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "",
+            "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
             "\1\u00b8",
-            "\1\u00b9",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "",
             "\1\u00ba",
             "\1\u00bb",
             "\1\u00bc",
             "\1\u00bd",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00be",
             "\1\u00bf",
             "\1\u00c0",
-            "",
             "\1\u00c1",
-            "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
+            "",
             "\1\u00c6",
             "\1\u00c7",
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u00c9",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00ce",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00d0",
             "\1\u00d1",
             "\1\u00d2",
             "\1\u00d3",
             "\1\u00d4",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00d5",
+            "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00d7",
-            "",
             "\1\u00d8",
             "\1\u00d9",
+            "\1\u00da",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "",
-            "",
-            "\1\u00db",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00dd",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
+            "\1\u00de",
+            "\1\u00df",
             "\1\u00e0",
-            "\1\u00e1",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u00e3",
-            "\1\u00e4",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "",
             "",
-            "\1\u00e5",
-            "\1\u00e6",
+            "\1\u00e3",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u00e8\7\100",
             "",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
+            "\1\u00e7",
+            "\1\u00e8",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00ea",
             "\1\u00eb",
             "\1\u00ec",
             "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "",
+            "\1\u00ed",
             "\1\u00ee",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u00f0\7\100",
             "",
             "",
-            "\1\u00ef",
-            "\1\u00f0",
-            "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00f2",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00f3",
             "\1\u00f4",
+            "\1\u00f5",
             "",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
             "\1\u00f6",
+            "",
+            "",
+            "",
             "\1\u00f7",
             "\1\u00f8",
             "",
             "\1\u00f9",
-            "\1\u00fa",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\1\u00fb",
-            "",
-            "\1\u00fc",
-            "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u00fd",
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "",
             "\1\u00ff",
             "\1\u0100",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u0101",
             "\1\u0102",
-            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u0103\7\100",
+            "\1\u0103",
+            "\1\u0104",
+            "\1\u0105",
+            "\1\u0106",
+            "",
+            "\1\u0107",
+            "",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u010a",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u010c",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
+            "\1\u010e",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\22\100\1\u010f\7\100",
+            "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
             "",
-            "\1\u0106",
-            "\1\u0107",
+            "\1\u0113",
+            "",
+            "\1\u0114",
             "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
             "",
             "",
+            "",
             "\12\100\7\uffff\32\100\4\uffff\1\100\1\uffff\32\100",
-            "\1\u010b",
+            "\1\u0118",
             "",
             "",
             "",
@@ -3379,13 +3450,33 @@ public class InternalGeneratorDSLLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
+                        int LA17_55 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 138;}
+
+                        else s = 58;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA17_54 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 137;}
+
+                        else s = 58;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -3473,25 +3564,25 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                         else if ( (LA17_0==':') ) {s = 42;}
 
-                        else if ( (LA17_0=='.') ) {s = 43;}
+                        else if ( (LA17_0=='O') ) {s = 43;}
 
-                        else if ( (LA17_0=='O') ) {s = 44;}
+                        else if ( (LA17_0=='X') ) {s = 44;}
 
-                        else if ( (LA17_0=='X') ) {s = 45;}
+                        else if ( (LA17_0=='A') ) {s = 45;}
 
-                        else if ( (LA17_0=='A') ) {s = 46;}
+                        else if ( (LA17_0=='^') ) {s = 46;}
 
-                        else if ( (LA17_0=='^') ) {s = 47;}
+                        else if ( (LA17_0=='(') ) {s = 47;}
 
-                        else if ( (LA17_0=='(') ) {s = 48;}
+                        else if ( (LA17_0==')') ) {s = 48;}
 
-                        else if ( (LA17_0==')') ) {s = 49;}
+                        else if ( (LA17_0=='|') ) {s = 49;}
 
-                        else if ( (LA17_0=='v') ) {s = 50;}
+                        else if ( (LA17_0=='b') ) {s = 50;}
 
-                        else if ( (LA17_0=='|') ) {s = 51;}
+                        else if ( (LA17_0=='v') ) {s = 51;}
 
-                        else if ( (LA17_0=='b') ) {s = 52;}
+                        else if ( (LA17_0=='.') ) {s = 52;}
 
                         else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 53;}
 
@@ -3505,26 +3596,6 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                         else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||LA17_0=='\\'||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 58;}
 
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
-                        int LA17_54 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 136;}
-
-                        else s = 58;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA17_55 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 137;}
-
-                        else s = 58;
-
                         if ( s>=0 ) return s;
                         break;
             }
diff --git a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLParser.java b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLParser.java
index 2f327b0b..8d80c0f6 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLParser.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl.ide/src-gen/de/evoal/languages/model/generator/dsl/ide/contentassist/antlr/internal/InternalGeneratorDSLParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalGeneratorDSLParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_DOUBLE", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'import'", "';'", "'pipeline'", "'['", "']'", "'step'", "'{'", "'component'", "'}'", "'reads'", "','", "'writes'", "'for'", "'in'", "'loop'", "'end'", "'to'", "'pipelines'", "'write'", "'with'", "'samples'", "'from'", "'executing'", "':='", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'value'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_DOUBLE", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'import'", "';'", "'pipeline'", "'['", "']'", "'step'", "'{'", "'component'", "'}'", "'reads'", "','", "'writes'", "'for'", "'in'", "'loop'", "'end'", "'to'", "'pipelines'", "'write'", "'with'", "'samples'", "'from'", "'executing'", "':='", "'data'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__59=59;
@@ -72,6 +72,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     public static final int T__43=43;
     public static final int T__91=91;
     public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__94=94;
     public static final int T__90=90;
     public static final int T__19=19;
     public static final int T__15=15;
@@ -1613,89 +1615,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalGeneratorDSL.g:528:1: entryRuleQualifiedNameRule : ruleQualifiedNameRule EOF ;
-    public final void entryRuleQualifiedNameRule() throws RecognitionException {
-        try {
-            // InternalGeneratorDSL.g:529:1: ( ruleQualifiedNameRule EOF )
-            // InternalGeneratorDSL.g:530:1: ruleQualifiedNameRule EOF
-            {
-             before(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             after(grammarAccess.getQualifiedNameRuleRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalGeneratorDSL.g:537:1: ruleQualifiedNameRule : ( ( rule__QualifiedNameRule__Group__0 ) ) ;
-    public final void ruleQualifiedNameRule() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalGeneratorDSL.g:541:2: ( ( ( rule__QualifiedNameRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:542:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            {
-            // InternalGeneratorDSL.g:542:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            // InternalGeneratorDSL.g:543:3: ( rule__QualifiedNameRule__Group__0 )
-            {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:544:3: ( rule__QualifiedNameRule__Group__0 )
-            // InternalGeneratorDSL.g:544:4: rule__QualifiedNameRule__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalGeneratorDSL.g:553:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
+    // InternalGeneratorDSL.g:528:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
     public final void entryRuleExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:554:1: ( ruleExpressionRule EOF )
-            // InternalGeneratorDSL.g:555:1: ruleExpressionRule EOF
+            // InternalGeneratorDSL.g:529:1: ( ruleExpressionRule EOF )
+            // InternalGeneratorDSL.g:530:1: ruleExpressionRule EOF
             {
              before(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1721,17 +1646,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalGeneratorDSL.g:562:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
+    // InternalGeneratorDSL.g:537:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
     public final void ruleExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:566:2: ( ( ruleOrExpressionRule ) )
-            // InternalGeneratorDSL.g:567:2: ( ruleOrExpressionRule )
+            // InternalGeneratorDSL.g:541:2: ( ( ruleOrExpressionRule ) )
+            // InternalGeneratorDSL.g:542:2: ( ruleOrExpressionRule )
             {
-            // InternalGeneratorDSL.g:567:2: ( ruleOrExpressionRule )
-            // InternalGeneratorDSL.g:568:3: ruleOrExpressionRule
+            // InternalGeneratorDSL.g:542:2: ( ruleOrExpressionRule )
+            // InternalGeneratorDSL.g:543:3: ruleOrExpressionRule
             {
              before(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall()); 
             pushFollow(FOLLOW_2);
@@ -1762,11 +1687,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalGeneratorDSL.g:578:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
+    // InternalGeneratorDSL.g:553:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
     public final void entryRuleOrExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:579:1: ( ruleOrExpressionRule EOF )
-            // InternalGeneratorDSL.g:580:1: ruleOrExpressionRule EOF
+            // InternalGeneratorDSL.g:554:1: ( ruleOrExpressionRule EOF )
+            // InternalGeneratorDSL.g:555:1: ruleOrExpressionRule EOF
             {
              before(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1792,21 +1717,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalGeneratorDSL.g:587:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:562:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
     public final void ruleOrExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:591:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:592:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:566:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:567:2: ( ( rule__OrExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:592:2: ( ( rule__OrExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:593:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:567:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:568:3: ( rule__OrExpressionRule__Group__0 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:594:3: ( rule__OrExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:594:4: rule__OrExpressionRule__Group__0
+            // InternalGeneratorDSL.g:569:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:569:4: rule__OrExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__0();
@@ -1839,11 +1764,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalGeneratorDSL.g:603:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
+    // InternalGeneratorDSL.g:578:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
     public final void entryRuleXorExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:604:1: ( ruleXorExpressionRule EOF )
-            // InternalGeneratorDSL.g:605:1: ruleXorExpressionRule EOF
+            // InternalGeneratorDSL.g:579:1: ( ruleXorExpressionRule EOF )
+            // InternalGeneratorDSL.g:580:1: ruleXorExpressionRule EOF
             {
              before(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1869,21 +1794,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalGeneratorDSL.g:612:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:587:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
     public final void ruleXorExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:616:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:617:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:591:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:592:2: ( ( rule__XorExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:617:2: ( ( rule__XorExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:618:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:592:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:593:3: ( rule__XorExpressionRule__Group__0 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:619:3: ( rule__XorExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:619:4: rule__XorExpressionRule__Group__0
+            // InternalGeneratorDSL.g:594:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:594:4: rule__XorExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__0();
@@ -1916,11 +1841,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalGeneratorDSL.g:628:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
+    // InternalGeneratorDSL.g:603:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
     public final void entryRuleAndExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:629:1: ( ruleAndExpressionRule EOF )
-            // InternalGeneratorDSL.g:630:1: ruleAndExpressionRule EOF
+            // InternalGeneratorDSL.g:604:1: ( ruleAndExpressionRule EOF )
+            // InternalGeneratorDSL.g:605:1: ruleAndExpressionRule EOF
             {
              before(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1946,21 +1871,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalGeneratorDSL.g:637:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:612:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
     public final void ruleAndExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:641:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:642:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:616:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:617:2: ( ( rule__AndExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:642:2: ( ( rule__AndExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:643:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:617:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:618:3: ( rule__AndExpressionRule__Group__0 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:644:3: ( rule__AndExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:644:4: rule__AndExpressionRule__Group__0
+            // InternalGeneratorDSL.g:619:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:619:4: rule__AndExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__0();
@@ -1993,11 +1918,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalGeneratorDSL.g:653:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
+    // InternalGeneratorDSL.g:628:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
     public final void entryRuleNotExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:654:1: ( ruleNotExpressionRule EOF )
-            // InternalGeneratorDSL.g:655:1: ruleNotExpressionRule EOF
+            // InternalGeneratorDSL.g:629:1: ( ruleNotExpressionRule EOF )
+            // InternalGeneratorDSL.g:630:1: ruleNotExpressionRule EOF
             {
              before(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2023,21 +1948,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalGeneratorDSL.g:662:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:637:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
     public final void ruleNotExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:666:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:667:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:641:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:642:2: ( ( rule__NotExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:667:2: ( ( rule__NotExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:668:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:642:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:643:3: ( rule__NotExpressionRule__Group__0 )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:669:3: ( rule__NotExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:669:4: rule__NotExpressionRule__Group__0
+            // InternalGeneratorDSL.g:644:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:644:4: rule__NotExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__0();
@@ -2070,11 +1995,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalGeneratorDSL.g:678:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
+    // InternalGeneratorDSL.g:653:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
     public final void entryRuleComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:679:1: ( ruleComparisonExpressionRule EOF )
-            // InternalGeneratorDSL.g:680:1: ruleComparisonExpressionRule EOF
+            // InternalGeneratorDSL.g:654:1: ( ruleComparisonExpressionRule EOF )
+            // InternalGeneratorDSL.g:655:1: ruleComparisonExpressionRule EOF
             {
              before(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2100,21 +2025,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalGeneratorDSL.g:687:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:662:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
     public final void ruleComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:691:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:692:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:666:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:667:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:692:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:693:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:667:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:668:3: ( rule__ComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:694:3: ( rule__ComparisonExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:694:4: rule__ComparisonExpressionRule__Group__0
+            // InternalGeneratorDSL.g:669:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:669:4: rule__ComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__0();
@@ -2147,11 +2072,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalGeneratorDSL.g:703:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
+    // InternalGeneratorDSL.g:678:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
     public final void entryRulePartialComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:704:1: ( rulePartialComparisonExpressionRule EOF )
-            // InternalGeneratorDSL.g:705:1: rulePartialComparisonExpressionRule EOF
+            // InternalGeneratorDSL.g:679:1: ( rulePartialComparisonExpressionRule EOF )
+            // InternalGeneratorDSL.g:680:1: rulePartialComparisonExpressionRule EOF
             {
              before(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2177,21 +2102,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalGeneratorDSL.g:712:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:687:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
     public final void rulePartialComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:716:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:717:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:691:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:692:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:717:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:718:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:692:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:693:3: ( rule__PartialComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:719:3: ( rule__PartialComparisonExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:719:4: rule__PartialComparisonExpressionRule__Group__0
+            // InternalGeneratorDSL.g:694:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:694:4: rule__PartialComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__0();
@@ -2224,11 +2149,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:728:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
+    // InternalGeneratorDSL.g:703:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
     public final void entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:729:1: ( ruleAddOrSubtractExpressionRule EOF )
-            // InternalGeneratorDSL.g:730:1: ruleAddOrSubtractExpressionRule EOF
+            // InternalGeneratorDSL.g:704:1: ( ruleAddOrSubtractExpressionRule EOF )
+            // InternalGeneratorDSL.g:705:1: ruleAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2254,21 +2179,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:737:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:712:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:741:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:742:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:716:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:717:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:742:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:743:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:717:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:718:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:744:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:744:4: rule__AddOrSubtractExpressionRule__Group__0
+            // InternalGeneratorDSL.g:719:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:719:4: rule__AddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__0();
@@ -2301,11 +2226,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalGeneratorDSL.g:753:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalGeneratorDSL.g:728:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
     public final void entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:754:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalGeneratorDSL.g:755:1: ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalGeneratorDSL.g:729:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalGeneratorDSL.g:730:1: ruleMultiplyDivideModuloExpressionRule EOF
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2331,21 +2256,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalGeneratorDSL.g:762:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:737:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
     public final void ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:766:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:767:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:741:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:742:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:767:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:768:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:742:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:743:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:769:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:769:4: rule__MultiplyDivideModuloExpressionRule__Group__0
+            // InternalGeneratorDSL.g:744:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:744:4: rule__MultiplyDivideModuloExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__0();
@@ -2378,11 +2303,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalGeneratorDSL.g:778:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
+    // InternalGeneratorDSL.g:753:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
     public final void entryRulePowerOfExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:779:1: ( rulePowerOfExpressionRule EOF )
-            // InternalGeneratorDSL.g:780:1: rulePowerOfExpressionRule EOF
+            // InternalGeneratorDSL.g:754:1: ( rulePowerOfExpressionRule EOF )
+            // InternalGeneratorDSL.g:755:1: rulePowerOfExpressionRule EOF
             {
              before(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2408,21 +2333,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalGeneratorDSL.g:787:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:762:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
     public final void rulePowerOfExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:791:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:792:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:766:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:767:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:792:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:793:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:767:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:768:3: ( rule__PowerOfExpressionRule__Group__0 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:794:3: ( rule__PowerOfExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:794:4: rule__PowerOfExpressionRule__Group__0
+            // InternalGeneratorDSL.g:769:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:769:4: rule__PowerOfExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__0();
@@ -2455,11 +2380,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:803:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalGeneratorDSL.g:778:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final void entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:804:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalGeneratorDSL.g:805:1: ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalGeneratorDSL.g:779:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalGeneratorDSL.g:780:1: ruleUnaryAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2485,21 +2410,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:812:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:787:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:816:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:817:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:791:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:792:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:817:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:818:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:792:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:793:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:819:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
-            // InternalGeneratorDSL.g:819:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
+            // InternalGeneratorDSL.g:794:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalGeneratorDSL.g:794:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__0();
@@ -2532,11 +2457,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalGeneratorDSL.g:828:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
+    // InternalGeneratorDSL.g:803:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
     public final void entryRuleLiteralOrReferenceRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:829:1: ( ruleLiteralOrReferenceRule EOF )
-            // InternalGeneratorDSL.g:830:1: ruleLiteralOrReferenceRule EOF
+            // InternalGeneratorDSL.g:804:1: ( ruleLiteralOrReferenceRule EOF )
+            // InternalGeneratorDSL.g:805:1: ruleLiteralOrReferenceRule EOF
             {
              before(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2562,21 +2487,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalGeneratorDSL.g:837:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:812:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
     public final void ruleLiteralOrReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:841:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:842:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalGeneratorDSL.g:816:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:817:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:842:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
-            // InternalGeneratorDSL.g:843:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalGeneratorDSL.g:817:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalGeneratorDSL.g:818:3: ( rule__LiteralOrReferenceRule__Alternatives )
             {
              before(grammarAccess.getLiteralOrReferenceRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:844:3: ( rule__LiteralOrReferenceRule__Alternatives )
-            // InternalGeneratorDSL.g:844:4: rule__LiteralOrReferenceRule__Alternatives
+            // InternalGeneratorDSL.g:819:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalGeneratorDSL.g:819:4: rule__LiteralOrReferenceRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralOrReferenceRule__Alternatives();
@@ -2609,11 +2534,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalGeneratorDSL.g:853:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
+    // InternalGeneratorDSL.g:828:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
     public final void entryRuleParanthesesRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:854:1: ( ruleParanthesesRule EOF )
-            // InternalGeneratorDSL.g:855:1: ruleParanthesesRule EOF
+            // InternalGeneratorDSL.g:829:1: ( ruleParanthesesRule EOF )
+            // InternalGeneratorDSL.g:830:1: ruleParanthesesRule EOF
             {
              before(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2639,21 +2564,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalGeneratorDSL.g:862:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:837:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
     public final void ruleParanthesesRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:866:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:867:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalGeneratorDSL.g:841:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:842:2: ( ( rule__ParanthesesRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:867:2: ( ( rule__ParanthesesRule__Group__0 ) )
-            // InternalGeneratorDSL.g:868:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalGeneratorDSL.g:842:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalGeneratorDSL.g:843:3: ( rule__ParanthesesRule__Group__0 )
             {
              before(grammarAccess.getParanthesesRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:869:3: ( rule__ParanthesesRule__Group__0 )
-            // InternalGeneratorDSL.g:869:4: rule__ParanthesesRule__Group__0
+            // InternalGeneratorDSL.g:844:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalGeneratorDSL.g:844:4: rule__ParanthesesRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__0();
@@ -2686,11 +2611,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalGeneratorDSL.g:878:1: entryRuleCallRule : ruleCallRule EOF ;
+    // InternalGeneratorDSL.g:853:1: entryRuleCallRule : ruleCallRule EOF ;
     public final void entryRuleCallRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:879:1: ( ruleCallRule EOF )
-            // InternalGeneratorDSL.g:880:1: ruleCallRule EOF
+            // InternalGeneratorDSL.g:854:1: ( ruleCallRule EOF )
+            // InternalGeneratorDSL.g:855:1: ruleCallRule EOF
             {
              before(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2716,21 +2641,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalGeneratorDSL.g:887:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:862:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
     public final void ruleCallRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:891:2: ( ( ( rule__CallRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:892:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalGeneratorDSL.g:866:2: ( ( ( rule__CallRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:867:2: ( ( rule__CallRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:892:2: ( ( rule__CallRule__Group__0 ) )
-            // InternalGeneratorDSL.g:893:3: ( rule__CallRule__Group__0 )
+            // InternalGeneratorDSL.g:867:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalGeneratorDSL.g:868:3: ( rule__CallRule__Group__0 )
             {
              before(grammarAccess.getCallRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:894:3: ( rule__CallRule__Group__0 )
-            // InternalGeneratorDSL.g:894:4: rule__CallRule__Group__0
+            // InternalGeneratorDSL.g:869:3: ( rule__CallRule__Group__0 )
+            // InternalGeneratorDSL.g:869:4: rule__CallRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__0();
@@ -2763,11 +2688,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalGeneratorDSL.g:903:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
+    // InternalGeneratorDSL.g:878:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
     public final void entryRuleValueReferenceRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:904:1: ( ruleValueReferenceRule EOF )
-            // InternalGeneratorDSL.g:905:1: ruleValueReferenceRule EOF
+            // InternalGeneratorDSL.g:879:1: ( ruleValueReferenceRule EOF )
+            // InternalGeneratorDSL.g:880:1: ruleValueReferenceRule EOF
             {
              before(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2793,31 +2718,102 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalGeneratorDSL.g:912:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:887:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:916:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:917:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalGeneratorDSL.g:891:2: ( ( ruleConstantReferenceRule ) )
+            // InternalGeneratorDSL.g:892:2: ( ruleConstantReferenceRule )
+            {
+            // InternalGeneratorDSL.g:892:2: ( ruleConstantReferenceRule )
+            // InternalGeneratorDSL.g:893:3: ruleConstantReferenceRule
+            {
+             before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalGeneratorDSL.g:903:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalGeneratorDSL.g:904:1: ( ruleConstantReferenceRule EOF )
+            // InternalGeneratorDSL.g:905:1: ruleConstantReferenceRule EOF
+            {
+             before(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalGeneratorDSL.g:912:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:916:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalGeneratorDSL.g:917:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
             {
-            // InternalGeneratorDSL.g:917:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalGeneratorDSL.g:918:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalGeneratorDSL.g:917:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalGeneratorDSL.g:918:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:919:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalGeneratorDSL.g:919:4: rule__ValueReferenceRule__Group__0
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            // InternalGeneratorDSL.g:919:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalGeneratorDSL.g:919:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
 
             }
 
@@ -2836,7 +2832,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
@@ -3301,12 +3297,89 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalGeneratorDSL.g:1078:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalGeneratorDSL.g:1079:1: ( ruleTypeDefinitionRule EOF )
+            // InternalGeneratorDSL.g:1080:1: ruleTypeDefinitionRule EOF
+            {
+             before(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalGeneratorDSL.g:1087:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:1091:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1092:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalGeneratorDSL.g:1092:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1093:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            // InternalGeneratorDSL.g:1094:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalGeneratorDSL.g:1094:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalGeneratorDSL.g:1078:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalGeneratorDSL.g:1103:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1079:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalGeneratorDSL.g:1080:1: ruleAttributeDefinitionRule EOF
+            // InternalGeneratorDSL.g:1104:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalGeneratorDSL.g:1105:1: ruleAttributeDefinitionRule EOF
             {
              before(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3332,21 +3405,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalGeneratorDSL.g:1087:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1112:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1091:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1092:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1116:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1117:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1092:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1093:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalGeneratorDSL.g:1117:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1118:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1094:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalGeneratorDSL.g:1094:4: rule__AttributeDefinitionRule__Group__0
+            // InternalGeneratorDSL.g:1119:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalGeneratorDSL.g:1119:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -3379,11 +3452,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalGeneratorDSL.g:1103:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalGeneratorDSL.g:1128:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1104:1: ( ruleTypeRule EOF )
-            // InternalGeneratorDSL.g:1105:1: ruleTypeRule EOF
+            // InternalGeneratorDSL.g:1129:1: ( ruleTypeRule EOF )
+            // InternalGeneratorDSL.g:1130:1: ruleTypeRule EOF
             {
              before(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3409,21 +3482,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalGeneratorDSL.g:1112:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1137:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1116:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1117:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1141:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1142:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1117:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalGeneratorDSL.g:1118:3: ( rule__TypeRule__Alternatives )
+            // InternalGeneratorDSL.g:1142:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1143:3: ( rule__TypeRule__Alternatives )
             {
              before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1119:3: ( rule__TypeRule__Alternatives )
-            // InternalGeneratorDSL.g:1119:4: rule__TypeRule__Alternatives
+            // InternalGeneratorDSL.g:1144:3: ( rule__TypeRule__Alternatives )
+            // InternalGeneratorDSL.g:1144:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -3456,11 +3529,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalGeneratorDSL.g:1128:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalGeneratorDSL.g:1153:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1129:1: ( ruleLiteralTypeRule EOF )
-            // InternalGeneratorDSL.g:1130:1: ruleLiteralTypeRule EOF
+            // InternalGeneratorDSL.g:1154:1: ( ruleLiteralTypeRule EOF )
+            // InternalGeneratorDSL.g:1155:1: ruleLiteralTypeRule EOF
             {
              before(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3486,21 +3559,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalGeneratorDSL.g:1137:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1162:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1141:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1142:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1166:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1167:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1142:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1143:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1167:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1168:3: ( rule__LiteralTypeRule__Group__0 )
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1144:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1144:4: rule__LiteralTypeRule__Group__0
+            // InternalGeneratorDSL.g:1169:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1169:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -3533,11 +3606,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalGeneratorDSL.g:1153:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalGeneratorDSL.g:1178:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1154:1: ( ruleInstanceTypeRule EOF )
-            // InternalGeneratorDSL.g:1155:1: ruleInstanceTypeRule EOF
+            // InternalGeneratorDSL.g:1179:1: ( ruleInstanceTypeRule EOF )
+            // InternalGeneratorDSL.g:1180:1: ruleInstanceTypeRule EOF
             {
              before(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3563,21 +3636,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalGeneratorDSL.g:1162:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1187:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1166:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1167:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1191:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1192:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1167:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1168:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1192:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1193:3: ( rule__InstanceTypeRule__Group__0 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1169:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1169:4: rule__InstanceTypeRule__Group__0
+            // InternalGeneratorDSL.g:1194:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1194:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -3610,11 +3683,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalGeneratorDSL.g:1178:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalGeneratorDSL.g:1203:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1179:1: ( ruleStringTypeRule EOF )
-            // InternalGeneratorDSL.g:1180:1: ruleStringTypeRule EOF
+            // InternalGeneratorDSL.g:1204:1: ( ruleStringTypeRule EOF )
+            // InternalGeneratorDSL.g:1205:1: ruleStringTypeRule EOF
             {
              before(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3640,21 +3713,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalGeneratorDSL.g:1187:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1212:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1191:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1192:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1216:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1217:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1192:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1193:3: ( rule__StringTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1217:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1218:3: ( rule__StringTypeRule__Group__0 )
             {
              before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1194:3: ( rule__StringTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1194:4: rule__StringTypeRule__Group__0
+            // InternalGeneratorDSL.g:1219:3: ( rule__StringTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1219:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -3687,11 +3760,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalGeneratorDSL.g:1203:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalGeneratorDSL.g:1228:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1204:1: ( ruleExpressionTypeRule EOF )
-            // InternalGeneratorDSL.g:1205:1: ruleExpressionTypeRule EOF
+            // InternalGeneratorDSL.g:1229:1: ( ruleExpressionTypeRule EOF )
+            // InternalGeneratorDSL.g:1230:1: ruleExpressionTypeRule EOF
             {
              before(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3717,21 +3790,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalGeneratorDSL.g:1212:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1237:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1216:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1217:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1241:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1242:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1217:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1218:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1242:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1243:3: ( rule__ExpressionTypeRule__Group__0 )
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1219:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1219:4: rule__ExpressionTypeRule__Group__0
+            // InternalGeneratorDSL.g:1244:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1244:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -3764,11 +3837,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalGeneratorDSL.g:1228:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalGeneratorDSL.g:1253:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1229:1: ( ruleIntTypeRule EOF )
-            // InternalGeneratorDSL.g:1230:1: ruleIntTypeRule EOF
+            // InternalGeneratorDSL.g:1254:1: ( ruleIntTypeRule EOF )
+            // InternalGeneratorDSL.g:1255:1: ruleIntTypeRule EOF
             {
              before(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3794,21 +3867,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalGeneratorDSL.g:1237:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1262:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1241:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1242:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1266:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1267:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1242:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1243:3: ( rule__IntTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1267:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1268:3: ( rule__IntTypeRule__Group__0 )
             {
              before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1244:3: ( rule__IntTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1244:4: rule__IntTypeRule__Group__0
+            // InternalGeneratorDSL.g:1269:3: ( rule__IntTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1269:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -3841,11 +3914,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalGeneratorDSL.g:1253:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalGeneratorDSL.g:1278:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1254:1: ( ruleFloatTypeRule EOF )
-            // InternalGeneratorDSL.g:1255:1: ruleFloatTypeRule EOF
+            // InternalGeneratorDSL.g:1279:1: ( ruleFloatTypeRule EOF )
+            // InternalGeneratorDSL.g:1280:1: ruleFloatTypeRule EOF
             {
              before(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3871,21 +3944,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalGeneratorDSL.g:1262:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1287:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1266:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1267:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1291:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1292:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1267:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1268:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1292:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1293:3: ( rule__FloatTypeRule__Group__0 )
             {
              before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1269:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1269:4: rule__FloatTypeRule__Group__0
+            // InternalGeneratorDSL.g:1294:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1294:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -3918,11 +3991,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalGeneratorDSL.g:1278:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalGeneratorDSL.g:1303:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1279:1: ( ruleBooleanTypeRule EOF )
-            // InternalGeneratorDSL.g:1280:1: ruleBooleanTypeRule EOF
+            // InternalGeneratorDSL.g:1304:1: ( ruleBooleanTypeRule EOF )
+            // InternalGeneratorDSL.g:1305:1: ruleBooleanTypeRule EOF
             {
              before(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3948,21 +4021,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalGeneratorDSL.g:1287:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1312:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1291:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1292:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1316:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1317:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1292:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1293:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1317:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1318:3: ( rule__BooleanTypeRule__Group__0 )
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1294:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1294:4: rule__BooleanTypeRule__Group__0
+            // InternalGeneratorDSL.g:1319:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1319:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -3995,11 +4068,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalGeneratorDSL.g:1303:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalGeneratorDSL.g:1328:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1304:1: ( ruleVoidTypeRule EOF )
-            // InternalGeneratorDSL.g:1305:1: ruleVoidTypeRule EOF
+            // InternalGeneratorDSL.g:1329:1: ( ruleVoidTypeRule EOF )
+            // InternalGeneratorDSL.g:1330:1: ruleVoidTypeRule EOF
             {
              before(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4025,21 +4098,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalGeneratorDSL.g:1312:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1337:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1316:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1317:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1341:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1342:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1317:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1318:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1342:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1343:3: ( rule__VoidTypeRule__Group__0 )
             {
              before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1319:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1319:4: rule__VoidTypeRule__Group__0
+            // InternalGeneratorDSL.g:1344:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1344:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -4072,11 +4145,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalGeneratorDSL.g:1328:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalGeneratorDSL.g:1353:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1329:1: ( ruleDataTypeRule EOF )
-            // InternalGeneratorDSL.g:1330:1: ruleDataTypeRule EOF
+            // InternalGeneratorDSL.g:1354:1: ( ruleDataTypeRule EOF )
+            // InternalGeneratorDSL.g:1355:1: ruleDataTypeRule EOF
             {
              before(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4102,21 +4175,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalGeneratorDSL.g:1337:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1362:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1341:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1342:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1366:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1367:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1342:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1343:3: ( rule__DataTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1367:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1368:3: ( rule__DataTypeRule__Group__0 )
             {
              before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1344:3: ( rule__DataTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1344:4: rule__DataTypeRule__Group__0
+            // InternalGeneratorDSL.g:1369:3: ( rule__DataTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1369:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -4149,11 +4222,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalGeneratorDSL.g:1353:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalGeneratorDSL.g:1378:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1354:1: ( ruleArrayTypeRule EOF )
-            // InternalGeneratorDSL.g:1355:1: ruleArrayTypeRule EOF
+            // InternalGeneratorDSL.g:1379:1: ( ruleArrayTypeRule EOF )
+            // InternalGeneratorDSL.g:1380:1: ruleArrayTypeRule EOF
             {
              before(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4179,21 +4252,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalGeneratorDSL.g:1362:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1387:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1366:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1367:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1391:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1392:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1367:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1368:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1392:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1393:3: ( rule__ArrayTypeRule__Group__0 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1369:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalGeneratorDSL.g:1369:4: rule__ArrayTypeRule__Group__0
+            // InternalGeneratorDSL.g:1394:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalGeneratorDSL.g:1394:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -4226,11 +4299,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalGeneratorDSL.g:1378:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalGeneratorDSL.g:1403:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1379:1: ( ruleParameterRule EOF )
-            // InternalGeneratorDSL.g:1380:1: ruleParameterRule EOF
+            // InternalGeneratorDSL.g:1404:1: ( ruleParameterRule EOF )
+            // InternalGeneratorDSL.g:1405:1: ruleParameterRule EOF
             {
              before(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4256,21 +4329,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalGeneratorDSL.g:1387:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1412:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1391:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1392:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1416:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1417:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1392:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalGeneratorDSL.g:1393:3: ( rule__ParameterRule__Group__0 )
+            // InternalGeneratorDSL.g:1417:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalGeneratorDSL.g:1418:3: ( rule__ParameterRule__Group__0 )
             {
              before(grammarAccess.getParameterRuleAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1394:3: ( rule__ParameterRule__Group__0 )
-            // InternalGeneratorDSL.g:1394:4: rule__ParameterRule__Group__0
+            // InternalGeneratorDSL.g:1419:3: ( rule__ParameterRule__Group__0 )
+            // InternalGeneratorDSL.g:1419:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -4303,11 +4376,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalGeneratorDSL.g:1403:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalGeneratorDSL.g:1428:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1404:1: ( ruleFunctionNameRule EOF )
-            // InternalGeneratorDSL.g:1405:1: ruleFunctionNameRule EOF
+            // InternalGeneratorDSL.g:1429:1: ( ruleFunctionNameRule EOF )
+            // InternalGeneratorDSL.g:1430:1: ruleFunctionNameRule EOF
             {
              before(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4333,21 +4406,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalGeneratorDSL.g:1412:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalGeneratorDSL.g:1437:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1416:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalGeneratorDSL.g:1417:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalGeneratorDSL.g:1441:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalGeneratorDSL.g:1442:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalGeneratorDSL.g:1417:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalGeneratorDSL.g:1418:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalGeneratorDSL.g:1442:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalGeneratorDSL.g:1443:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
-            // InternalGeneratorDSL.g:1419:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalGeneratorDSL.g:1419:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalGeneratorDSL.g:1444:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalGeneratorDSL.g:1444:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -4380,11 +4453,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalGeneratorDSL.g:1428:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalGeneratorDSL.g:1453:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1429:1: ( ruleQualifiedName EOF )
-            // InternalGeneratorDSL.g:1430:1: ruleQualifiedName EOF
+            // InternalGeneratorDSL.g:1454:1: ( ruleQualifiedName EOF )
+            // InternalGeneratorDSL.g:1455:1: ruleQualifiedName EOF
             {
              before(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -4410,21 +4483,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalGeneratorDSL.g:1437:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalGeneratorDSL.g:1462:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1441:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalGeneratorDSL.g:1442:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalGeneratorDSL.g:1466:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalGeneratorDSL.g:1467:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalGeneratorDSL.g:1442:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalGeneratorDSL.g:1443:3: ( rule__QualifiedName__Group__0 )
+            // InternalGeneratorDSL.g:1467:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalGeneratorDSL.g:1468:3: ( rule__QualifiedName__Group__0 )
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            // InternalGeneratorDSL.g:1444:3: ( rule__QualifiedName__Group__0 )
-            // InternalGeneratorDSL.g:1444:4: rule__QualifiedName__Group__0
+            // InternalGeneratorDSL.g:1469:3: ( rule__QualifiedName__Group__0 )
+            // InternalGeneratorDSL.g:1469:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -4457,11 +4530,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalGeneratorDSL.g:1453:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalGeneratorDSL.g:1478:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:1454:1: ( ruleStringOrId EOF )
-            // InternalGeneratorDSL.g:1455:1: ruleStringOrId EOF
+            // InternalGeneratorDSL.g:1479:1: ( ruleStringOrId EOF )
+            // InternalGeneratorDSL.g:1480:1: ruleStringOrId EOF
             {
              before(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -4487,21 +4560,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalGeneratorDSL.g:1462:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1487:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1466:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1467:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalGeneratorDSL.g:1491:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1492:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1467:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalGeneratorDSL.g:1468:3: ( rule__StringOrId__Alternatives )
+            // InternalGeneratorDSL.g:1492:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalGeneratorDSL.g:1493:3: ( rule__StringOrId__Alternatives )
             {
              before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1469:3: ( rule__StringOrId__Alternatives )
-            // InternalGeneratorDSL.g:1469:4: rule__StringOrId__Alternatives
+            // InternalGeneratorDSL.g:1494:3: ( rule__StringOrId__Alternatives )
+            // InternalGeneratorDSL.g:1494:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -4534,21 +4607,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalGeneratorDSL.g:1478:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1503:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1482:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1483:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1507:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1508:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1483:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalGeneratorDSL.g:1484:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1508:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1509:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
              before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1485:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalGeneratorDSL.g:1485:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalGeneratorDSL.g:1510:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1510:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -4581,21 +4654,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalGeneratorDSL.g:1494:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1519:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1498:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1499:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1523:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1524:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1499:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalGeneratorDSL.g:1500:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1524:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1525:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
              before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1501:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalGeneratorDSL.g:1501:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalGeneratorDSL.g:1526:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1526:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -4628,21 +4701,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalGeneratorDSL.g:1510:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1535:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1514:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1515:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1539:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1540:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1515:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalGeneratorDSL.g:1516:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1540:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1541:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
              before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1517:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalGeneratorDSL.g:1517:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalGeneratorDSL.g:1542:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalGeneratorDSL.g:1542:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -4675,21 +4748,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalGeneratorDSL.g:1526:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalGeneratorDSL.g:1551:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1530:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalGeneratorDSL.g:1531:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1555:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalGeneratorDSL.g:1556:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalGeneratorDSL.g:1531:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalGeneratorDSL.g:1532:3: ( rule__FactorRule__Alternatives )
+            // InternalGeneratorDSL.g:1556:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalGeneratorDSL.g:1557:3: ( rule__FactorRule__Alternatives )
             {
              before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
-            // InternalGeneratorDSL.g:1533:3: ( rule__FactorRule__Alternatives )
-            // InternalGeneratorDSL.g:1533:4: rule__FactorRule__Alternatives
+            // InternalGeneratorDSL.g:1558:3: ( rule__FactorRule__Alternatives )
+            // InternalGeneratorDSL.g:1558:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -4722,13 +4795,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StatementRule__Alternatives"
-    // InternalGeneratorDSL.g:1541:1: rule__StatementRule__Alternatives : ( ( ruleForStatementRule ) | ( ruleApplyStatementRule ) );
+    // InternalGeneratorDSL.g:1566:1: rule__StatementRule__Alternatives : ( ( ruleForStatementRule ) | ( ruleApplyStatementRule ) );
     public final void rule__StatementRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1545:1: ( ( ruleForStatementRule ) | ( ruleApplyStatementRule ) )
+            // InternalGeneratorDSL.g:1570:1: ( ( ruleForStatementRule ) | ( ruleApplyStatementRule ) )
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -4746,10 +4819,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt1) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1546:2: ( ruleForStatementRule )
+                    // InternalGeneratorDSL.g:1571:2: ( ruleForStatementRule )
                     {
-                    // InternalGeneratorDSL.g:1546:2: ( ruleForStatementRule )
-                    // InternalGeneratorDSL.g:1547:3: ruleForStatementRule
+                    // InternalGeneratorDSL.g:1571:2: ( ruleForStatementRule )
+                    // InternalGeneratorDSL.g:1572:3: ruleForStatementRule
                     {
                      before(grammarAccess.getStatementRuleAccess().getForStatementRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4765,10 +4838,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1552:2: ( ruleApplyStatementRule )
+                    // InternalGeneratorDSL.g:1577:2: ( ruleApplyStatementRule )
                     {
-                    // InternalGeneratorDSL.g:1552:2: ( ruleApplyStatementRule )
-                    // InternalGeneratorDSL.g:1553:3: ruleApplyStatementRule
+                    // InternalGeneratorDSL.g:1577:2: ( ruleApplyStatementRule )
+                    // InternalGeneratorDSL.g:1578:3: ruleApplyStatementRule
                     {
                      before(grammarAccess.getStatementRuleAccess().getApplyStatementRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4801,13 +4874,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__RangeRule__Alternatives"
-    // InternalGeneratorDSL.g:1562:1: rule__RangeRule__Alternatives : ( ( rulePipelineArrayRule ) | ( ruleCounterRangeRule ) );
+    // InternalGeneratorDSL.g:1587:1: rule__RangeRule__Alternatives : ( ( rulePipelineArrayRule ) | ( ruleCounterRangeRule ) );
     public final void rule__RangeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1566:1: ( ( rulePipelineArrayRule ) | ( ruleCounterRangeRule ) )
+            // InternalGeneratorDSL.g:1591:1: ( ( rulePipelineArrayRule ) | ( ruleCounterRangeRule ) )
             int alt2=2;
             int LA2_0 = input.LA(1);
 
@@ -4825,10 +4898,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt2) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1567:2: ( rulePipelineArrayRule )
+                    // InternalGeneratorDSL.g:1592:2: ( rulePipelineArrayRule )
                     {
-                    // InternalGeneratorDSL.g:1567:2: ( rulePipelineArrayRule )
-                    // InternalGeneratorDSL.g:1568:3: rulePipelineArrayRule
+                    // InternalGeneratorDSL.g:1592:2: ( rulePipelineArrayRule )
+                    // InternalGeneratorDSL.g:1593:3: rulePipelineArrayRule
                     {
                      before(grammarAccess.getRangeRuleAccess().getPipelineArrayRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4844,10 +4917,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1573:2: ( ruleCounterRangeRule )
+                    // InternalGeneratorDSL.g:1598:2: ( ruleCounterRangeRule )
                     {
-                    // InternalGeneratorDSL.g:1573:2: ( ruleCounterRangeRule )
-                    // InternalGeneratorDSL.g:1574:3: ruleCounterRangeRule
+                    // InternalGeneratorDSL.g:1598:2: ( ruleCounterRangeRule )
+                    // InternalGeneratorDSL.g:1599:3: ruleCounterRangeRule
                     {
                      before(grammarAccess.getRangeRuleAccess().getCounterRangeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4880,13 +4953,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineReferenceRule__Alternatives"
-    // InternalGeneratorDSL.g:1583:1: rule__PipelineReferenceRule__Alternatives : ( ( rulePipelineDefinitionReferenceRule ) | ( ruleVariableReferenceRule ) );
+    // InternalGeneratorDSL.g:1608:1: rule__PipelineReferenceRule__Alternatives : ( ( rulePipelineDefinitionReferenceRule ) | ( ruleVariableReferenceRule ) );
     public final void rule__PipelineReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1587:1: ( ( rulePipelineDefinitionReferenceRule ) | ( ruleVariableReferenceRule ) )
+            // InternalGeneratorDSL.g:1612:1: ( ( rulePipelineDefinitionReferenceRule ) | ( ruleVariableReferenceRule ) )
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -4904,10 +4977,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt3) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1588:2: ( rulePipelineDefinitionReferenceRule )
+                    // InternalGeneratorDSL.g:1613:2: ( rulePipelineDefinitionReferenceRule )
                     {
-                    // InternalGeneratorDSL.g:1588:2: ( rulePipelineDefinitionReferenceRule )
-                    // InternalGeneratorDSL.g:1589:3: rulePipelineDefinitionReferenceRule
+                    // InternalGeneratorDSL.g:1613:2: ( rulePipelineDefinitionReferenceRule )
+                    // InternalGeneratorDSL.g:1614:3: rulePipelineDefinitionReferenceRule
                     {
                      before(grammarAccess.getPipelineReferenceRuleAccess().getPipelineDefinitionReferenceRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4923,10 +4996,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1594:2: ( ruleVariableReferenceRule )
+                    // InternalGeneratorDSL.g:1619:2: ( ruleVariableReferenceRule )
                     {
-                    // InternalGeneratorDSL.g:1594:2: ( ruleVariableReferenceRule )
-                    // InternalGeneratorDSL.g:1595:3: ruleVariableReferenceRule
+                    // InternalGeneratorDSL.g:1619:2: ( ruleVariableReferenceRule )
+                    // InternalGeneratorDSL.g:1620:3: ruleVariableReferenceRule
                     {
                      before(grammarAccess.getPipelineReferenceRuleAccess().getVariableReferenceRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4959,13 +5032,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ValueRule__Alternatives"
-    // InternalGeneratorDSL.g:1604:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
+    // InternalGeneratorDSL.g:1629:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
     public final void rule__ValueRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1608:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
+            // InternalGeneratorDSL.g:1633:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
             int alt4=4;
             switch ( input.LA(1) ) {
             case 50:
@@ -4988,7 +5061,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             case RULE_STRING:
             case RULE_DOUBLE:
             case 15:
-            case 92:
+            case 93:
                 {
                 alt4=4;
                 }
@@ -5002,10 +5075,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt4) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1609:2: ( ruleArrayRule )
+                    // InternalGeneratorDSL.g:1634:2: ( ruleArrayRule )
                     {
-                    // InternalGeneratorDSL.g:1609:2: ( ruleArrayRule )
-                    // InternalGeneratorDSL.g:1610:3: ruleArrayRule
+                    // InternalGeneratorDSL.g:1634:2: ( ruleArrayRule )
+                    // InternalGeneratorDSL.g:1635:3: ruleArrayRule
                     {
                      before(grammarAccess.getValueRuleAccess().getArrayRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -5021,10 +5094,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1615:2: ( ruleDataReferenceRule )
+                    // InternalGeneratorDSL.g:1640:2: ( ruleDataReferenceRule )
                     {
-                    // InternalGeneratorDSL.g:1615:2: ( ruleDataReferenceRule )
-                    // InternalGeneratorDSL.g:1616:3: ruleDataReferenceRule
+                    // InternalGeneratorDSL.g:1640:2: ( ruleDataReferenceRule )
+                    // InternalGeneratorDSL.g:1641:3: ruleDataReferenceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -5040,10 +5113,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1621:2: ( ruleInstanceRule )
+                    // InternalGeneratorDSL.g:1646:2: ( ruleInstanceRule )
                     {
-                    // InternalGeneratorDSL.g:1621:2: ( ruleInstanceRule )
-                    // InternalGeneratorDSL.g:1622:3: ruleInstanceRule
+                    // InternalGeneratorDSL.g:1646:2: ( ruleInstanceRule )
+                    // InternalGeneratorDSL.g:1647:3: ruleInstanceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getInstanceRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -5059,10 +5132,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:1627:2: ( ruleLiteralValueRule )
+                    // InternalGeneratorDSL.g:1652:2: ( ruleLiteralValueRule )
                     {
-                    // InternalGeneratorDSL.g:1627:2: ( ruleLiteralValueRule )
-                    // InternalGeneratorDSL.g:1628:3: ruleLiteralValueRule
+                    // InternalGeneratorDSL.g:1652:2: ( ruleLiteralValueRule )
+                    // InternalGeneratorDSL.g:1653:3: ruleLiteralValueRule
                     {
                      before(grammarAccess.getValueRuleAccess().getLiteralValueRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -5095,53 +5168,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalGeneratorDSL.g:1637:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalGeneratorDSL.g:1662:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1641:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalGeneratorDSL.g:1666:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt5=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt5=1;
-                }
-                break;
-            case RULE_INT:
-            case RULE_STRING:
-            case RULE_DOUBLE:
-            case 15:
-            case 92:
-                {
-                alt5=2;
-                }
-                break;
-            case 77:
-                {
-                alt5=3;
-                }
-                break;
-            case 79:
-                {
-                alt5=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 5, 0, input);
-
-                throw nvae;
-            }
-
+            alt5 = dfa5.predict(input);
             switch (alt5) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1642:2: ( ruleCallRule )
+                    // InternalGeneratorDSL.g:1667:2: ( ruleCallRule )
                     {
-                    // InternalGeneratorDSL.g:1642:2: ( ruleCallRule )
-                    // InternalGeneratorDSL.g:1643:3: ruleCallRule
+                    // InternalGeneratorDSL.g:1667:2: ( ruleCallRule )
+                    // InternalGeneratorDSL.g:1668:3: ruleCallRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -5157,10 +5198,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1648:2: ( ruleLiteralRule )
+                    // InternalGeneratorDSL.g:1673:2: ( ruleLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1648:2: ( ruleLiteralRule )
-                    // InternalGeneratorDSL.g:1649:3: ruleLiteralRule
+                    // InternalGeneratorDSL.g:1673:2: ( ruleLiteralRule )
+                    // InternalGeneratorDSL.g:1674:3: ruleLiteralRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -5176,10 +5217,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1654:2: ( ruleParanthesesRule )
+                    // InternalGeneratorDSL.g:1679:2: ( ruleParanthesesRule )
                     {
-                    // InternalGeneratorDSL.g:1654:2: ( ruleParanthesesRule )
-                    // InternalGeneratorDSL.g:1655:3: ruleParanthesesRule
+                    // InternalGeneratorDSL.g:1679:2: ( ruleParanthesesRule )
+                    // InternalGeneratorDSL.g:1680:3: ruleParanthesesRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -5195,10 +5236,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:1660:2: ( ruleValueReferenceRule )
+                    // InternalGeneratorDSL.g:1685:2: ( ruleValueReferenceRule )
                     {
-                    // InternalGeneratorDSL.g:1660:2: ( ruleValueReferenceRule )
-                    // InternalGeneratorDSL.g:1661:3: ruleValueReferenceRule
+                    // InternalGeneratorDSL.g:1685:2: ( ruleValueReferenceRule )
+                    // InternalGeneratorDSL.g:1686:3: ruleValueReferenceRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -5231,13 +5272,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalGeneratorDSL.g:1670:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalGeneratorDSL.g:1695:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1674:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalGeneratorDSL.g:1699:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt6=3;
             switch ( input.LA(1) ) {
             case RULE_INT:
@@ -5252,7 +5293,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
                 break;
             case 15:
-            case 92:
+            case 93:
                 {
                 alt6=3;
                 }
@@ -5266,10 +5307,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt6) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1675:2: ( ruleNumberLiteralRule )
+                    // InternalGeneratorDSL.g:1700:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1675:2: ( ruleNumberLiteralRule )
-                    // InternalGeneratorDSL.g:1676:3: ruleNumberLiteralRule
+                    // InternalGeneratorDSL.g:1700:2: ( ruleNumberLiteralRule )
+                    // InternalGeneratorDSL.g:1701:3: ruleNumberLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -5285,10 +5326,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1681:2: ( ruleStringLiteralRule )
+                    // InternalGeneratorDSL.g:1706:2: ( ruleStringLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1681:2: ( ruleStringLiteralRule )
-                    // InternalGeneratorDSL.g:1682:3: ruleStringLiteralRule
+                    // InternalGeneratorDSL.g:1706:2: ( ruleStringLiteralRule )
+                    // InternalGeneratorDSL.g:1707:3: ruleStringLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -5304,10 +5345,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1687:2: ( ruleBooleanLiteralRule )
+                    // InternalGeneratorDSL.g:1712:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1687:2: ( ruleBooleanLiteralRule )
-                    // InternalGeneratorDSL.g:1688:3: ruleBooleanLiteralRule
+                    // InternalGeneratorDSL.g:1712:2: ( ruleBooleanLiteralRule )
+                    // InternalGeneratorDSL.g:1713:3: ruleBooleanLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -5340,13 +5381,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalGeneratorDSL.g:1697:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalGeneratorDSL.g:1722:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1701:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalGeneratorDSL.g:1726:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -5364,10 +5405,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt7) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1702:2: ( ruleDoubleLiteralRule )
+                    // InternalGeneratorDSL.g:1727:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1702:2: ( ruleDoubleLiteralRule )
-                    // InternalGeneratorDSL.g:1703:3: ruleDoubleLiteralRule
+                    // InternalGeneratorDSL.g:1727:2: ( ruleDoubleLiteralRule )
+                    // InternalGeneratorDSL.g:1728:3: ruleDoubleLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -5383,10 +5424,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1708:2: ( ruleIntegerLiteralRule )
+                    // InternalGeneratorDSL.g:1733:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalGeneratorDSL.g:1708:2: ( ruleIntegerLiteralRule )
-                    // InternalGeneratorDSL.g:1709:3: ruleIntegerLiteralRule
+                    // InternalGeneratorDSL.g:1733:2: ( ruleIntegerLiteralRule )
+                    // InternalGeneratorDSL.g:1734:3: ruleIntegerLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -5419,17 +5460,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalGeneratorDSL.g:1718:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalGeneratorDSL.g:1743:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1722:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalGeneratorDSL.g:1747:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt8=2;
             int LA8_0 = input.LA(1);
 
-            if ( (LA8_0==92) ) {
+            if ( (LA8_0==93) ) {
                 alt8=1;
             }
             else if ( (LA8_0==15) ) {
@@ -5443,14 +5484,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt8) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1723:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalGeneratorDSL.g:1748:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalGeneratorDSL.g:1723:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalGeneratorDSL.g:1724:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalGeneratorDSL.g:1748:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalGeneratorDSL.g:1749:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
-                    // InternalGeneratorDSL.g:1725:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalGeneratorDSL.g:1725:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalGeneratorDSL.g:1750:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalGeneratorDSL.g:1750:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -5468,10 +5509,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1729:2: ( 'false' )
+                    // InternalGeneratorDSL.g:1754:2: ( 'false' )
                     {
-                    // InternalGeneratorDSL.g:1729:2: ( 'false' )
-                    // InternalGeneratorDSL.g:1730:3: 'false'
+                    // InternalGeneratorDSL.g:1754:2: ( 'false' )
+                    // InternalGeneratorDSL.g:1755:3: 'false'
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
                     match(input,15,FOLLOW_2); 
@@ -5500,13 +5541,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalGeneratorDSL.g:1739:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalGeneratorDSL.g:1764:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1743:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalGeneratorDSL.g:1768:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt9=10;
             switch ( input.LA(1) ) {
             case 84:
@@ -5568,10 +5609,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt9) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1744:2: ( ruleStringTypeRule )
+                    // InternalGeneratorDSL.g:1769:2: ( ruleStringTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1744:2: ( ruleStringTypeRule )
-                    // InternalGeneratorDSL.g:1745:3: ruleStringTypeRule
+                    // InternalGeneratorDSL.g:1769:2: ( ruleStringTypeRule )
+                    // InternalGeneratorDSL.g:1770:3: ruleStringTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -5587,10 +5628,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1750:2: ( ruleIntTypeRule )
+                    // InternalGeneratorDSL.g:1775:2: ( ruleIntTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1750:2: ( ruleIntTypeRule )
-                    // InternalGeneratorDSL.g:1751:3: ruleIntTypeRule
+                    // InternalGeneratorDSL.g:1775:2: ( ruleIntTypeRule )
+                    // InternalGeneratorDSL.g:1776:3: ruleIntTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -5606,10 +5647,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1756:2: ( ruleFloatTypeRule )
+                    // InternalGeneratorDSL.g:1781:2: ( ruleFloatTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1756:2: ( ruleFloatTypeRule )
-                    // InternalGeneratorDSL.g:1757:3: ruleFloatTypeRule
+                    // InternalGeneratorDSL.g:1781:2: ( ruleFloatTypeRule )
+                    // InternalGeneratorDSL.g:1782:3: ruleFloatTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -5625,10 +5666,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:1762:2: ( ruleBooleanTypeRule )
+                    // InternalGeneratorDSL.g:1787:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1762:2: ( ruleBooleanTypeRule )
-                    // InternalGeneratorDSL.g:1763:3: ruleBooleanTypeRule
+                    // InternalGeneratorDSL.g:1787:2: ( ruleBooleanTypeRule )
+                    // InternalGeneratorDSL.g:1788:3: ruleBooleanTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -5644,10 +5685,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:1768:2: ( ruleLiteralTypeRule )
+                    // InternalGeneratorDSL.g:1793:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1768:2: ( ruleLiteralTypeRule )
-                    // InternalGeneratorDSL.g:1769:3: ruleLiteralTypeRule
+                    // InternalGeneratorDSL.g:1793:2: ( ruleLiteralTypeRule )
+                    // InternalGeneratorDSL.g:1794:3: ruleLiteralTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
                     pushFollow(FOLLOW_2);
@@ -5663,10 +5704,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:1774:2: ( ruleArrayTypeRule )
+                    // InternalGeneratorDSL.g:1799:2: ( ruleArrayTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1774:2: ( ruleArrayTypeRule )
-                    // InternalGeneratorDSL.g:1775:3: ruleArrayTypeRule
+                    // InternalGeneratorDSL.g:1799:2: ( ruleArrayTypeRule )
+                    // InternalGeneratorDSL.g:1800:3: ruleArrayTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
                     pushFollow(FOLLOW_2);
@@ -5682,10 +5723,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 7 :
-                    // InternalGeneratorDSL.g:1780:2: ( ruleInstanceTypeRule )
+                    // InternalGeneratorDSL.g:1805:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1780:2: ( ruleInstanceTypeRule )
-                    // InternalGeneratorDSL.g:1781:3: ruleInstanceTypeRule
+                    // InternalGeneratorDSL.g:1805:2: ( ruleInstanceTypeRule )
+                    // InternalGeneratorDSL.g:1806:3: ruleInstanceTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
                     pushFollow(FOLLOW_2);
@@ -5701,10 +5742,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 8 :
-                    // InternalGeneratorDSL.g:1786:2: ( ruleVoidTypeRule )
+                    // InternalGeneratorDSL.g:1811:2: ( ruleVoidTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1786:2: ( ruleVoidTypeRule )
-                    // InternalGeneratorDSL.g:1787:3: ruleVoidTypeRule
+                    // InternalGeneratorDSL.g:1811:2: ( ruleVoidTypeRule )
+                    // InternalGeneratorDSL.g:1812:3: ruleVoidTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
                     pushFollow(FOLLOW_2);
@@ -5720,10 +5761,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 9 :
-                    // InternalGeneratorDSL.g:1792:2: ( ruleExpressionTypeRule )
+                    // InternalGeneratorDSL.g:1817:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1792:2: ( ruleExpressionTypeRule )
-                    // InternalGeneratorDSL.g:1793:3: ruleExpressionTypeRule
+                    // InternalGeneratorDSL.g:1817:2: ( ruleExpressionTypeRule )
+                    // InternalGeneratorDSL.g:1818:3: ruleExpressionTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
                     pushFollow(FOLLOW_2);
@@ -5739,10 +5780,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 10 :
-                    // InternalGeneratorDSL.g:1798:2: ( ruleDataTypeRule )
+                    // InternalGeneratorDSL.g:1823:2: ( ruleDataTypeRule )
                     {
-                    // InternalGeneratorDSL.g:1798:2: ( ruleDataTypeRule )
-                    // InternalGeneratorDSL.g:1799:3: ruleDataTypeRule
+                    // InternalGeneratorDSL.g:1823:2: ( ruleDataTypeRule )
+                    // InternalGeneratorDSL.g:1824:3: ruleDataTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
                     pushFollow(FOLLOW_2);
@@ -5775,13 +5816,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalGeneratorDSL.g:1808:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalGeneratorDSL.g:1833:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1812:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalGeneratorDSL.g:1837:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -5799,10 +5840,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt10) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1813:2: ( RULE_QUOTED_ID )
+                    // InternalGeneratorDSL.g:1838:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalGeneratorDSL.g:1813:2: ( RULE_QUOTED_ID )
-                    // InternalGeneratorDSL.g:1814:3: RULE_QUOTED_ID
+                    // InternalGeneratorDSL.g:1838:2: ( RULE_QUOTED_ID )
+                    // InternalGeneratorDSL.g:1839:3: RULE_QUOTED_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
                     match(input,RULE_QUOTED_ID,FOLLOW_2); 
@@ -5814,10 +5855,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1819:2: ( RULE_ID )
+                    // InternalGeneratorDSL.g:1844:2: ( RULE_ID )
                     {
-                    // InternalGeneratorDSL.g:1819:2: ( RULE_ID )
-                    // InternalGeneratorDSL.g:1820:3: RULE_ID
+                    // InternalGeneratorDSL.g:1844:2: ( RULE_ID )
+                    // InternalGeneratorDSL.g:1845:3: RULE_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
                     match(input,RULE_ID,FOLLOW_2); 
@@ -5846,13 +5887,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalGeneratorDSL.g:1829:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalGeneratorDSL.g:1854:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1833:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalGeneratorDSL.g:1858:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt11=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -5894,14 +5935,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt11) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1834:2: ( ( '>=' ) )
+                    // InternalGeneratorDSL.g:1859:2: ( ( '>=' ) )
                     {
-                    // InternalGeneratorDSL.g:1834:2: ( ( '>=' ) )
-                    // InternalGeneratorDSL.g:1835:3: ( '>=' )
+                    // InternalGeneratorDSL.g:1859:2: ( ( '>=' ) )
+                    // InternalGeneratorDSL.g:1860:3: ( '>=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
-                    // InternalGeneratorDSL.g:1836:3: ( '>=' )
-                    // InternalGeneratorDSL.g:1836:4: '>='
+                    // InternalGeneratorDSL.g:1861:3: ( '>=' )
+                    // InternalGeneratorDSL.g:1861:4: '>='
                     {
                     match(input,16,FOLLOW_2); 
 
@@ -5915,14 +5956,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1840:2: ( ( '>' ) )
+                    // InternalGeneratorDSL.g:1865:2: ( ( '>' ) )
                     {
-                    // InternalGeneratorDSL.g:1840:2: ( ( '>' ) )
-                    // InternalGeneratorDSL.g:1841:3: ( '>' )
+                    // InternalGeneratorDSL.g:1865:2: ( ( '>' ) )
+                    // InternalGeneratorDSL.g:1866:3: ( '>' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
-                    // InternalGeneratorDSL.g:1842:3: ( '>' )
-                    // InternalGeneratorDSL.g:1842:4: '>'
+                    // InternalGeneratorDSL.g:1867:3: ( '>' )
+                    // InternalGeneratorDSL.g:1867:4: '>'
                     {
                     match(input,17,FOLLOW_2); 
 
@@ -5936,14 +5977,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1846:2: ( ( '=' ) )
+                    // InternalGeneratorDSL.g:1871:2: ( ( '=' ) )
                     {
-                    // InternalGeneratorDSL.g:1846:2: ( ( '=' ) )
-                    // InternalGeneratorDSL.g:1847:3: ( '=' )
+                    // InternalGeneratorDSL.g:1871:2: ( ( '=' ) )
+                    // InternalGeneratorDSL.g:1872:3: ( '=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
-                    // InternalGeneratorDSL.g:1848:3: ( '=' )
-                    // InternalGeneratorDSL.g:1848:4: '='
+                    // InternalGeneratorDSL.g:1873:3: ( '=' )
+                    // InternalGeneratorDSL.g:1873:4: '='
                     {
                     match(input,18,FOLLOW_2); 
 
@@ -5957,14 +5998,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:1852:2: ( ( '!=' ) )
+                    // InternalGeneratorDSL.g:1877:2: ( ( '!=' ) )
                     {
-                    // InternalGeneratorDSL.g:1852:2: ( ( '!=' ) )
-                    // InternalGeneratorDSL.g:1853:3: ( '!=' )
+                    // InternalGeneratorDSL.g:1877:2: ( ( '!=' ) )
+                    // InternalGeneratorDSL.g:1878:3: ( '!=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
-                    // InternalGeneratorDSL.g:1854:3: ( '!=' )
-                    // InternalGeneratorDSL.g:1854:4: '!='
+                    // InternalGeneratorDSL.g:1879:3: ( '!=' )
+                    // InternalGeneratorDSL.g:1879:4: '!='
                     {
                     match(input,19,FOLLOW_2); 
 
@@ -5978,14 +6019,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:1858:2: ( ( '<' ) )
+                    // InternalGeneratorDSL.g:1883:2: ( ( '<' ) )
                     {
-                    // InternalGeneratorDSL.g:1858:2: ( ( '<' ) )
-                    // InternalGeneratorDSL.g:1859:3: ( '<' )
+                    // InternalGeneratorDSL.g:1883:2: ( ( '<' ) )
+                    // InternalGeneratorDSL.g:1884:3: ( '<' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
-                    // InternalGeneratorDSL.g:1860:3: ( '<' )
-                    // InternalGeneratorDSL.g:1860:4: '<'
+                    // InternalGeneratorDSL.g:1885:3: ( '<' )
+                    // InternalGeneratorDSL.g:1885:4: '<'
                     {
                     match(input,20,FOLLOW_2); 
 
@@ -5999,14 +6040,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:1864:2: ( ( '<=' ) )
+                    // InternalGeneratorDSL.g:1889:2: ( ( '<=' ) )
                     {
-                    // InternalGeneratorDSL.g:1864:2: ( ( '<=' ) )
-                    // InternalGeneratorDSL.g:1865:3: ( '<=' )
+                    // InternalGeneratorDSL.g:1889:2: ( ( '<=' ) )
+                    // InternalGeneratorDSL.g:1890:3: ( '<=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
-                    // InternalGeneratorDSL.g:1866:3: ( '<=' )
-                    // InternalGeneratorDSL.g:1866:4: '<='
+                    // InternalGeneratorDSL.g:1891:3: ( '<=' )
+                    // InternalGeneratorDSL.g:1891:4: '<='
                     {
                     match(input,21,FOLLOW_2); 
 
@@ -6037,13 +6078,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalGeneratorDSL.g:1874:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalGeneratorDSL.g:1899:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1878:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalGeneratorDSL.g:1903:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt12=2;
             int LA12_0 = input.LA(1);
 
@@ -6061,14 +6102,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt12) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1879:2: ( ( '+' ) )
+                    // InternalGeneratorDSL.g:1904:2: ( ( '+' ) )
                     {
-                    // InternalGeneratorDSL.g:1879:2: ( ( '+' ) )
-                    // InternalGeneratorDSL.g:1880:3: ( '+' )
+                    // InternalGeneratorDSL.g:1904:2: ( ( '+' ) )
+                    // InternalGeneratorDSL.g:1905:3: ( '+' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
-                    // InternalGeneratorDSL.g:1881:3: ( '+' )
-                    // InternalGeneratorDSL.g:1881:4: '+'
+                    // InternalGeneratorDSL.g:1906:3: ( '+' )
+                    // InternalGeneratorDSL.g:1906:4: '+'
                     {
                     match(input,22,FOLLOW_2); 
 
@@ -6082,14 +6123,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1885:2: ( ( '-' ) )
+                    // InternalGeneratorDSL.g:1910:2: ( ( '-' ) )
                     {
-                    // InternalGeneratorDSL.g:1885:2: ( ( '-' ) )
-                    // InternalGeneratorDSL.g:1886:3: ( '-' )
+                    // InternalGeneratorDSL.g:1910:2: ( ( '-' ) )
+                    // InternalGeneratorDSL.g:1911:3: ( '-' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
-                    // InternalGeneratorDSL.g:1887:3: ( '-' )
-                    // InternalGeneratorDSL.g:1887:4: '-'
+                    // InternalGeneratorDSL.g:1912:3: ( '-' )
+                    // InternalGeneratorDSL.g:1912:4: '-'
                     {
                     match(input,23,FOLLOW_2); 
 
@@ -6120,13 +6161,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalGeneratorDSL.g:1895:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalGeneratorDSL.g:1920:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1899:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalGeneratorDSL.g:1924:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt13=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -6153,14 +6194,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt13) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1900:2: ( ( '*' ) )
+                    // InternalGeneratorDSL.g:1925:2: ( ( '*' ) )
                     {
-                    // InternalGeneratorDSL.g:1900:2: ( ( '*' ) )
-                    // InternalGeneratorDSL.g:1901:3: ( '*' )
+                    // InternalGeneratorDSL.g:1925:2: ( ( '*' ) )
+                    // InternalGeneratorDSL.g:1926:3: ( '*' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
-                    // InternalGeneratorDSL.g:1902:3: ( '*' )
-                    // InternalGeneratorDSL.g:1902:4: '*'
+                    // InternalGeneratorDSL.g:1927:3: ( '*' )
+                    // InternalGeneratorDSL.g:1927:4: '*'
                     {
                     match(input,24,FOLLOW_2); 
 
@@ -6174,14 +6215,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1906:2: ( ( '/' ) )
+                    // InternalGeneratorDSL.g:1931:2: ( ( '/' ) )
                     {
-                    // InternalGeneratorDSL.g:1906:2: ( ( '/' ) )
-                    // InternalGeneratorDSL.g:1907:3: ( '/' )
+                    // InternalGeneratorDSL.g:1931:2: ( ( '/' ) )
+                    // InternalGeneratorDSL.g:1932:3: ( '/' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
-                    // InternalGeneratorDSL.g:1908:3: ( '/' )
-                    // InternalGeneratorDSL.g:1908:4: '/'
+                    // InternalGeneratorDSL.g:1933:3: ( '/' )
+                    // InternalGeneratorDSL.g:1933:4: '/'
                     {
                     match(input,25,FOLLOW_2); 
 
@@ -6195,14 +6236,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1912:2: ( ( '%' ) )
+                    // InternalGeneratorDSL.g:1937:2: ( ( '%' ) )
                     {
-                    // InternalGeneratorDSL.g:1912:2: ( ( '%' ) )
-                    // InternalGeneratorDSL.g:1913:3: ( '%' )
+                    // InternalGeneratorDSL.g:1937:2: ( ( '%' ) )
+                    // InternalGeneratorDSL.g:1938:3: ( '%' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
-                    // InternalGeneratorDSL.g:1914:3: ( '%' )
-                    // InternalGeneratorDSL.g:1914:4: '%'
+                    // InternalGeneratorDSL.g:1939:3: ( '%' )
+                    // InternalGeneratorDSL.g:1939:4: '%'
                     {
                     match(input,26,FOLLOW_2); 
 
@@ -6233,13 +6274,13 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalGeneratorDSL.g:1922:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalGeneratorDSL.g:1947:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:1926:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalGeneratorDSL.g:1951:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt14=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -6351,14 +6392,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             switch (alt14) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1927:2: ( ( 'Y' ) )
+                    // InternalGeneratorDSL.g:1952:2: ( ( 'Y' ) )
                     {
-                    // InternalGeneratorDSL.g:1927:2: ( ( 'Y' ) )
-                    // InternalGeneratorDSL.g:1928:3: ( 'Y' )
+                    // InternalGeneratorDSL.g:1952:2: ( ( 'Y' ) )
+                    // InternalGeneratorDSL.g:1953:3: ( 'Y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
-                    // InternalGeneratorDSL.g:1929:3: ( 'Y' )
-                    // InternalGeneratorDSL.g:1929:4: 'Y'
+                    // InternalGeneratorDSL.g:1954:3: ( 'Y' )
+                    // InternalGeneratorDSL.g:1954:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); 
 
@@ -6372,14 +6413,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:1933:2: ( ( 'Z' ) )
+                    // InternalGeneratorDSL.g:1958:2: ( ( 'Z' ) )
                     {
-                    // InternalGeneratorDSL.g:1933:2: ( ( 'Z' ) )
-                    // InternalGeneratorDSL.g:1934:3: ( 'Z' )
+                    // InternalGeneratorDSL.g:1958:2: ( ( 'Z' ) )
+                    // InternalGeneratorDSL.g:1959:3: ( 'Z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
-                    // InternalGeneratorDSL.g:1935:3: ( 'Z' )
-                    // InternalGeneratorDSL.g:1935:4: 'Z'
+                    // InternalGeneratorDSL.g:1960:3: ( 'Z' )
+                    // InternalGeneratorDSL.g:1960:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); 
 
@@ -6393,14 +6434,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:1939:2: ( ( 'E' ) )
+                    // InternalGeneratorDSL.g:1964:2: ( ( 'E' ) )
                     {
-                    // InternalGeneratorDSL.g:1939:2: ( ( 'E' ) )
-                    // InternalGeneratorDSL.g:1940:3: ( 'E' )
+                    // InternalGeneratorDSL.g:1964:2: ( ( 'E' ) )
+                    // InternalGeneratorDSL.g:1965:3: ( 'E' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
-                    // InternalGeneratorDSL.g:1941:3: ( 'E' )
-                    // InternalGeneratorDSL.g:1941:4: 'E'
+                    // InternalGeneratorDSL.g:1966:3: ( 'E' )
+                    // InternalGeneratorDSL.g:1966:4: 'E'
                     {
                     match(input,29,FOLLOW_2); 
 
@@ -6414,14 +6455,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:1945:2: ( ( 'P' ) )
+                    // InternalGeneratorDSL.g:1970:2: ( ( 'P' ) )
                     {
-                    // InternalGeneratorDSL.g:1945:2: ( ( 'P' ) )
-                    // InternalGeneratorDSL.g:1946:3: ( 'P' )
+                    // InternalGeneratorDSL.g:1970:2: ( ( 'P' ) )
+                    // InternalGeneratorDSL.g:1971:3: ( 'P' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
-                    // InternalGeneratorDSL.g:1947:3: ( 'P' )
-                    // InternalGeneratorDSL.g:1947:4: 'P'
+                    // InternalGeneratorDSL.g:1972:3: ( 'P' )
+                    // InternalGeneratorDSL.g:1972:4: 'P'
                     {
                     match(input,30,FOLLOW_2); 
 
@@ -6435,14 +6476,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:1951:2: ( ( 'T' ) )
+                    // InternalGeneratorDSL.g:1976:2: ( ( 'T' ) )
                     {
-                    // InternalGeneratorDSL.g:1951:2: ( ( 'T' ) )
-                    // InternalGeneratorDSL.g:1952:3: ( 'T' )
+                    // InternalGeneratorDSL.g:1976:2: ( ( 'T' ) )
+                    // InternalGeneratorDSL.g:1977:3: ( 'T' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
-                    // InternalGeneratorDSL.g:1953:3: ( 'T' )
-                    // InternalGeneratorDSL.g:1953:4: 'T'
+                    // InternalGeneratorDSL.g:1978:3: ( 'T' )
+                    // InternalGeneratorDSL.g:1978:4: 'T'
                     {
                     match(input,31,FOLLOW_2); 
 
@@ -6456,14 +6497,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:1957:2: ( ( 'G' ) )
+                    // InternalGeneratorDSL.g:1982:2: ( ( 'G' ) )
                     {
-                    // InternalGeneratorDSL.g:1957:2: ( ( 'G' ) )
-                    // InternalGeneratorDSL.g:1958:3: ( 'G' )
+                    // InternalGeneratorDSL.g:1982:2: ( ( 'G' ) )
+                    // InternalGeneratorDSL.g:1983:3: ( 'G' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
-                    // InternalGeneratorDSL.g:1959:3: ( 'G' )
-                    // InternalGeneratorDSL.g:1959:4: 'G'
+                    // InternalGeneratorDSL.g:1984:3: ( 'G' )
+                    // InternalGeneratorDSL.g:1984:4: 'G'
                     {
                     match(input,32,FOLLOW_2); 
 
@@ -6477,14 +6518,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 7 :
-                    // InternalGeneratorDSL.g:1963:2: ( ( 'M' ) )
+                    // InternalGeneratorDSL.g:1988:2: ( ( 'M' ) )
                     {
-                    // InternalGeneratorDSL.g:1963:2: ( ( 'M' ) )
-                    // InternalGeneratorDSL.g:1964:3: ( 'M' )
+                    // InternalGeneratorDSL.g:1988:2: ( ( 'M' ) )
+                    // InternalGeneratorDSL.g:1989:3: ( 'M' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
-                    // InternalGeneratorDSL.g:1965:3: ( 'M' )
-                    // InternalGeneratorDSL.g:1965:4: 'M'
+                    // InternalGeneratorDSL.g:1990:3: ( 'M' )
+                    // InternalGeneratorDSL.g:1990:4: 'M'
                     {
                     match(input,33,FOLLOW_2); 
 
@@ -6498,14 +6539,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 8 :
-                    // InternalGeneratorDSL.g:1969:2: ( ( 'k' ) )
+                    // InternalGeneratorDSL.g:1994:2: ( ( 'k' ) )
                     {
-                    // InternalGeneratorDSL.g:1969:2: ( ( 'k' ) )
-                    // InternalGeneratorDSL.g:1970:3: ( 'k' )
+                    // InternalGeneratorDSL.g:1994:2: ( ( 'k' ) )
+                    // InternalGeneratorDSL.g:1995:3: ( 'k' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
-                    // InternalGeneratorDSL.g:1971:3: ( 'k' )
-                    // InternalGeneratorDSL.g:1971:4: 'k'
+                    // InternalGeneratorDSL.g:1996:3: ( 'k' )
+                    // InternalGeneratorDSL.g:1996:4: 'k'
                     {
                     match(input,34,FOLLOW_2); 
 
@@ -6519,14 +6560,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 9 :
-                    // InternalGeneratorDSL.g:1975:2: ( ( 'h' ) )
+                    // InternalGeneratorDSL.g:2000:2: ( ( 'h' ) )
                     {
-                    // InternalGeneratorDSL.g:1975:2: ( ( 'h' ) )
-                    // InternalGeneratorDSL.g:1976:3: ( 'h' )
+                    // InternalGeneratorDSL.g:2000:2: ( ( 'h' ) )
+                    // InternalGeneratorDSL.g:2001:3: ( 'h' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
-                    // InternalGeneratorDSL.g:1977:3: ( 'h' )
-                    // InternalGeneratorDSL.g:1977:4: 'h'
+                    // InternalGeneratorDSL.g:2002:3: ( 'h' )
+                    // InternalGeneratorDSL.g:2002:4: 'h'
                     {
                     match(input,35,FOLLOW_2); 
 
@@ -6540,14 +6581,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 10 :
-                    // InternalGeneratorDSL.g:1981:2: ( ( 'da' ) )
+                    // InternalGeneratorDSL.g:2006:2: ( ( 'da' ) )
                     {
-                    // InternalGeneratorDSL.g:1981:2: ( ( 'da' ) )
-                    // InternalGeneratorDSL.g:1982:3: ( 'da' )
+                    // InternalGeneratorDSL.g:2006:2: ( ( 'da' ) )
+                    // InternalGeneratorDSL.g:2007:3: ( 'da' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
-                    // InternalGeneratorDSL.g:1983:3: ( 'da' )
-                    // InternalGeneratorDSL.g:1983:4: 'da'
+                    // InternalGeneratorDSL.g:2008:3: ( 'da' )
+                    // InternalGeneratorDSL.g:2008:4: 'da'
                     {
                     match(input,36,FOLLOW_2); 
 
@@ -6561,14 +6602,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 11 :
-                    // InternalGeneratorDSL.g:1987:2: ( ( 'd' ) )
+                    // InternalGeneratorDSL.g:2012:2: ( ( 'd' ) )
                     {
-                    // InternalGeneratorDSL.g:1987:2: ( ( 'd' ) )
-                    // InternalGeneratorDSL.g:1988:3: ( 'd' )
+                    // InternalGeneratorDSL.g:2012:2: ( ( 'd' ) )
+                    // InternalGeneratorDSL.g:2013:3: ( 'd' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
-                    // InternalGeneratorDSL.g:1989:3: ( 'd' )
-                    // InternalGeneratorDSL.g:1989:4: 'd'
+                    // InternalGeneratorDSL.g:2014:3: ( 'd' )
+                    // InternalGeneratorDSL.g:2014:4: 'd'
                     {
                     match(input,37,FOLLOW_2); 
 
@@ -6582,14 +6623,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 12 :
-                    // InternalGeneratorDSL.g:1993:2: ( ( 'c' ) )
+                    // InternalGeneratorDSL.g:2018:2: ( ( 'c' ) )
                     {
-                    // InternalGeneratorDSL.g:1993:2: ( ( 'c' ) )
-                    // InternalGeneratorDSL.g:1994:3: ( 'c' )
+                    // InternalGeneratorDSL.g:2018:2: ( ( 'c' ) )
+                    // InternalGeneratorDSL.g:2019:3: ( 'c' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
-                    // InternalGeneratorDSL.g:1995:3: ( 'c' )
-                    // InternalGeneratorDSL.g:1995:4: 'c'
+                    // InternalGeneratorDSL.g:2020:3: ( 'c' )
+                    // InternalGeneratorDSL.g:2020:4: 'c'
                     {
                     match(input,38,FOLLOW_2); 
 
@@ -6603,14 +6644,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 13 :
-                    // InternalGeneratorDSL.g:1999:2: ( ( 'm' ) )
+                    // InternalGeneratorDSL.g:2024:2: ( ( 'm' ) )
                     {
-                    // InternalGeneratorDSL.g:1999:2: ( ( 'm' ) )
-                    // InternalGeneratorDSL.g:2000:3: ( 'm' )
+                    // InternalGeneratorDSL.g:2024:2: ( ( 'm' ) )
+                    // InternalGeneratorDSL.g:2025:3: ( 'm' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
-                    // InternalGeneratorDSL.g:2001:3: ( 'm' )
-                    // InternalGeneratorDSL.g:2001:4: 'm'
+                    // InternalGeneratorDSL.g:2026:3: ( 'm' )
+                    // InternalGeneratorDSL.g:2026:4: 'm'
                     {
                     match(input,39,FOLLOW_2); 
 
@@ -6624,14 +6665,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 14 :
-                    // InternalGeneratorDSL.g:2005:2: ( ( '\\u00B5' ) )
+                    // InternalGeneratorDSL.g:2030:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalGeneratorDSL.g:2005:2: ( ( '\\u00B5' ) )
-                    // InternalGeneratorDSL.g:2006:3: ( '\\u00B5' )
+                    // InternalGeneratorDSL.g:2030:2: ( ( '\\u00B5' ) )
+                    // InternalGeneratorDSL.g:2031:3: ( '\\u00B5' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
-                    // InternalGeneratorDSL.g:2007:3: ( '\\u00B5' )
-                    // InternalGeneratorDSL.g:2007:4: '\\u00B5'
+                    // InternalGeneratorDSL.g:2032:3: ( '\\u00B5' )
+                    // InternalGeneratorDSL.g:2032:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); 
 
@@ -6645,14 +6686,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 15 :
-                    // InternalGeneratorDSL.g:2011:2: ( ( 'n' ) )
+                    // InternalGeneratorDSL.g:2036:2: ( ( 'n' ) )
                     {
-                    // InternalGeneratorDSL.g:2011:2: ( ( 'n' ) )
-                    // InternalGeneratorDSL.g:2012:3: ( 'n' )
+                    // InternalGeneratorDSL.g:2036:2: ( ( 'n' ) )
+                    // InternalGeneratorDSL.g:2037:3: ( 'n' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
-                    // InternalGeneratorDSL.g:2013:3: ( 'n' )
-                    // InternalGeneratorDSL.g:2013:4: 'n'
+                    // InternalGeneratorDSL.g:2038:3: ( 'n' )
+                    // InternalGeneratorDSL.g:2038:4: 'n'
                     {
                     match(input,41,FOLLOW_2); 
 
@@ -6666,14 +6707,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 16 :
-                    // InternalGeneratorDSL.g:2017:2: ( ( 'p' ) )
+                    // InternalGeneratorDSL.g:2042:2: ( ( 'p' ) )
                     {
-                    // InternalGeneratorDSL.g:2017:2: ( ( 'p' ) )
-                    // InternalGeneratorDSL.g:2018:3: ( 'p' )
+                    // InternalGeneratorDSL.g:2042:2: ( ( 'p' ) )
+                    // InternalGeneratorDSL.g:2043:3: ( 'p' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
-                    // InternalGeneratorDSL.g:2019:3: ( 'p' )
-                    // InternalGeneratorDSL.g:2019:4: 'p'
+                    // InternalGeneratorDSL.g:2044:3: ( 'p' )
+                    // InternalGeneratorDSL.g:2044:4: 'p'
                     {
                     match(input,42,FOLLOW_2); 
 
@@ -6687,14 +6728,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 17 :
-                    // InternalGeneratorDSL.g:2023:2: ( ( 'f' ) )
+                    // InternalGeneratorDSL.g:2048:2: ( ( 'f' ) )
                     {
-                    // InternalGeneratorDSL.g:2023:2: ( ( 'f' ) )
-                    // InternalGeneratorDSL.g:2024:3: ( 'f' )
+                    // InternalGeneratorDSL.g:2048:2: ( ( 'f' ) )
+                    // InternalGeneratorDSL.g:2049:3: ( 'f' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
-                    // InternalGeneratorDSL.g:2025:3: ( 'f' )
-                    // InternalGeneratorDSL.g:2025:4: 'f'
+                    // InternalGeneratorDSL.g:2050:3: ( 'f' )
+                    // InternalGeneratorDSL.g:2050:4: 'f'
                     {
                     match(input,43,FOLLOW_2); 
 
@@ -6708,14 +6749,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 18 :
-                    // InternalGeneratorDSL.g:2029:2: ( ( 'a' ) )
+                    // InternalGeneratorDSL.g:2054:2: ( ( 'a' ) )
                     {
-                    // InternalGeneratorDSL.g:2029:2: ( ( 'a' ) )
-                    // InternalGeneratorDSL.g:2030:3: ( 'a' )
+                    // InternalGeneratorDSL.g:2054:2: ( ( 'a' ) )
+                    // InternalGeneratorDSL.g:2055:3: ( 'a' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
-                    // InternalGeneratorDSL.g:2031:3: ( 'a' )
-                    // InternalGeneratorDSL.g:2031:4: 'a'
+                    // InternalGeneratorDSL.g:2056:3: ( 'a' )
+                    // InternalGeneratorDSL.g:2056:4: 'a'
                     {
                     match(input,44,FOLLOW_2); 
 
@@ -6729,14 +6770,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 19 :
-                    // InternalGeneratorDSL.g:2035:2: ( ( 'z' ) )
+                    // InternalGeneratorDSL.g:2060:2: ( ( 'z' ) )
                     {
-                    // InternalGeneratorDSL.g:2035:2: ( ( 'z' ) )
-                    // InternalGeneratorDSL.g:2036:3: ( 'z' )
+                    // InternalGeneratorDSL.g:2060:2: ( ( 'z' ) )
+                    // InternalGeneratorDSL.g:2061:3: ( 'z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
-                    // InternalGeneratorDSL.g:2037:3: ( 'z' )
-                    // InternalGeneratorDSL.g:2037:4: 'z'
+                    // InternalGeneratorDSL.g:2062:3: ( 'z' )
+                    // InternalGeneratorDSL.g:2062:4: 'z'
                     {
                     match(input,45,FOLLOW_2); 
 
@@ -6750,14 +6791,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                     }
                     break;
                 case 20 :
-                    // InternalGeneratorDSL.g:2041:2: ( ( 'y' ) )
+                    // InternalGeneratorDSL.g:2066:2: ( ( 'y' ) )
                     {
-                    // InternalGeneratorDSL.g:2041:2: ( ( 'y' ) )
-                    // InternalGeneratorDSL.g:2042:3: ( 'y' )
+                    // InternalGeneratorDSL.g:2066:2: ( ( 'y' ) )
+                    // InternalGeneratorDSL.g:2067:3: ( 'y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
-                    // InternalGeneratorDSL.g:2043:3: ( 'y' )
-                    // InternalGeneratorDSL.g:2043:4: 'y'
+                    // InternalGeneratorDSL.g:2068:3: ( 'y' )
+                    // InternalGeneratorDSL.g:2068:4: 'y'
                     {
                     match(input,46,FOLLOW_2); 
 
@@ -6788,14 +6829,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__0"
-    // InternalGeneratorDSL.g:2051:1: rule__ConfigurationRule__Group__0 : rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1 ;
+    // InternalGeneratorDSL.g:2076:1: rule__ConfigurationRule__Group__0 : rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1 ;
     public final void rule__ConfigurationRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2055:1: ( rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1 )
-            // InternalGeneratorDSL.g:2056:2: rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1
+            // InternalGeneratorDSL.g:2080:1: ( rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1 )
+            // InternalGeneratorDSL.g:2081:2: rule__ConfigurationRule__Group__0__Impl rule__ConfigurationRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__ConfigurationRule__Group__0__Impl();
@@ -6826,20 +6867,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:2063:1: rule__ConfigurationRule__Group__0__Impl : ( ( rule__ConfigurationRule__ImportsAssignment_0 )* ) ;
+    // InternalGeneratorDSL.g:2088:1: rule__ConfigurationRule__Group__0__Impl : ( ( rule__ConfigurationRule__ImportsAssignment_0 )* ) ;
     public final void rule__ConfigurationRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2067:1: ( ( ( rule__ConfigurationRule__ImportsAssignment_0 )* ) )
-            // InternalGeneratorDSL.g:2068:1: ( ( rule__ConfigurationRule__ImportsAssignment_0 )* )
+            // InternalGeneratorDSL.g:2092:1: ( ( ( rule__ConfigurationRule__ImportsAssignment_0 )* ) )
+            // InternalGeneratorDSL.g:2093:1: ( ( rule__ConfigurationRule__ImportsAssignment_0 )* )
             {
-            // InternalGeneratorDSL.g:2068:1: ( ( rule__ConfigurationRule__ImportsAssignment_0 )* )
-            // InternalGeneratorDSL.g:2069:2: ( rule__ConfigurationRule__ImportsAssignment_0 )*
+            // InternalGeneratorDSL.g:2093:1: ( ( rule__ConfigurationRule__ImportsAssignment_0 )* )
+            // InternalGeneratorDSL.g:2094:2: ( rule__ConfigurationRule__ImportsAssignment_0 )*
             {
              before(grammarAccess.getConfigurationRuleAccess().getImportsAssignment_0()); 
-            // InternalGeneratorDSL.g:2070:2: ( rule__ConfigurationRule__ImportsAssignment_0 )*
+            // InternalGeneratorDSL.g:2095:2: ( rule__ConfigurationRule__ImportsAssignment_0 )*
             loop15:
             do {
                 int alt15=2;
@@ -6852,7 +6893,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2070:3: rule__ConfigurationRule__ImportsAssignment_0
+            	    // InternalGeneratorDSL.g:2095:3: rule__ConfigurationRule__ImportsAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__ConfigurationRule__ImportsAssignment_0();
@@ -6891,14 +6932,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__1"
-    // InternalGeneratorDSL.g:2078:1: rule__ConfigurationRule__Group__1 : rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2 ;
+    // InternalGeneratorDSL.g:2103:1: rule__ConfigurationRule__Group__1 : rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2 ;
     public final void rule__ConfigurationRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2082:1: ( rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2 )
-            // InternalGeneratorDSL.g:2083:2: rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2
+            // InternalGeneratorDSL.g:2107:1: ( rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2 )
+            // InternalGeneratorDSL.g:2108:2: rule__ConfigurationRule__Group__1__Impl rule__ConfigurationRule__Group__2
             {
             pushFollow(FOLLOW_3);
             rule__ConfigurationRule__Group__1__Impl();
@@ -6929,20 +6970,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:2090:1: rule__ConfigurationRule__Group__1__Impl : ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* ) ;
+    // InternalGeneratorDSL.g:2115:1: rule__ConfigurationRule__Group__1__Impl : ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* ) ;
     public final void rule__ConfigurationRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2094:1: ( ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* ) )
-            // InternalGeneratorDSL.g:2095:1: ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* )
+            // InternalGeneratorDSL.g:2119:1: ( ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* ) )
+            // InternalGeneratorDSL.g:2120:1: ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* )
             {
-            // InternalGeneratorDSL.g:2095:1: ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* )
-            // InternalGeneratorDSL.g:2096:2: ( rule__ConfigurationRule__PipelinesAssignment_1 )*
+            // InternalGeneratorDSL.g:2120:1: ( ( rule__ConfigurationRule__PipelinesAssignment_1 )* )
+            // InternalGeneratorDSL.g:2121:2: ( rule__ConfigurationRule__PipelinesAssignment_1 )*
             {
              before(grammarAccess.getConfigurationRuleAccess().getPipelinesAssignment_1()); 
-            // InternalGeneratorDSL.g:2097:2: ( rule__ConfigurationRule__PipelinesAssignment_1 )*
+            // InternalGeneratorDSL.g:2122:2: ( rule__ConfigurationRule__PipelinesAssignment_1 )*
             loop16:
             do {
                 int alt16=2;
@@ -6955,7 +6996,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2097:3: rule__ConfigurationRule__PipelinesAssignment_1
+            	    // InternalGeneratorDSL.g:2122:3: rule__ConfigurationRule__PipelinesAssignment_1
             	    {
             	    pushFollow(FOLLOW_5);
             	    rule__ConfigurationRule__PipelinesAssignment_1();
@@ -6994,14 +7035,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__2"
-    // InternalGeneratorDSL.g:2105:1: rule__ConfigurationRule__Group__2 : rule__ConfigurationRule__Group__2__Impl ;
+    // InternalGeneratorDSL.g:2130:1: rule__ConfigurationRule__Group__2 : rule__ConfigurationRule__Group__2__Impl ;
     public final void rule__ConfigurationRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2109:1: ( rule__ConfigurationRule__Group__2__Impl )
-            // InternalGeneratorDSL.g:2110:2: rule__ConfigurationRule__Group__2__Impl
+            // InternalGeneratorDSL.g:2134:1: ( rule__ConfigurationRule__Group__2__Impl )
+            // InternalGeneratorDSL.g:2135:2: rule__ConfigurationRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ConfigurationRule__Group__2__Impl();
@@ -7027,20 +7068,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:2116:1: rule__ConfigurationRule__Group__2__Impl : ( ( rule__ConfigurationRule__StatementsAssignment_2 )* ) ;
+    // InternalGeneratorDSL.g:2141:1: rule__ConfigurationRule__Group__2__Impl : ( ( rule__ConfigurationRule__StatementsAssignment_2 )* ) ;
     public final void rule__ConfigurationRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2120:1: ( ( ( rule__ConfigurationRule__StatementsAssignment_2 )* ) )
-            // InternalGeneratorDSL.g:2121:1: ( ( rule__ConfigurationRule__StatementsAssignment_2 )* )
+            // InternalGeneratorDSL.g:2145:1: ( ( ( rule__ConfigurationRule__StatementsAssignment_2 )* ) )
+            // InternalGeneratorDSL.g:2146:1: ( ( rule__ConfigurationRule__StatementsAssignment_2 )* )
             {
-            // InternalGeneratorDSL.g:2121:1: ( ( rule__ConfigurationRule__StatementsAssignment_2 )* )
-            // InternalGeneratorDSL.g:2122:2: ( rule__ConfigurationRule__StatementsAssignment_2 )*
+            // InternalGeneratorDSL.g:2146:1: ( ( rule__ConfigurationRule__StatementsAssignment_2 )* )
+            // InternalGeneratorDSL.g:2147:2: ( rule__ConfigurationRule__StatementsAssignment_2 )*
             {
              before(grammarAccess.getConfigurationRuleAccess().getStatementsAssignment_2()); 
-            // InternalGeneratorDSL.g:2123:2: ( rule__ConfigurationRule__StatementsAssignment_2 )*
+            // InternalGeneratorDSL.g:2148:2: ( rule__ConfigurationRule__StatementsAssignment_2 )*
             loop17:
             do {
                 int alt17=2;
@@ -7053,7 +7094,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2123:3: rule__ConfigurationRule__StatementsAssignment_2
+            	    // InternalGeneratorDSL.g:2148:3: rule__ConfigurationRule__StatementsAssignment_2
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ConfigurationRule__StatementsAssignment_2();
@@ -7092,14 +7133,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__0"
-    // InternalGeneratorDSL.g:2132:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
+    // InternalGeneratorDSL.g:2157:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
     public final void rule__ImportRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2136:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
-            // InternalGeneratorDSL.g:2137:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
+            // InternalGeneratorDSL.g:2161:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
+            // InternalGeneratorDSL.g:2162:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ImportRule__Group__0__Impl();
@@ -7130,17 +7171,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:2144:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
+    // InternalGeneratorDSL.g:2169:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
     public final void rule__ImportRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2148:1: ( ( 'import' ) )
-            // InternalGeneratorDSL.g:2149:1: ( 'import' )
+            // InternalGeneratorDSL.g:2173:1: ( ( 'import' ) )
+            // InternalGeneratorDSL.g:2174:1: ( 'import' )
             {
-            // InternalGeneratorDSL.g:2149:1: ( 'import' )
-            // InternalGeneratorDSL.g:2150:2: 'import'
+            // InternalGeneratorDSL.g:2174:1: ( 'import' )
+            // InternalGeneratorDSL.g:2175:2: 'import'
             {
              before(grammarAccess.getImportRuleAccess().getImportKeyword_0()); 
             match(input,47,FOLLOW_2); 
@@ -7167,14 +7208,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__1"
-    // InternalGeneratorDSL.g:2159:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
+    // InternalGeneratorDSL.g:2184:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
     public final void rule__ImportRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2163:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
-            // InternalGeneratorDSL.g:2164:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
+            // InternalGeneratorDSL.g:2188:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
+            // InternalGeneratorDSL.g:2189:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__ImportRule__Group__1__Impl();
@@ -7205,21 +7246,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:2171:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:2196:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
     public final void rule__ImportRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2175:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:2176:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalGeneratorDSL.g:2200:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:2201:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:2176:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
-            // InternalGeneratorDSL.g:2177:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalGeneratorDSL.g:2201:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalGeneratorDSL.g:2202:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
             {
              before(grammarAccess.getImportRuleAccess().getImportedNamespaceAssignment_1()); 
-            // InternalGeneratorDSL.g:2178:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
-            // InternalGeneratorDSL.g:2178:3: rule__ImportRule__ImportedNamespaceAssignment_1
+            // InternalGeneratorDSL.g:2203:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalGeneratorDSL.g:2203:3: rule__ImportRule__ImportedNamespaceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__ImportedNamespaceAssignment_1();
@@ -7252,14 +7293,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__2"
-    // InternalGeneratorDSL.g:2186:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
+    // InternalGeneratorDSL.g:2211:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
     public final void rule__ImportRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2190:1: ( rule__ImportRule__Group__2__Impl )
-            // InternalGeneratorDSL.g:2191:2: rule__ImportRule__Group__2__Impl
+            // InternalGeneratorDSL.g:2215:1: ( rule__ImportRule__Group__2__Impl )
+            // InternalGeneratorDSL.g:2216:2: rule__ImportRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__Group__2__Impl();
@@ -7285,17 +7326,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:2197:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:2222:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
     public final void rule__ImportRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2201:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:2202:1: ( ';' )
+            // InternalGeneratorDSL.g:2226:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:2227:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:2202:1: ( ';' )
-            // InternalGeneratorDSL.g:2203:2: ';'
+            // InternalGeneratorDSL.g:2227:1: ( ';' )
+            // InternalGeneratorDSL.g:2228:2: ';'
             {
              before(grammarAccess.getImportRuleAccess().getSemicolonKeyword_2()); 
             match(input,48,FOLLOW_2); 
@@ -7322,14 +7363,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__0"
-    // InternalGeneratorDSL.g:2213:1: rule__PipelineDefinitionRule__Group__0 : rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1 ;
+    // InternalGeneratorDSL.g:2238:1: rule__PipelineDefinitionRule__Group__0 : rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1 ;
     public final void rule__PipelineDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2217:1: ( rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1 )
-            // InternalGeneratorDSL.g:2218:2: rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1
+            // InternalGeneratorDSL.g:2242:1: ( rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1 )
+            // InternalGeneratorDSL.g:2243:2: rule__PipelineDefinitionRule__Group__0__Impl rule__PipelineDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__PipelineDefinitionRule__Group__0__Impl();
@@ -7360,17 +7401,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:2225:1: rule__PipelineDefinitionRule__Group__0__Impl : ( 'pipeline' ) ;
+    // InternalGeneratorDSL.g:2250:1: rule__PipelineDefinitionRule__Group__0__Impl : ( 'pipeline' ) ;
     public final void rule__PipelineDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2229:1: ( ( 'pipeline' ) )
-            // InternalGeneratorDSL.g:2230:1: ( 'pipeline' )
+            // InternalGeneratorDSL.g:2254:1: ( ( 'pipeline' ) )
+            // InternalGeneratorDSL.g:2255:1: ( 'pipeline' )
             {
-            // InternalGeneratorDSL.g:2230:1: ( 'pipeline' )
-            // InternalGeneratorDSL.g:2231:2: 'pipeline'
+            // InternalGeneratorDSL.g:2255:1: ( 'pipeline' )
+            // InternalGeneratorDSL.g:2256:2: 'pipeline'
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getPipelineKeyword_0()); 
             match(input,49,FOLLOW_2); 
@@ -7397,14 +7438,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__1"
-    // InternalGeneratorDSL.g:2240:1: rule__PipelineDefinitionRule__Group__1 : rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2 ;
+    // InternalGeneratorDSL.g:2265:1: rule__PipelineDefinitionRule__Group__1 : rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2 ;
     public final void rule__PipelineDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2244:1: ( rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2 )
-            // InternalGeneratorDSL.g:2245:2: rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2
+            // InternalGeneratorDSL.g:2269:1: ( rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2 )
+            // InternalGeneratorDSL.g:2270:2: rule__PipelineDefinitionRule__Group__1__Impl rule__PipelineDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_9);
             rule__PipelineDefinitionRule__Group__1__Impl();
@@ -7435,21 +7476,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:2252:1: rule__PipelineDefinitionRule__Group__1__Impl : ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:2277:1: rule__PipelineDefinitionRule__Group__1__Impl : ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) ) ;
     public final void rule__PipelineDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2256:1: ( ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:2257:1: ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:2281:1: ( ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:2282:1: ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:2257:1: ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) )
-            // InternalGeneratorDSL.g:2258:2: ( rule__PipelineDefinitionRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:2282:1: ( ( rule__PipelineDefinitionRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:2283:2: ( rule__PipelineDefinitionRule__NameAssignment_1 )
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getNameAssignment_1()); 
-            // InternalGeneratorDSL.g:2259:2: ( rule__PipelineDefinitionRule__NameAssignment_1 )
-            // InternalGeneratorDSL.g:2259:3: rule__PipelineDefinitionRule__NameAssignment_1
+            // InternalGeneratorDSL.g:2284:2: ( rule__PipelineDefinitionRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:2284:3: rule__PipelineDefinitionRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PipelineDefinitionRule__NameAssignment_1();
@@ -7482,14 +7523,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__2"
-    // InternalGeneratorDSL.g:2267:1: rule__PipelineDefinitionRule__Group__2 : rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3 ;
+    // InternalGeneratorDSL.g:2292:1: rule__PipelineDefinitionRule__Group__2 : rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3 ;
     public final void rule__PipelineDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2271:1: ( rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3 )
-            // InternalGeneratorDSL.g:2272:2: rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3
+            // InternalGeneratorDSL.g:2296:1: ( rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3 )
+            // InternalGeneratorDSL.g:2297:2: rule__PipelineDefinitionRule__Group__2__Impl rule__PipelineDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_10);
             rule__PipelineDefinitionRule__Group__2__Impl();
@@ -7520,17 +7561,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:2279:1: rule__PipelineDefinitionRule__Group__2__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:2304:1: rule__PipelineDefinitionRule__Group__2__Impl : ( '[' ) ;
     public final void rule__PipelineDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2283:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:2284:1: ( '[' )
+            // InternalGeneratorDSL.g:2308:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:2309:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:2284:1: ( '[' )
-            // InternalGeneratorDSL.g:2285:2: '['
+            // InternalGeneratorDSL.g:2309:1: ( '[' )
+            // InternalGeneratorDSL.g:2310:2: '['
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getLeftSquareBracketKeyword_2()); 
             match(input,50,FOLLOW_2); 
@@ -7557,14 +7598,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__3"
-    // InternalGeneratorDSL.g:2294:1: rule__PipelineDefinitionRule__Group__3 : rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4 ;
+    // InternalGeneratorDSL.g:2319:1: rule__PipelineDefinitionRule__Group__3 : rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4 ;
     public final void rule__PipelineDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2298:1: ( rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4 )
-            // InternalGeneratorDSL.g:2299:2: rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4
+            // InternalGeneratorDSL.g:2323:1: ( rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4 )
+            // InternalGeneratorDSL.g:2324:2: rule__PipelineDefinitionRule__Group__3__Impl rule__PipelineDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_10);
             rule__PipelineDefinitionRule__Group__3__Impl();
@@ -7595,20 +7636,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:2306:1: rule__PipelineDefinitionRule__Group__3__Impl : ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* ) ;
+    // InternalGeneratorDSL.g:2331:1: rule__PipelineDefinitionRule__Group__3__Impl : ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* ) ;
     public final void rule__PipelineDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2310:1: ( ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* ) )
-            // InternalGeneratorDSL.g:2311:1: ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* )
+            // InternalGeneratorDSL.g:2335:1: ( ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* ) )
+            // InternalGeneratorDSL.g:2336:1: ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* )
             {
-            // InternalGeneratorDSL.g:2311:1: ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* )
-            // InternalGeneratorDSL.g:2312:2: ( rule__PipelineDefinitionRule__StepsAssignment_3 )*
+            // InternalGeneratorDSL.g:2336:1: ( ( rule__PipelineDefinitionRule__StepsAssignment_3 )* )
+            // InternalGeneratorDSL.g:2337:2: ( rule__PipelineDefinitionRule__StepsAssignment_3 )*
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getStepsAssignment_3()); 
-            // InternalGeneratorDSL.g:2313:2: ( rule__PipelineDefinitionRule__StepsAssignment_3 )*
+            // InternalGeneratorDSL.g:2338:2: ( rule__PipelineDefinitionRule__StepsAssignment_3 )*
             loop18:
             do {
                 int alt18=2;
@@ -7621,7 +7662,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2313:3: rule__PipelineDefinitionRule__StepsAssignment_3
+            	    // InternalGeneratorDSL.g:2338:3: rule__PipelineDefinitionRule__StepsAssignment_3
             	    {
             	    pushFollow(FOLLOW_11);
             	    rule__PipelineDefinitionRule__StepsAssignment_3();
@@ -7660,14 +7701,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__4"
-    // InternalGeneratorDSL.g:2321:1: rule__PipelineDefinitionRule__Group__4 : rule__PipelineDefinitionRule__Group__4__Impl ;
+    // InternalGeneratorDSL.g:2346:1: rule__PipelineDefinitionRule__Group__4 : rule__PipelineDefinitionRule__Group__4__Impl ;
     public final void rule__PipelineDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2325:1: ( rule__PipelineDefinitionRule__Group__4__Impl )
-            // InternalGeneratorDSL.g:2326:2: rule__PipelineDefinitionRule__Group__4__Impl
+            // InternalGeneratorDSL.g:2350:1: ( rule__PipelineDefinitionRule__Group__4__Impl )
+            // InternalGeneratorDSL.g:2351:2: rule__PipelineDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PipelineDefinitionRule__Group__4__Impl();
@@ -7693,17 +7734,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:2332:1: rule__PipelineDefinitionRule__Group__4__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:2357:1: rule__PipelineDefinitionRule__Group__4__Impl : ( ']' ) ;
     public final void rule__PipelineDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2336:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:2337:1: ( ']' )
+            // InternalGeneratorDSL.g:2361:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:2362:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:2337:1: ( ']' )
-            // InternalGeneratorDSL.g:2338:2: ']'
+            // InternalGeneratorDSL.g:2362:1: ( ']' )
+            // InternalGeneratorDSL.g:2363:2: ']'
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getRightSquareBracketKeyword_4()); 
             match(input,51,FOLLOW_2); 
@@ -7730,14 +7771,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__0"
-    // InternalGeneratorDSL.g:2348:1: rule__StepRule__Group__0 : rule__StepRule__Group__0__Impl rule__StepRule__Group__1 ;
+    // InternalGeneratorDSL.g:2373:1: rule__StepRule__Group__0 : rule__StepRule__Group__0__Impl rule__StepRule__Group__1 ;
     public final void rule__StepRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2352:1: ( rule__StepRule__Group__0__Impl rule__StepRule__Group__1 )
-            // InternalGeneratorDSL.g:2353:2: rule__StepRule__Group__0__Impl rule__StepRule__Group__1
+            // InternalGeneratorDSL.g:2377:1: ( rule__StepRule__Group__0__Impl rule__StepRule__Group__1 )
+            // InternalGeneratorDSL.g:2378:2: rule__StepRule__Group__0__Impl rule__StepRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__StepRule__Group__0__Impl();
@@ -7768,17 +7809,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:2360:1: rule__StepRule__Group__0__Impl : ( 'step' ) ;
+    // InternalGeneratorDSL.g:2385:1: rule__StepRule__Group__0__Impl : ( 'step' ) ;
     public final void rule__StepRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2364:1: ( ( 'step' ) )
-            // InternalGeneratorDSL.g:2365:1: ( 'step' )
+            // InternalGeneratorDSL.g:2389:1: ( ( 'step' ) )
+            // InternalGeneratorDSL.g:2390:1: ( 'step' )
             {
-            // InternalGeneratorDSL.g:2365:1: ( 'step' )
-            // InternalGeneratorDSL.g:2366:2: 'step'
+            // InternalGeneratorDSL.g:2390:1: ( 'step' )
+            // InternalGeneratorDSL.g:2391:2: 'step'
             {
              before(grammarAccess.getStepRuleAccess().getStepKeyword_0()); 
             match(input,52,FOLLOW_2); 
@@ -7805,14 +7846,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__1"
-    // InternalGeneratorDSL.g:2375:1: rule__StepRule__Group__1 : rule__StepRule__Group__1__Impl rule__StepRule__Group__2 ;
+    // InternalGeneratorDSL.g:2400:1: rule__StepRule__Group__1 : rule__StepRule__Group__1__Impl rule__StepRule__Group__2 ;
     public final void rule__StepRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2379:1: ( rule__StepRule__Group__1__Impl rule__StepRule__Group__2 )
-            // InternalGeneratorDSL.g:2380:2: rule__StepRule__Group__1__Impl rule__StepRule__Group__2
+            // InternalGeneratorDSL.g:2404:1: ( rule__StepRule__Group__1__Impl rule__StepRule__Group__2 )
+            // InternalGeneratorDSL.g:2405:2: rule__StepRule__Group__1__Impl rule__StepRule__Group__2
             {
             pushFollow(FOLLOW_13);
             rule__StepRule__Group__1__Impl();
@@ -7843,17 +7884,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:2387:1: rule__StepRule__Group__1__Impl : ( '{' ) ;
+    // InternalGeneratorDSL.g:2412:1: rule__StepRule__Group__1__Impl : ( '{' ) ;
     public final void rule__StepRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2391:1: ( ( '{' ) )
-            // InternalGeneratorDSL.g:2392:1: ( '{' )
+            // InternalGeneratorDSL.g:2416:1: ( ( '{' ) )
+            // InternalGeneratorDSL.g:2417:1: ( '{' )
             {
-            // InternalGeneratorDSL.g:2392:1: ( '{' )
-            // InternalGeneratorDSL.g:2393:2: '{'
+            // InternalGeneratorDSL.g:2417:1: ( '{' )
+            // InternalGeneratorDSL.g:2418:2: '{'
             {
              before(grammarAccess.getStepRuleAccess().getLeftCurlyBracketKeyword_1()); 
             match(input,53,FOLLOW_2); 
@@ -7880,14 +7921,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__2"
-    // InternalGeneratorDSL.g:2402:1: rule__StepRule__Group__2 : rule__StepRule__Group__2__Impl rule__StepRule__Group__3 ;
+    // InternalGeneratorDSL.g:2427:1: rule__StepRule__Group__2 : rule__StepRule__Group__2__Impl rule__StepRule__Group__3 ;
     public final void rule__StepRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2406:1: ( rule__StepRule__Group__2__Impl rule__StepRule__Group__3 )
-            // InternalGeneratorDSL.g:2407:2: rule__StepRule__Group__2__Impl rule__StepRule__Group__3
+            // InternalGeneratorDSL.g:2431:1: ( rule__StepRule__Group__2__Impl rule__StepRule__Group__3 )
+            // InternalGeneratorDSL.g:2432:2: rule__StepRule__Group__2__Impl rule__StepRule__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__StepRule__Group__2__Impl();
@@ -7918,17 +7959,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:2414:1: rule__StepRule__Group__2__Impl : ( 'component' ) ;
+    // InternalGeneratorDSL.g:2439:1: rule__StepRule__Group__2__Impl : ( 'component' ) ;
     public final void rule__StepRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2418:1: ( ( 'component' ) )
-            // InternalGeneratorDSL.g:2419:1: ( 'component' )
+            // InternalGeneratorDSL.g:2443:1: ( ( 'component' ) )
+            // InternalGeneratorDSL.g:2444:1: ( 'component' )
             {
-            // InternalGeneratorDSL.g:2419:1: ( 'component' )
-            // InternalGeneratorDSL.g:2420:2: 'component'
+            // InternalGeneratorDSL.g:2444:1: ( 'component' )
+            // InternalGeneratorDSL.g:2445:2: 'component'
             {
              before(grammarAccess.getStepRuleAccess().getComponentKeyword_2()); 
             match(input,54,FOLLOW_2); 
@@ -7955,14 +7996,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__3"
-    // InternalGeneratorDSL.g:2429:1: rule__StepRule__Group__3 : rule__StepRule__Group__3__Impl rule__StepRule__Group__4 ;
+    // InternalGeneratorDSL.g:2454:1: rule__StepRule__Group__3 : rule__StepRule__Group__3__Impl rule__StepRule__Group__4 ;
     public final void rule__StepRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2433:1: ( rule__StepRule__Group__3__Impl rule__StepRule__Group__4 )
-            // InternalGeneratorDSL.g:2434:2: rule__StepRule__Group__3__Impl rule__StepRule__Group__4
+            // InternalGeneratorDSL.g:2458:1: ( rule__StepRule__Group__3__Impl rule__StepRule__Group__4 )
+            // InternalGeneratorDSL.g:2459:2: rule__StepRule__Group__3__Impl rule__StepRule__Group__4
             {
             pushFollow(FOLLOW_14);
             rule__StepRule__Group__3__Impl();
@@ -7993,21 +8034,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:2441:1: rule__StepRule__Group__3__Impl : ( ( rule__StepRule__InstanceAssignment_3 ) ) ;
+    // InternalGeneratorDSL.g:2466:1: rule__StepRule__Group__3__Impl : ( ( rule__StepRule__InstanceAssignment_3 ) ) ;
     public final void rule__StepRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2445:1: ( ( ( rule__StepRule__InstanceAssignment_3 ) ) )
-            // InternalGeneratorDSL.g:2446:1: ( ( rule__StepRule__InstanceAssignment_3 ) )
+            // InternalGeneratorDSL.g:2470:1: ( ( ( rule__StepRule__InstanceAssignment_3 ) ) )
+            // InternalGeneratorDSL.g:2471:1: ( ( rule__StepRule__InstanceAssignment_3 ) )
             {
-            // InternalGeneratorDSL.g:2446:1: ( ( rule__StepRule__InstanceAssignment_3 ) )
-            // InternalGeneratorDSL.g:2447:2: ( rule__StepRule__InstanceAssignment_3 )
+            // InternalGeneratorDSL.g:2471:1: ( ( rule__StepRule__InstanceAssignment_3 ) )
+            // InternalGeneratorDSL.g:2472:2: ( rule__StepRule__InstanceAssignment_3 )
             {
              before(grammarAccess.getStepRuleAccess().getInstanceAssignment_3()); 
-            // InternalGeneratorDSL.g:2448:2: ( rule__StepRule__InstanceAssignment_3 )
-            // InternalGeneratorDSL.g:2448:3: rule__StepRule__InstanceAssignment_3
+            // InternalGeneratorDSL.g:2473:2: ( rule__StepRule__InstanceAssignment_3 )
+            // InternalGeneratorDSL.g:2473:3: rule__StepRule__InstanceAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__InstanceAssignment_3();
@@ -8040,14 +8081,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__4"
-    // InternalGeneratorDSL.g:2456:1: rule__StepRule__Group__4 : rule__StepRule__Group__4__Impl rule__StepRule__Group__5 ;
+    // InternalGeneratorDSL.g:2481:1: rule__StepRule__Group__4 : rule__StepRule__Group__4__Impl rule__StepRule__Group__5 ;
     public final void rule__StepRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2460:1: ( rule__StepRule__Group__4__Impl rule__StepRule__Group__5 )
-            // InternalGeneratorDSL.g:2461:2: rule__StepRule__Group__4__Impl rule__StepRule__Group__5
+            // InternalGeneratorDSL.g:2485:1: ( rule__StepRule__Group__4__Impl rule__StepRule__Group__5 )
+            // InternalGeneratorDSL.g:2486:2: rule__StepRule__Group__4__Impl rule__StepRule__Group__5
             {
             pushFollow(FOLLOW_14);
             rule__StepRule__Group__4__Impl();
@@ -8078,20 +8119,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:2468:1: rule__StepRule__Group__4__Impl : ( ( rule__StepRule__Group_4__0 )? ) ;
+    // InternalGeneratorDSL.g:2493:1: rule__StepRule__Group__4__Impl : ( ( rule__StepRule__Group_4__0 )? ) ;
     public final void rule__StepRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2472:1: ( ( ( rule__StepRule__Group_4__0 )? ) )
-            // InternalGeneratorDSL.g:2473:1: ( ( rule__StepRule__Group_4__0 )? )
+            // InternalGeneratorDSL.g:2497:1: ( ( ( rule__StepRule__Group_4__0 )? ) )
+            // InternalGeneratorDSL.g:2498:1: ( ( rule__StepRule__Group_4__0 )? )
             {
-            // InternalGeneratorDSL.g:2473:1: ( ( rule__StepRule__Group_4__0 )? )
-            // InternalGeneratorDSL.g:2474:2: ( rule__StepRule__Group_4__0 )?
+            // InternalGeneratorDSL.g:2498:1: ( ( rule__StepRule__Group_4__0 )? )
+            // InternalGeneratorDSL.g:2499:2: ( rule__StepRule__Group_4__0 )?
             {
              before(grammarAccess.getStepRuleAccess().getGroup_4()); 
-            // InternalGeneratorDSL.g:2475:2: ( rule__StepRule__Group_4__0 )?
+            // InternalGeneratorDSL.g:2500:2: ( rule__StepRule__Group_4__0 )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
@@ -8100,7 +8141,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt19) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2475:3: rule__StepRule__Group_4__0
+                    // InternalGeneratorDSL.g:2500:3: rule__StepRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__StepRule__Group_4__0();
@@ -8136,14 +8177,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__5"
-    // InternalGeneratorDSL.g:2483:1: rule__StepRule__Group__5 : rule__StepRule__Group__5__Impl rule__StepRule__Group__6 ;
+    // InternalGeneratorDSL.g:2508:1: rule__StepRule__Group__5 : rule__StepRule__Group__5__Impl rule__StepRule__Group__6 ;
     public final void rule__StepRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2487:1: ( rule__StepRule__Group__5__Impl rule__StepRule__Group__6 )
-            // InternalGeneratorDSL.g:2488:2: rule__StepRule__Group__5__Impl rule__StepRule__Group__6
+            // InternalGeneratorDSL.g:2512:1: ( rule__StepRule__Group__5__Impl rule__StepRule__Group__6 )
+            // InternalGeneratorDSL.g:2513:2: rule__StepRule__Group__5__Impl rule__StepRule__Group__6
             {
             pushFollow(FOLLOW_14);
             rule__StepRule__Group__5__Impl();
@@ -8174,20 +8215,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__5__Impl"
-    // InternalGeneratorDSL.g:2495:1: rule__StepRule__Group__5__Impl : ( ( rule__StepRule__Group_5__0 )? ) ;
+    // InternalGeneratorDSL.g:2520:1: rule__StepRule__Group__5__Impl : ( ( rule__StepRule__Group_5__0 )? ) ;
     public final void rule__StepRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2499:1: ( ( ( rule__StepRule__Group_5__0 )? ) )
-            // InternalGeneratorDSL.g:2500:1: ( ( rule__StepRule__Group_5__0 )? )
+            // InternalGeneratorDSL.g:2524:1: ( ( ( rule__StepRule__Group_5__0 )? ) )
+            // InternalGeneratorDSL.g:2525:1: ( ( rule__StepRule__Group_5__0 )? )
             {
-            // InternalGeneratorDSL.g:2500:1: ( ( rule__StepRule__Group_5__0 )? )
-            // InternalGeneratorDSL.g:2501:2: ( rule__StepRule__Group_5__0 )?
+            // InternalGeneratorDSL.g:2525:1: ( ( rule__StepRule__Group_5__0 )? )
+            // InternalGeneratorDSL.g:2526:2: ( rule__StepRule__Group_5__0 )?
             {
              before(grammarAccess.getStepRuleAccess().getGroup_5()); 
-            // InternalGeneratorDSL.g:2502:2: ( rule__StepRule__Group_5__0 )?
+            // InternalGeneratorDSL.g:2527:2: ( rule__StepRule__Group_5__0 )?
             int alt20=2;
             int LA20_0 = input.LA(1);
 
@@ -8196,7 +8237,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt20) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2502:3: rule__StepRule__Group_5__0
+                    // InternalGeneratorDSL.g:2527:3: rule__StepRule__Group_5__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__StepRule__Group_5__0();
@@ -8232,14 +8273,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__6"
-    // InternalGeneratorDSL.g:2510:1: rule__StepRule__Group__6 : rule__StepRule__Group__6__Impl ;
+    // InternalGeneratorDSL.g:2535:1: rule__StepRule__Group__6 : rule__StepRule__Group__6__Impl ;
     public final void rule__StepRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2514:1: ( rule__StepRule__Group__6__Impl )
-            // InternalGeneratorDSL.g:2515:2: rule__StepRule__Group__6__Impl
+            // InternalGeneratorDSL.g:2539:1: ( rule__StepRule__Group__6__Impl )
+            // InternalGeneratorDSL.g:2540:2: rule__StepRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group__6__Impl();
@@ -8265,17 +8306,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group__6__Impl"
-    // InternalGeneratorDSL.g:2521:1: rule__StepRule__Group__6__Impl : ( '}' ) ;
+    // InternalGeneratorDSL.g:2546:1: rule__StepRule__Group__6__Impl : ( '}' ) ;
     public final void rule__StepRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2525:1: ( ( '}' ) )
-            // InternalGeneratorDSL.g:2526:1: ( '}' )
+            // InternalGeneratorDSL.g:2550:1: ( ( '}' ) )
+            // InternalGeneratorDSL.g:2551:1: ( '}' )
             {
-            // InternalGeneratorDSL.g:2526:1: ( '}' )
-            // InternalGeneratorDSL.g:2527:2: '}'
+            // InternalGeneratorDSL.g:2551:1: ( '}' )
+            // InternalGeneratorDSL.g:2552:2: '}'
             {
              before(grammarAccess.getStepRuleAccess().getRightCurlyBracketKeyword_6()); 
             match(input,55,FOLLOW_2); 
@@ -8302,14 +8343,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__0"
-    // InternalGeneratorDSL.g:2537:1: rule__StepRule__Group_4__0 : rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1 ;
+    // InternalGeneratorDSL.g:2562:1: rule__StepRule__Group_4__0 : rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1 ;
     public final void rule__StepRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2541:1: ( rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1 )
-            // InternalGeneratorDSL.g:2542:2: rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1
+            // InternalGeneratorDSL.g:2566:1: ( rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1 )
+            // InternalGeneratorDSL.g:2567:2: rule__StepRule__Group_4__0__Impl rule__StepRule__Group_4__1
             {
             pushFollow(FOLLOW_9);
             rule__StepRule__Group_4__0__Impl();
@@ -8340,17 +8381,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__0__Impl"
-    // InternalGeneratorDSL.g:2549:1: rule__StepRule__Group_4__0__Impl : ( 'reads' ) ;
+    // InternalGeneratorDSL.g:2574:1: rule__StepRule__Group_4__0__Impl : ( 'reads' ) ;
     public final void rule__StepRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2553:1: ( ( 'reads' ) )
-            // InternalGeneratorDSL.g:2554:1: ( 'reads' )
+            // InternalGeneratorDSL.g:2578:1: ( ( 'reads' ) )
+            // InternalGeneratorDSL.g:2579:1: ( 'reads' )
             {
-            // InternalGeneratorDSL.g:2554:1: ( 'reads' )
-            // InternalGeneratorDSL.g:2555:2: 'reads'
+            // InternalGeneratorDSL.g:2579:1: ( 'reads' )
+            // InternalGeneratorDSL.g:2580:2: 'reads'
             {
              before(grammarAccess.getStepRuleAccess().getReadsKeyword_4_0()); 
             match(input,56,FOLLOW_2); 
@@ -8377,14 +8418,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__1"
-    // InternalGeneratorDSL.g:2564:1: rule__StepRule__Group_4__1 : rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2 ;
+    // InternalGeneratorDSL.g:2589:1: rule__StepRule__Group_4__1 : rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2 ;
     public final void rule__StepRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2568:1: ( rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2 )
-            // InternalGeneratorDSL.g:2569:2: rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2
+            // InternalGeneratorDSL.g:2593:1: ( rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2 )
+            // InternalGeneratorDSL.g:2594:2: rule__StepRule__Group_4__1__Impl rule__StepRule__Group_4__2
             {
             pushFollow(FOLLOW_15);
             rule__StepRule__Group_4__1__Impl();
@@ -8415,17 +8456,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__1__Impl"
-    // InternalGeneratorDSL.g:2576:1: rule__StepRule__Group_4__1__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:2601:1: rule__StepRule__Group_4__1__Impl : ( '[' ) ;
     public final void rule__StepRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2580:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:2581:1: ( '[' )
+            // InternalGeneratorDSL.g:2605:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:2606:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:2581:1: ( '[' )
-            // InternalGeneratorDSL.g:2582:2: '['
+            // InternalGeneratorDSL.g:2606:1: ( '[' )
+            // InternalGeneratorDSL.g:2607:2: '['
             {
              before(grammarAccess.getStepRuleAccess().getLeftSquareBracketKeyword_4_1()); 
             match(input,50,FOLLOW_2); 
@@ -8452,14 +8493,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__2"
-    // InternalGeneratorDSL.g:2591:1: rule__StepRule__Group_4__2 : rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3 ;
+    // InternalGeneratorDSL.g:2616:1: rule__StepRule__Group_4__2 : rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3 ;
     public final void rule__StepRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2595:1: ( rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3 )
-            // InternalGeneratorDSL.g:2596:2: rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3
+            // InternalGeneratorDSL.g:2620:1: ( rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3 )
+            // InternalGeneratorDSL.g:2621:2: rule__StepRule__Group_4__2__Impl rule__StepRule__Group_4__3
             {
             pushFollow(FOLLOW_15);
             rule__StepRule__Group_4__2__Impl();
@@ -8490,20 +8531,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__2__Impl"
-    // InternalGeneratorDSL.g:2603:1: rule__StepRule__Group_4__2__Impl : ( ( rule__StepRule__Group_4_2__0 )? ) ;
+    // InternalGeneratorDSL.g:2628:1: rule__StepRule__Group_4__2__Impl : ( ( rule__StepRule__Group_4_2__0 )? ) ;
     public final void rule__StepRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2607:1: ( ( ( rule__StepRule__Group_4_2__0 )? ) )
-            // InternalGeneratorDSL.g:2608:1: ( ( rule__StepRule__Group_4_2__0 )? )
+            // InternalGeneratorDSL.g:2632:1: ( ( ( rule__StepRule__Group_4_2__0 )? ) )
+            // InternalGeneratorDSL.g:2633:1: ( ( rule__StepRule__Group_4_2__0 )? )
             {
-            // InternalGeneratorDSL.g:2608:1: ( ( rule__StepRule__Group_4_2__0 )? )
-            // InternalGeneratorDSL.g:2609:2: ( rule__StepRule__Group_4_2__0 )?
+            // InternalGeneratorDSL.g:2633:1: ( ( rule__StepRule__Group_4_2__0 )? )
+            // InternalGeneratorDSL.g:2634:2: ( rule__StepRule__Group_4_2__0 )?
             {
              before(grammarAccess.getStepRuleAccess().getGroup_4_2()); 
-            // InternalGeneratorDSL.g:2610:2: ( rule__StepRule__Group_4_2__0 )?
+            // InternalGeneratorDSL.g:2635:2: ( rule__StepRule__Group_4_2__0 )?
             int alt21=2;
             int LA21_0 = input.LA(1);
 
@@ -8512,7 +8553,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt21) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2610:3: rule__StepRule__Group_4_2__0
+                    // InternalGeneratorDSL.g:2635:3: rule__StepRule__Group_4_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__StepRule__Group_4_2__0();
@@ -8548,14 +8589,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__3"
-    // InternalGeneratorDSL.g:2618:1: rule__StepRule__Group_4__3 : rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4 ;
+    // InternalGeneratorDSL.g:2643:1: rule__StepRule__Group_4__3 : rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4 ;
     public final void rule__StepRule__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2622:1: ( rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4 )
-            // InternalGeneratorDSL.g:2623:2: rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4
+            // InternalGeneratorDSL.g:2647:1: ( rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4 )
+            // InternalGeneratorDSL.g:2648:2: rule__StepRule__Group_4__3__Impl rule__StepRule__Group_4__4
             {
             pushFollow(FOLLOW_8);
             rule__StepRule__Group_4__3__Impl();
@@ -8586,17 +8627,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__3__Impl"
-    // InternalGeneratorDSL.g:2630:1: rule__StepRule__Group_4__3__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:2655:1: rule__StepRule__Group_4__3__Impl : ( ']' ) ;
     public final void rule__StepRule__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2634:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:2635:1: ( ']' )
+            // InternalGeneratorDSL.g:2659:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:2660:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:2635:1: ( ']' )
-            // InternalGeneratorDSL.g:2636:2: ']'
+            // InternalGeneratorDSL.g:2660:1: ( ']' )
+            // InternalGeneratorDSL.g:2661:2: ']'
             {
              before(grammarAccess.getStepRuleAccess().getRightSquareBracketKeyword_4_3()); 
             match(input,51,FOLLOW_2); 
@@ -8623,14 +8664,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__4"
-    // InternalGeneratorDSL.g:2645:1: rule__StepRule__Group_4__4 : rule__StepRule__Group_4__4__Impl ;
+    // InternalGeneratorDSL.g:2670:1: rule__StepRule__Group_4__4 : rule__StepRule__Group_4__4__Impl ;
     public final void rule__StepRule__Group_4__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2649:1: ( rule__StepRule__Group_4__4__Impl )
-            // InternalGeneratorDSL.g:2650:2: rule__StepRule__Group_4__4__Impl
+            // InternalGeneratorDSL.g:2674:1: ( rule__StepRule__Group_4__4__Impl )
+            // InternalGeneratorDSL.g:2675:2: rule__StepRule__Group_4__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_4__4__Impl();
@@ -8656,17 +8697,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4__4__Impl"
-    // InternalGeneratorDSL.g:2656:1: rule__StepRule__Group_4__4__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:2681:1: rule__StepRule__Group_4__4__Impl : ( ';' ) ;
     public final void rule__StepRule__Group_4__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2660:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:2661:1: ( ';' )
+            // InternalGeneratorDSL.g:2685:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:2686:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:2661:1: ( ';' )
-            // InternalGeneratorDSL.g:2662:2: ';'
+            // InternalGeneratorDSL.g:2686:1: ( ';' )
+            // InternalGeneratorDSL.g:2687:2: ';'
             {
              before(grammarAccess.getStepRuleAccess().getSemicolonKeyword_4_4()); 
             match(input,48,FOLLOW_2); 
@@ -8693,14 +8734,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2__0"
-    // InternalGeneratorDSL.g:2672:1: rule__StepRule__Group_4_2__0 : rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1 ;
+    // InternalGeneratorDSL.g:2697:1: rule__StepRule__Group_4_2__0 : rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1 ;
     public final void rule__StepRule__Group_4_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2676:1: ( rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1 )
-            // InternalGeneratorDSL.g:2677:2: rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1
+            // InternalGeneratorDSL.g:2701:1: ( rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1 )
+            // InternalGeneratorDSL.g:2702:2: rule__StepRule__Group_4_2__0__Impl rule__StepRule__Group_4_2__1
             {
             pushFollow(FOLLOW_16);
             rule__StepRule__Group_4_2__0__Impl();
@@ -8731,21 +8772,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2__0__Impl"
-    // InternalGeneratorDSL.g:2684:1: rule__StepRule__Group_4_2__0__Impl : ( ( rule__StepRule__ReadsAssignment_4_2_0 ) ) ;
+    // InternalGeneratorDSL.g:2709:1: rule__StepRule__Group_4_2__0__Impl : ( ( rule__StepRule__ReadsAssignment_4_2_0 ) ) ;
     public final void rule__StepRule__Group_4_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2688:1: ( ( ( rule__StepRule__ReadsAssignment_4_2_0 ) ) )
-            // InternalGeneratorDSL.g:2689:1: ( ( rule__StepRule__ReadsAssignment_4_2_0 ) )
+            // InternalGeneratorDSL.g:2713:1: ( ( ( rule__StepRule__ReadsAssignment_4_2_0 ) ) )
+            // InternalGeneratorDSL.g:2714:1: ( ( rule__StepRule__ReadsAssignment_4_2_0 ) )
             {
-            // InternalGeneratorDSL.g:2689:1: ( ( rule__StepRule__ReadsAssignment_4_2_0 ) )
-            // InternalGeneratorDSL.g:2690:2: ( rule__StepRule__ReadsAssignment_4_2_0 )
+            // InternalGeneratorDSL.g:2714:1: ( ( rule__StepRule__ReadsAssignment_4_2_0 ) )
+            // InternalGeneratorDSL.g:2715:2: ( rule__StepRule__ReadsAssignment_4_2_0 )
             {
              before(grammarAccess.getStepRuleAccess().getReadsAssignment_4_2_0()); 
-            // InternalGeneratorDSL.g:2691:2: ( rule__StepRule__ReadsAssignment_4_2_0 )
-            // InternalGeneratorDSL.g:2691:3: rule__StepRule__ReadsAssignment_4_2_0
+            // InternalGeneratorDSL.g:2716:2: ( rule__StepRule__ReadsAssignment_4_2_0 )
+            // InternalGeneratorDSL.g:2716:3: rule__StepRule__ReadsAssignment_4_2_0
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__ReadsAssignment_4_2_0();
@@ -8778,14 +8819,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2__1"
-    // InternalGeneratorDSL.g:2699:1: rule__StepRule__Group_4_2__1 : rule__StepRule__Group_4_2__1__Impl ;
+    // InternalGeneratorDSL.g:2724:1: rule__StepRule__Group_4_2__1 : rule__StepRule__Group_4_2__1__Impl ;
     public final void rule__StepRule__Group_4_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2703:1: ( rule__StepRule__Group_4_2__1__Impl )
-            // InternalGeneratorDSL.g:2704:2: rule__StepRule__Group_4_2__1__Impl
+            // InternalGeneratorDSL.g:2728:1: ( rule__StepRule__Group_4_2__1__Impl )
+            // InternalGeneratorDSL.g:2729:2: rule__StepRule__Group_4_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_4_2__1__Impl();
@@ -8811,20 +8852,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2__1__Impl"
-    // InternalGeneratorDSL.g:2710:1: rule__StepRule__Group_4_2__1__Impl : ( ( rule__StepRule__Group_4_2_1__0 )* ) ;
+    // InternalGeneratorDSL.g:2735:1: rule__StepRule__Group_4_2__1__Impl : ( ( rule__StepRule__Group_4_2_1__0 )* ) ;
     public final void rule__StepRule__Group_4_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2714:1: ( ( ( rule__StepRule__Group_4_2_1__0 )* ) )
-            // InternalGeneratorDSL.g:2715:1: ( ( rule__StepRule__Group_4_2_1__0 )* )
+            // InternalGeneratorDSL.g:2739:1: ( ( ( rule__StepRule__Group_4_2_1__0 )* ) )
+            // InternalGeneratorDSL.g:2740:1: ( ( rule__StepRule__Group_4_2_1__0 )* )
             {
-            // InternalGeneratorDSL.g:2715:1: ( ( rule__StepRule__Group_4_2_1__0 )* )
-            // InternalGeneratorDSL.g:2716:2: ( rule__StepRule__Group_4_2_1__0 )*
+            // InternalGeneratorDSL.g:2740:1: ( ( rule__StepRule__Group_4_2_1__0 )* )
+            // InternalGeneratorDSL.g:2741:2: ( rule__StepRule__Group_4_2_1__0 )*
             {
              before(grammarAccess.getStepRuleAccess().getGroup_4_2_1()); 
-            // InternalGeneratorDSL.g:2717:2: ( rule__StepRule__Group_4_2_1__0 )*
+            // InternalGeneratorDSL.g:2742:2: ( rule__StepRule__Group_4_2_1__0 )*
             loop22:
             do {
                 int alt22=2;
@@ -8837,7 +8878,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2717:3: rule__StepRule__Group_4_2_1__0
+            	    // InternalGeneratorDSL.g:2742:3: rule__StepRule__Group_4_2_1__0
             	    {
             	    pushFollow(FOLLOW_17);
             	    rule__StepRule__Group_4_2_1__0();
@@ -8876,14 +8917,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2_1__0"
-    // InternalGeneratorDSL.g:2726:1: rule__StepRule__Group_4_2_1__0 : rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1 ;
+    // InternalGeneratorDSL.g:2751:1: rule__StepRule__Group_4_2_1__0 : rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1 ;
     public final void rule__StepRule__Group_4_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2730:1: ( rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1 )
-            // InternalGeneratorDSL.g:2731:2: rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1
+            // InternalGeneratorDSL.g:2755:1: ( rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1 )
+            // InternalGeneratorDSL.g:2756:2: rule__StepRule__Group_4_2_1__0__Impl rule__StepRule__Group_4_2_1__1
             {
             pushFollow(FOLLOW_18);
             rule__StepRule__Group_4_2_1__0__Impl();
@@ -8914,17 +8955,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2_1__0__Impl"
-    // InternalGeneratorDSL.g:2738:1: rule__StepRule__Group_4_2_1__0__Impl : ( ',' ) ;
+    // InternalGeneratorDSL.g:2763:1: rule__StepRule__Group_4_2_1__0__Impl : ( ',' ) ;
     public final void rule__StepRule__Group_4_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2742:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:2743:1: ( ',' )
+            // InternalGeneratorDSL.g:2767:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:2768:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:2743:1: ( ',' )
-            // InternalGeneratorDSL.g:2744:2: ','
+            // InternalGeneratorDSL.g:2768:1: ( ',' )
+            // InternalGeneratorDSL.g:2769:2: ','
             {
              before(grammarAccess.getStepRuleAccess().getCommaKeyword_4_2_1_0()); 
             match(input,57,FOLLOW_2); 
@@ -8951,14 +8992,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2_1__1"
-    // InternalGeneratorDSL.g:2753:1: rule__StepRule__Group_4_2_1__1 : rule__StepRule__Group_4_2_1__1__Impl ;
+    // InternalGeneratorDSL.g:2778:1: rule__StepRule__Group_4_2_1__1 : rule__StepRule__Group_4_2_1__1__Impl ;
     public final void rule__StepRule__Group_4_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2757:1: ( rule__StepRule__Group_4_2_1__1__Impl )
-            // InternalGeneratorDSL.g:2758:2: rule__StepRule__Group_4_2_1__1__Impl
+            // InternalGeneratorDSL.g:2782:1: ( rule__StepRule__Group_4_2_1__1__Impl )
+            // InternalGeneratorDSL.g:2783:2: rule__StepRule__Group_4_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_4_2_1__1__Impl();
@@ -8984,21 +9025,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_4_2_1__1__Impl"
-    // InternalGeneratorDSL.g:2764:1: rule__StepRule__Group_4_2_1__1__Impl : ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) ) ;
+    // InternalGeneratorDSL.g:2789:1: rule__StepRule__Group_4_2_1__1__Impl : ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) ) ;
     public final void rule__StepRule__Group_4_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2768:1: ( ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) ) )
-            // InternalGeneratorDSL.g:2769:1: ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) )
+            // InternalGeneratorDSL.g:2793:1: ( ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) ) )
+            // InternalGeneratorDSL.g:2794:1: ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) )
             {
-            // InternalGeneratorDSL.g:2769:1: ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) )
-            // InternalGeneratorDSL.g:2770:2: ( rule__StepRule__ReadsAssignment_4_2_1_1 )
+            // InternalGeneratorDSL.g:2794:1: ( ( rule__StepRule__ReadsAssignment_4_2_1_1 ) )
+            // InternalGeneratorDSL.g:2795:2: ( rule__StepRule__ReadsAssignment_4_2_1_1 )
             {
              before(grammarAccess.getStepRuleAccess().getReadsAssignment_4_2_1_1()); 
-            // InternalGeneratorDSL.g:2771:2: ( rule__StepRule__ReadsAssignment_4_2_1_1 )
-            // InternalGeneratorDSL.g:2771:3: rule__StepRule__ReadsAssignment_4_2_1_1
+            // InternalGeneratorDSL.g:2796:2: ( rule__StepRule__ReadsAssignment_4_2_1_1 )
+            // InternalGeneratorDSL.g:2796:3: rule__StepRule__ReadsAssignment_4_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__ReadsAssignment_4_2_1_1();
@@ -9031,14 +9072,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__0"
-    // InternalGeneratorDSL.g:2780:1: rule__StepRule__Group_5__0 : rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1 ;
+    // InternalGeneratorDSL.g:2805:1: rule__StepRule__Group_5__0 : rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1 ;
     public final void rule__StepRule__Group_5__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2784:1: ( rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1 )
-            // InternalGeneratorDSL.g:2785:2: rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1
+            // InternalGeneratorDSL.g:2809:1: ( rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1 )
+            // InternalGeneratorDSL.g:2810:2: rule__StepRule__Group_5__0__Impl rule__StepRule__Group_5__1
             {
             pushFollow(FOLLOW_9);
             rule__StepRule__Group_5__0__Impl();
@@ -9069,17 +9110,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__0__Impl"
-    // InternalGeneratorDSL.g:2792:1: rule__StepRule__Group_5__0__Impl : ( 'writes' ) ;
+    // InternalGeneratorDSL.g:2817:1: rule__StepRule__Group_5__0__Impl : ( 'writes' ) ;
     public final void rule__StepRule__Group_5__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2796:1: ( ( 'writes' ) )
-            // InternalGeneratorDSL.g:2797:1: ( 'writes' )
+            // InternalGeneratorDSL.g:2821:1: ( ( 'writes' ) )
+            // InternalGeneratorDSL.g:2822:1: ( 'writes' )
             {
-            // InternalGeneratorDSL.g:2797:1: ( 'writes' )
-            // InternalGeneratorDSL.g:2798:2: 'writes'
+            // InternalGeneratorDSL.g:2822:1: ( 'writes' )
+            // InternalGeneratorDSL.g:2823:2: 'writes'
             {
              before(grammarAccess.getStepRuleAccess().getWritesKeyword_5_0()); 
             match(input,58,FOLLOW_2); 
@@ -9106,14 +9147,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__1"
-    // InternalGeneratorDSL.g:2807:1: rule__StepRule__Group_5__1 : rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2 ;
+    // InternalGeneratorDSL.g:2832:1: rule__StepRule__Group_5__1 : rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2 ;
     public final void rule__StepRule__Group_5__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2811:1: ( rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2 )
-            // InternalGeneratorDSL.g:2812:2: rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2
+            // InternalGeneratorDSL.g:2836:1: ( rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2 )
+            // InternalGeneratorDSL.g:2837:2: rule__StepRule__Group_5__1__Impl rule__StepRule__Group_5__2
             {
             pushFollow(FOLLOW_15);
             rule__StepRule__Group_5__1__Impl();
@@ -9144,17 +9185,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__1__Impl"
-    // InternalGeneratorDSL.g:2819:1: rule__StepRule__Group_5__1__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:2844:1: rule__StepRule__Group_5__1__Impl : ( '[' ) ;
     public final void rule__StepRule__Group_5__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2823:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:2824:1: ( '[' )
+            // InternalGeneratorDSL.g:2848:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:2849:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:2824:1: ( '[' )
-            // InternalGeneratorDSL.g:2825:2: '['
+            // InternalGeneratorDSL.g:2849:1: ( '[' )
+            // InternalGeneratorDSL.g:2850:2: '['
             {
              before(grammarAccess.getStepRuleAccess().getLeftSquareBracketKeyword_5_1()); 
             match(input,50,FOLLOW_2); 
@@ -9181,14 +9222,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__2"
-    // InternalGeneratorDSL.g:2834:1: rule__StepRule__Group_5__2 : rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3 ;
+    // InternalGeneratorDSL.g:2859:1: rule__StepRule__Group_5__2 : rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3 ;
     public final void rule__StepRule__Group_5__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2838:1: ( rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3 )
-            // InternalGeneratorDSL.g:2839:2: rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3
+            // InternalGeneratorDSL.g:2863:1: ( rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3 )
+            // InternalGeneratorDSL.g:2864:2: rule__StepRule__Group_5__2__Impl rule__StepRule__Group_5__3
             {
             pushFollow(FOLLOW_15);
             rule__StepRule__Group_5__2__Impl();
@@ -9219,20 +9260,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__2__Impl"
-    // InternalGeneratorDSL.g:2846:1: rule__StepRule__Group_5__2__Impl : ( ( rule__StepRule__Group_5_2__0 )? ) ;
+    // InternalGeneratorDSL.g:2871:1: rule__StepRule__Group_5__2__Impl : ( ( rule__StepRule__Group_5_2__0 )? ) ;
     public final void rule__StepRule__Group_5__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2850:1: ( ( ( rule__StepRule__Group_5_2__0 )? ) )
-            // InternalGeneratorDSL.g:2851:1: ( ( rule__StepRule__Group_5_2__0 )? )
+            // InternalGeneratorDSL.g:2875:1: ( ( ( rule__StepRule__Group_5_2__0 )? ) )
+            // InternalGeneratorDSL.g:2876:1: ( ( rule__StepRule__Group_5_2__0 )? )
             {
-            // InternalGeneratorDSL.g:2851:1: ( ( rule__StepRule__Group_5_2__0 )? )
-            // InternalGeneratorDSL.g:2852:2: ( rule__StepRule__Group_5_2__0 )?
+            // InternalGeneratorDSL.g:2876:1: ( ( rule__StepRule__Group_5_2__0 )? )
+            // InternalGeneratorDSL.g:2877:2: ( rule__StepRule__Group_5_2__0 )?
             {
              before(grammarAccess.getStepRuleAccess().getGroup_5_2()); 
-            // InternalGeneratorDSL.g:2853:2: ( rule__StepRule__Group_5_2__0 )?
+            // InternalGeneratorDSL.g:2878:2: ( rule__StepRule__Group_5_2__0 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -9241,7 +9282,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt23) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2853:3: rule__StepRule__Group_5_2__0
+                    // InternalGeneratorDSL.g:2878:3: rule__StepRule__Group_5_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__StepRule__Group_5_2__0();
@@ -9277,14 +9318,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__3"
-    // InternalGeneratorDSL.g:2861:1: rule__StepRule__Group_5__3 : rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4 ;
+    // InternalGeneratorDSL.g:2886:1: rule__StepRule__Group_5__3 : rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4 ;
     public final void rule__StepRule__Group_5__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2865:1: ( rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4 )
-            // InternalGeneratorDSL.g:2866:2: rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4
+            // InternalGeneratorDSL.g:2890:1: ( rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4 )
+            // InternalGeneratorDSL.g:2891:2: rule__StepRule__Group_5__3__Impl rule__StepRule__Group_5__4
             {
             pushFollow(FOLLOW_8);
             rule__StepRule__Group_5__3__Impl();
@@ -9315,17 +9356,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__3__Impl"
-    // InternalGeneratorDSL.g:2873:1: rule__StepRule__Group_5__3__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:2898:1: rule__StepRule__Group_5__3__Impl : ( ']' ) ;
     public final void rule__StepRule__Group_5__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2877:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:2878:1: ( ']' )
+            // InternalGeneratorDSL.g:2902:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:2903:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:2878:1: ( ']' )
-            // InternalGeneratorDSL.g:2879:2: ']'
+            // InternalGeneratorDSL.g:2903:1: ( ']' )
+            // InternalGeneratorDSL.g:2904:2: ']'
             {
              before(grammarAccess.getStepRuleAccess().getRightSquareBracketKeyword_5_3()); 
             match(input,51,FOLLOW_2); 
@@ -9352,14 +9393,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__4"
-    // InternalGeneratorDSL.g:2888:1: rule__StepRule__Group_5__4 : rule__StepRule__Group_5__4__Impl ;
+    // InternalGeneratorDSL.g:2913:1: rule__StepRule__Group_5__4 : rule__StepRule__Group_5__4__Impl ;
     public final void rule__StepRule__Group_5__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2892:1: ( rule__StepRule__Group_5__4__Impl )
-            // InternalGeneratorDSL.g:2893:2: rule__StepRule__Group_5__4__Impl
+            // InternalGeneratorDSL.g:2917:1: ( rule__StepRule__Group_5__4__Impl )
+            // InternalGeneratorDSL.g:2918:2: rule__StepRule__Group_5__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_5__4__Impl();
@@ -9385,17 +9426,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5__4__Impl"
-    // InternalGeneratorDSL.g:2899:1: rule__StepRule__Group_5__4__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:2924:1: rule__StepRule__Group_5__4__Impl : ( ';' ) ;
     public final void rule__StepRule__Group_5__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2903:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:2904:1: ( ';' )
+            // InternalGeneratorDSL.g:2928:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:2929:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:2904:1: ( ';' )
-            // InternalGeneratorDSL.g:2905:2: ';'
+            // InternalGeneratorDSL.g:2929:1: ( ';' )
+            // InternalGeneratorDSL.g:2930:2: ';'
             {
              before(grammarAccess.getStepRuleAccess().getSemicolonKeyword_5_4()); 
             match(input,48,FOLLOW_2); 
@@ -9422,14 +9463,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2__0"
-    // InternalGeneratorDSL.g:2915:1: rule__StepRule__Group_5_2__0 : rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1 ;
+    // InternalGeneratorDSL.g:2940:1: rule__StepRule__Group_5_2__0 : rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1 ;
     public final void rule__StepRule__Group_5_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2919:1: ( rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1 )
-            // InternalGeneratorDSL.g:2920:2: rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1
+            // InternalGeneratorDSL.g:2944:1: ( rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1 )
+            // InternalGeneratorDSL.g:2945:2: rule__StepRule__Group_5_2__0__Impl rule__StepRule__Group_5_2__1
             {
             pushFollow(FOLLOW_16);
             rule__StepRule__Group_5_2__0__Impl();
@@ -9460,21 +9501,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2__0__Impl"
-    // InternalGeneratorDSL.g:2927:1: rule__StepRule__Group_5_2__0__Impl : ( ( rule__StepRule__WritesAssignment_5_2_0 ) ) ;
+    // InternalGeneratorDSL.g:2952:1: rule__StepRule__Group_5_2__0__Impl : ( ( rule__StepRule__WritesAssignment_5_2_0 ) ) ;
     public final void rule__StepRule__Group_5_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2931:1: ( ( ( rule__StepRule__WritesAssignment_5_2_0 ) ) )
-            // InternalGeneratorDSL.g:2932:1: ( ( rule__StepRule__WritesAssignment_5_2_0 ) )
+            // InternalGeneratorDSL.g:2956:1: ( ( ( rule__StepRule__WritesAssignment_5_2_0 ) ) )
+            // InternalGeneratorDSL.g:2957:1: ( ( rule__StepRule__WritesAssignment_5_2_0 ) )
             {
-            // InternalGeneratorDSL.g:2932:1: ( ( rule__StepRule__WritesAssignment_5_2_0 ) )
-            // InternalGeneratorDSL.g:2933:2: ( rule__StepRule__WritesAssignment_5_2_0 )
+            // InternalGeneratorDSL.g:2957:1: ( ( rule__StepRule__WritesAssignment_5_2_0 ) )
+            // InternalGeneratorDSL.g:2958:2: ( rule__StepRule__WritesAssignment_5_2_0 )
             {
              before(grammarAccess.getStepRuleAccess().getWritesAssignment_5_2_0()); 
-            // InternalGeneratorDSL.g:2934:2: ( rule__StepRule__WritesAssignment_5_2_0 )
-            // InternalGeneratorDSL.g:2934:3: rule__StepRule__WritesAssignment_5_2_0
+            // InternalGeneratorDSL.g:2959:2: ( rule__StepRule__WritesAssignment_5_2_0 )
+            // InternalGeneratorDSL.g:2959:3: rule__StepRule__WritesAssignment_5_2_0
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__WritesAssignment_5_2_0();
@@ -9507,14 +9548,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2__1"
-    // InternalGeneratorDSL.g:2942:1: rule__StepRule__Group_5_2__1 : rule__StepRule__Group_5_2__1__Impl ;
+    // InternalGeneratorDSL.g:2967:1: rule__StepRule__Group_5_2__1 : rule__StepRule__Group_5_2__1__Impl ;
     public final void rule__StepRule__Group_5_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2946:1: ( rule__StepRule__Group_5_2__1__Impl )
-            // InternalGeneratorDSL.g:2947:2: rule__StepRule__Group_5_2__1__Impl
+            // InternalGeneratorDSL.g:2971:1: ( rule__StepRule__Group_5_2__1__Impl )
+            // InternalGeneratorDSL.g:2972:2: rule__StepRule__Group_5_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_5_2__1__Impl();
@@ -9540,20 +9581,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2__1__Impl"
-    // InternalGeneratorDSL.g:2953:1: rule__StepRule__Group_5_2__1__Impl : ( ( rule__StepRule__Group_5_2_1__0 )* ) ;
+    // InternalGeneratorDSL.g:2978:1: rule__StepRule__Group_5_2__1__Impl : ( ( rule__StepRule__Group_5_2_1__0 )* ) ;
     public final void rule__StepRule__Group_5_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2957:1: ( ( ( rule__StepRule__Group_5_2_1__0 )* ) )
-            // InternalGeneratorDSL.g:2958:1: ( ( rule__StepRule__Group_5_2_1__0 )* )
+            // InternalGeneratorDSL.g:2982:1: ( ( ( rule__StepRule__Group_5_2_1__0 )* ) )
+            // InternalGeneratorDSL.g:2983:1: ( ( rule__StepRule__Group_5_2_1__0 )* )
             {
-            // InternalGeneratorDSL.g:2958:1: ( ( rule__StepRule__Group_5_2_1__0 )* )
-            // InternalGeneratorDSL.g:2959:2: ( rule__StepRule__Group_5_2_1__0 )*
+            // InternalGeneratorDSL.g:2983:1: ( ( rule__StepRule__Group_5_2_1__0 )* )
+            // InternalGeneratorDSL.g:2984:2: ( rule__StepRule__Group_5_2_1__0 )*
             {
              before(grammarAccess.getStepRuleAccess().getGroup_5_2_1()); 
-            // InternalGeneratorDSL.g:2960:2: ( rule__StepRule__Group_5_2_1__0 )*
+            // InternalGeneratorDSL.g:2985:2: ( rule__StepRule__Group_5_2_1__0 )*
             loop24:
             do {
                 int alt24=2;
@@ -9566,7 +9607,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt24) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2960:3: rule__StepRule__Group_5_2_1__0
+            	    // InternalGeneratorDSL.g:2985:3: rule__StepRule__Group_5_2_1__0
             	    {
             	    pushFollow(FOLLOW_17);
             	    rule__StepRule__Group_5_2_1__0();
@@ -9605,14 +9646,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2_1__0"
-    // InternalGeneratorDSL.g:2969:1: rule__StepRule__Group_5_2_1__0 : rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1 ;
+    // InternalGeneratorDSL.g:2994:1: rule__StepRule__Group_5_2_1__0 : rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1 ;
     public final void rule__StepRule__Group_5_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2973:1: ( rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1 )
-            // InternalGeneratorDSL.g:2974:2: rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1
+            // InternalGeneratorDSL.g:2998:1: ( rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1 )
+            // InternalGeneratorDSL.g:2999:2: rule__StepRule__Group_5_2_1__0__Impl rule__StepRule__Group_5_2_1__1
             {
             pushFollow(FOLLOW_18);
             rule__StepRule__Group_5_2_1__0__Impl();
@@ -9643,17 +9684,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2_1__0__Impl"
-    // InternalGeneratorDSL.g:2981:1: rule__StepRule__Group_5_2_1__0__Impl : ( ',' ) ;
+    // InternalGeneratorDSL.g:3006:1: rule__StepRule__Group_5_2_1__0__Impl : ( ',' ) ;
     public final void rule__StepRule__Group_5_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:2985:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:2986:1: ( ',' )
+            // InternalGeneratorDSL.g:3010:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:3011:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:2986:1: ( ',' )
-            // InternalGeneratorDSL.g:2987:2: ','
+            // InternalGeneratorDSL.g:3011:1: ( ',' )
+            // InternalGeneratorDSL.g:3012:2: ','
             {
              before(grammarAccess.getStepRuleAccess().getCommaKeyword_5_2_1_0()); 
             match(input,57,FOLLOW_2); 
@@ -9680,14 +9721,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2_1__1"
-    // InternalGeneratorDSL.g:2996:1: rule__StepRule__Group_5_2_1__1 : rule__StepRule__Group_5_2_1__1__Impl ;
+    // InternalGeneratorDSL.g:3021:1: rule__StepRule__Group_5_2_1__1 : rule__StepRule__Group_5_2_1__1__Impl ;
     public final void rule__StepRule__Group_5_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3000:1: ( rule__StepRule__Group_5_2_1__1__Impl )
-            // InternalGeneratorDSL.g:3001:2: rule__StepRule__Group_5_2_1__1__Impl
+            // InternalGeneratorDSL.g:3025:1: ( rule__StepRule__Group_5_2_1__1__Impl )
+            // InternalGeneratorDSL.g:3026:2: rule__StepRule__Group_5_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__Group_5_2_1__1__Impl();
@@ -9713,21 +9754,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__Group_5_2_1__1__Impl"
-    // InternalGeneratorDSL.g:3007:1: rule__StepRule__Group_5_2_1__1__Impl : ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) ) ;
+    // InternalGeneratorDSL.g:3032:1: rule__StepRule__Group_5_2_1__1__Impl : ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) ) ;
     public final void rule__StepRule__Group_5_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3011:1: ( ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) ) )
-            // InternalGeneratorDSL.g:3012:1: ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) )
+            // InternalGeneratorDSL.g:3036:1: ( ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) ) )
+            // InternalGeneratorDSL.g:3037:1: ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) )
             {
-            // InternalGeneratorDSL.g:3012:1: ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) )
-            // InternalGeneratorDSL.g:3013:2: ( rule__StepRule__WritesAssignment_5_2_1_1 )
+            // InternalGeneratorDSL.g:3037:1: ( ( rule__StepRule__WritesAssignment_5_2_1_1 ) )
+            // InternalGeneratorDSL.g:3038:2: ( rule__StepRule__WritesAssignment_5_2_1_1 )
             {
              before(grammarAccess.getStepRuleAccess().getWritesAssignment_5_2_1_1()); 
-            // InternalGeneratorDSL.g:3014:2: ( rule__StepRule__WritesAssignment_5_2_1_1 )
-            // InternalGeneratorDSL.g:3014:3: rule__StepRule__WritesAssignment_5_2_1_1
+            // InternalGeneratorDSL.g:3039:2: ( rule__StepRule__WritesAssignment_5_2_1_1 )
+            // InternalGeneratorDSL.g:3039:3: rule__StepRule__WritesAssignment_5_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__StepRule__WritesAssignment_5_2_1_1();
@@ -9760,14 +9801,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__0"
-    // InternalGeneratorDSL.g:3023:1: rule__ForStatementRule__Group__0 : rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 ;
+    // InternalGeneratorDSL.g:3048:1: rule__ForStatementRule__Group__0 : rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 ;
     public final void rule__ForStatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3027:1: ( rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 )
-            // InternalGeneratorDSL.g:3028:2: rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1
+            // InternalGeneratorDSL.g:3052:1: ( rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 )
+            // InternalGeneratorDSL.g:3053:2: rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1
             {
             pushFollow(FOLLOW_19);
             rule__ForStatementRule__Group__0__Impl();
@@ -9798,17 +9839,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:3035:1: rule__ForStatementRule__Group__0__Impl : ( 'for' ) ;
+    // InternalGeneratorDSL.g:3060:1: rule__ForStatementRule__Group__0__Impl : ( 'for' ) ;
     public final void rule__ForStatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3039:1: ( ( 'for' ) )
-            // InternalGeneratorDSL.g:3040:1: ( 'for' )
+            // InternalGeneratorDSL.g:3064:1: ( ( 'for' ) )
+            // InternalGeneratorDSL.g:3065:1: ( 'for' )
             {
-            // InternalGeneratorDSL.g:3040:1: ( 'for' )
-            // InternalGeneratorDSL.g:3041:2: 'for'
+            // InternalGeneratorDSL.g:3065:1: ( 'for' )
+            // InternalGeneratorDSL.g:3066:2: 'for'
             {
              before(grammarAccess.getForStatementRuleAccess().getForKeyword_0()); 
             match(input,59,FOLLOW_2); 
@@ -9835,14 +9876,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__1"
-    // InternalGeneratorDSL.g:3050:1: rule__ForStatementRule__Group__1 : rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 ;
+    // InternalGeneratorDSL.g:3075:1: rule__ForStatementRule__Group__1 : rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 ;
     public final void rule__ForStatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3054:1: ( rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 )
-            // InternalGeneratorDSL.g:3055:2: rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2
+            // InternalGeneratorDSL.g:3079:1: ( rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 )
+            // InternalGeneratorDSL.g:3080:2: rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2
             {
             pushFollow(FOLLOW_20);
             rule__ForStatementRule__Group__1__Impl();
@@ -9873,21 +9914,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:3062:1: rule__ForStatementRule__Group__1__Impl : ( ( rule__ForStatementRule__NameAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:3087:1: rule__ForStatementRule__Group__1__Impl : ( ( rule__ForStatementRule__NameAssignment_1 ) ) ;
     public final void rule__ForStatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3066:1: ( ( ( rule__ForStatementRule__NameAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:3067:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:3091:1: ( ( ( rule__ForStatementRule__NameAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:3092:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:3067:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
-            // InternalGeneratorDSL.g:3068:2: ( rule__ForStatementRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:3092:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:3093:2: ( rule__ForStatementRule__NameAssignment_1 )
             {
              before(grammarAccess.getForStatementRuleAccess().getNameAssignment_1()); 
-            // InternalGeneratorDSL.g:3069:2: ( rule__ForStatementRule__NameAssignment_1 )
-            // InternalGeneratorDSL.g:3069:3: rule__ForStatementRule__NameAssignment_1
+            // InternalGeneratorDSL.g:3094:2: ( rule__ForStatementRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:3094:3: rule__ForStatementRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__NameAssignment_1();
@@ -9920,14 +9961,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__2"
-    // InternalGeneratorDSL.g:3077:1: rule__ForStatementRule__Group__2 : rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 ;
+    // InternalGeneratorDSL.g:3102:1: rule__ForStatementRule__Group__2 : rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 ;
     public final void rule__ForStatementRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3081:1: ( rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 )
-            // InternalGeneratorDSL.g:3082:2: rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3
+            // InternalGeneratorDSL.g:3106:1: ( rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 )
+            // InternalGeneratorDSL.g:3107:2: rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3
             {
             pushFollow(FOLLOW_21);
             rule__ForStatementRule__Group__2__Impl();
@@ -9958,17 +9999,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:3089:1: rule__ForStatementRule__Group__2__Impl : ( 'in' ) ;
+    // InternalGeneratorDSL.g:3114:1: rule__ForStatementRule__Group__2__Impl : ( 'in' ) ;
     public final void rule__ForStatementRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3093:1: ( ( 'in' ) )
-            // InternalGeneratorDSL.g:3094:1: ( 'in' )
+            // InternalGeneratorDSL.g:3118:1: ( ( 'in' ) )
+            // InternalGeneratorDSL.g:3119:1: ( 'in' )
             {
-            // InternalGeneratorDSL.g:3094:1: ( 'in' )
-            // InternalGeneratorDSL.g:3095:2: 'in'
+            // InternalGeneratorDSL.g:3119:1: ( 'in' )
+            // InternalGeneratorDSL.g:3120:2: 'in'
             {
              before(grammarAccess.getForStatementRuleAccess().getInKeyword_2()); 
             match(input,60,FOLLOW_2); 
@@ -9995,14 +10036,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__3"
-    // InternalGeneratorDSL.g:3104:1: rule__ForStatementRule__Group__3 : rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 ;
+    // InternalGeneratorDSL.g:3129:1: rule__ForStatementRule__Group__3 : rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 ;
     public final void rule__ForStatementRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3108:1: ( rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 )
-            // InternalGeneratorDSL.g:3109:2: rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4
+            // InternalGeneratorDSL.g:3133:1: ( rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 )
+            // InternalGeneratorDSL.g:3134:2: rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4
             {
             pushFollow(FOLLOW_22);
             rule__ForStatementRule__Group__3__Impl();
@@ -10033,21 +10074,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:3116:1: rule__ForStatementRule__Group__3__Impl : ( ( rule__ForStatementRule__RangeAssignment_3 ) ) ;
+    // InternalGeneratorDSL.g:3141:1: rule__ForStatementRule__Group__3__Impl : ( ( rule__ForStatementRule__RangeAssignment_3 ) ) ;
     public final void rule__ForStatementRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3120:1: ( ( ( rule__ForStatementRule__RangeAssignment_3 ) ) )
-            // InternalGeneratorDSL.g:3121:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
+            // InternalGeneratorDSL.g:3145:1: ( ( ( rule__ForStatementRule__RangeAssignment_3 ) ) )
+            // InternalGeneratorDSL.g:3146:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
             {
-            // InternalGeneratorDSL.g:3121:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
-            // InternalGeneratorDSL.g:3122:2: ( rule__ForStatementRule__RangeAssignment_3 )
+            // InternalGeneratorDSL.g:3146:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
+            // InternalGeneratorDSL.g:3147:2: ( rule__ForStatementRule__RangeAssignment_3 )
             {
              before(grammarAccess.getForStatementRuleAccess().getRangeAssignment_3()); 
-            // InternalGeneratorDSL.g:3123:2: ( rule__ForStatementRule__RangeAssignment_3 )
-            // InternalGeneratorDSL.g:3123:3: rule__ForStatementRule__RangeAssignment_3
+            // InternalGeneratorDSL.g:3148:2: ( rule__ForStatementRule__RangeAssignment_3 )
+            // InternalGeneratorDSL.g:3148:3: rule__ForStatementRule__RangeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__RangeAssignment_3();
@@ -10080,14 +10121,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__4"
-    // InternalGeneratorDSL.g:3131:1: rule__ForStatementRule__Group__4 : rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 ;
+    // InternalGeneratorDSL.g:3156:1: rule__ForStatementRule__Group__4 : rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 ;
     public final void rule__ForStatementRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3135:1: ( rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 )
-            // InternalGeneratorDSL.g:3136:2: rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5
+            // InternalGeneratorDSL.g:3160:1: ( rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 )
+            // InternalGeneratorDSL.g:3161:2: rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5
             {
             pushFollow(FOLLOW_23);
             rule__ForStatementRule__Group__4__Impl();
@@ -10118,17 +10159,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:3143:1: rule__ForStatementRule__Group__4__Impl : ( 'loop' ) ;
+    // InternalGeneratorDSL.g:3168:1: rule__ForStatementRule__Group__4__Impl : ( 'loop' ) ;
     public final void rule__ForStatementRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3147:1: ( ( 'loop' ) )
-            // InternalGeneratorDSL.g:3148:1: ( 'loop' )
+            // InternalGeneratorDSL.g:3172:1: ( ( 'loop' ) )
+            // InternalGeneratorDSL.g:3173:1: ( 'loop' )
             {
-            // InternalGeneratorDSL.g:3148:1: ( 'loop' )
-            // InternalGeneratorDSL.g:3149:2: 'loop'
+            // InternalGeneratorDSL.g:3173:1: ( 'loop' )
+            // InternalGeneratorDSL.g:3174:2: 'loop'
             {
              before(grammarAccess.getForStatementRuleAccess().getLoopKeyword_4()); 
             match(input,61,FOLLOW_2); 
@@ -10155,14 +10196,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__5"
-    // InternalGeneratorDSL.g:3158:1: rule__ForStatementRule__Group__5 : rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 ;
+    // InternalGeneratorDSL.g:3183:1: rule__ForStatementRule__Group__5 : rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 ;
     public final void rule__ForStatementRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3162:1: ( rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 )
-            // InternalGeneratorDSL.g:3163:2: rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6
+            // InternalGeneratorDSL.g:3187:1: ( rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 )
+            // InternalGeneratorDSL.g:3188:2: rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6
             {
             pushFollow(FOLLOW_23);
             rule__ForStatementRule__Group__5__Impl();
@@ -10193,20 +10234,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__5__Impl"
-    // InternalGeneratorDSL.g:3170:1: rule__ForStatementRule__Group__5__Impl : ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) ;
+    // InternalGeneratorDSL.g:3195:1: rule__ForStatementRule__Group__5__Impl : ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) ;
     public final void rule__ForStatementRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3174:1: ( ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) )
-            // InternalGeneratorDSL.g:3175:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
+            // InternalGeneratorDSL.g:3199:1: ( ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) )
+            // InternalGeneratorDSL.g:3200:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
             {
-            // InternalGeneratorDSL.g:3175:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
-            // InternalGeneratorDSL.g:3176:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
+            // InternalGeneratorDSL.g:3200:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
+            // InternalGeneratorDSL.g:3201:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
             {
              before(grammarAccess.getForStatementRuleAccess().getStatementsAssignment_5()); 
-            // InternalGeneratorDSL.g:3177:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
+            // InternalGeneratorDSL.g:3202:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
             loop25:
             do {
                 int alt25=2;
@@ -10219,7 +10260,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt25) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3177:3: rule__ForStatementRule__StatementsAssignment_5
+            	    // InternalGeneratorDSL.g:3202:3: rule__ForStatementRule__StatementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ForStatementRule__StatementsAssignment_5();
@@ -10258,14 +10299,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__6"
-    // InternalGeneratorDSL.g:3185:1: rule__ForStatementRule__Group__6 : rule__ForStatementRule__Group__6__Impl ;
+    // InternalGeneratorDSL.g:3210:1: rule__ForStatementRule__Group__6 : rule__ForStatementRule__Group__6__Impl ;
     public final void rule__ForStatementRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3189:1: ( rule__ForStatementRule__Group__6__Impl )
-            // InternalGeneratorDSL.g:3190:2: rule__ForStatementRule__Group__6__Impl
+            // InternalGeneratorDSL.g:3214:1: ( rule__ForStatementRule__Group__6__Impl )
+            // InternalGeneratorDSL.g:3215:2: rule__ForStatementRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__Group__6__Impl();
@@ -10291,17 +10332,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__Group__6__Impl"
-    // InternalGeneratorDSL.g:3196:1: rule__ForStatementRule__Group__6__Impl : ( 'end' ) ;
+    // InternalGeneratorDSL.g:3221:1: rule__ForStatementRule__Group__6__Impl : ( 'end' ) ;
     public final void rule__ForStatementRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3200:1: ( ( 'end' ) )
-            // InternalGeneratorDSL.g:3201:1: ( 'end' )
+            // InternalGeneratorDSL.g:3225:1: ( ( 'end' ) )
+            // InternalGeneratorDSL.g:3226:1: ( 'end' )
             {
-            // InternalGeneratorDSL.g:3201:1: ( 'end' )
-            // InternalGeneratorDSL.g:3202:2: 'end'
+            // InternalGeneratorDSL.g:3226:1: ( 'end' )
+            // InternalGeneratorDSL.g:3227:2: 'end'
             {
              before(grammarAccess.getForStatementRuleAccess().getEndKeyword_6()); 
             match(input,62,FOLLOW_2); 
@@ -10328,14 +10369,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__0"
-    // InternalGeneratorDSL.g:3212:1: rule__CounterRangeRule__Group__0 : rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 ;
+    // InternalGeneratorDSL.g:3237:1: rule__CounterRangeRule__Group__0 : rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 ;
     public final void rule__CounterRangeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3216:1: ( rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 )
-            // InternalGeneratorDSL.g:3217:2: rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1
+            // InternalGeneratorDSL.g:3241:1: ( rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 )
+            // InternalGeneratorDSL.g:3242:2: rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1
             {
             pushFollow(FOLLOW_24);
             rule__CounterRangeRule__Group__0__Impl();
@@ -10366,17 +10407,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:3224:1: rule__CounterRangeRule__Group__0__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:3249:1: rule__CounterRangeRule__Group__0__Impl : ( '[' ) ;
     public final void rule__CounterRangeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3228:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:3229:1: ( '[' )
+            // InternalGeneratorDSL.g:3253:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:3254:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:3229:1: ( '[' )
-            // InternalGeneratorDSL.g:3230:2: '['
+            // InternalGeneratorDSL.g:3254:1: ( '[' )
+            // InternalGeneratorDSL.g:3255:2: '['
             {
              before(grammarAccess.getCounterRangeRuleAccess().getLeftSquareBracketKeyword_0()); 
             match(input,50,FOLLOW_2); 
@@ -10403,14 +10444,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__1"
-    // InternalGeneratorDSL.g:3239:1: rule__CounterRangeRule__Group__1 : rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 ;
+    // InternalGeneratorDSL.g:3264:1: rule__CounterRangeRule__Group__1 : rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 ;
     public final void rule__CounterRangeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3243:1: ( rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 )
-            // InternalGeneratorDSL.g:3244:2: rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2
+            // InternalGeneratorDSL.g:3268:1: ( rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 )
+            // InternalGeneratorDSL.g:3269:2: rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2
             {
             pushFollow(FOLLOW_25);
             rule__CounterRangeRule__Group__1__Impl();
@@ -10441,21 +10482,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:3251:1: rule__CounterRangeRule__Group__1__Impl : ( ( rule__CounterRangeRule__StartAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:3276:1: rule__CounterRangeRule__Group__1__Impl : ( ( rule__CounterRangeRule__StartAssignment_1 ) ) ;
     public final void rule__CounterRangeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3255:1: ( ( ( rule__CounterRangeRule__StartAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:3256:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
+            // InternalGeneratorDSL.g:3280:1: ( ( ( rule__CounterRangeRule__StartAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:3281:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:3256:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
-            // InternalGeneratorDSL.g:3257:2: ( rule__CounterRangeRule__StartAssignment_1 )
+            // InternalGeneratorDSL.g:3281:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
+            // InternalGeneratorDSL.g:3282:2: ( rule__CounterRangeRule__StartAssignment_1 )
             {
              before(grammarAccess.getCounterRangeRuleAccess().getStartAssignment_1()); 
-            // InternalGeneratorDSL.g:3258:2: ( rule__CounterRangeRule__StartAssignment_1 )
-            // InternalGeneratorDSL.g:3258:3: rule__CounterRangeRule__StartAssignment_1
+            // InternalGeneratorDSL.g:3283:2: ( rule__CounterRangeRule__StartAssignment_1 )
+            // InternalGeneratorDSL.g:3283:3: rule__CounterRangeRule__StartAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__StartAssignment_1();
@@ -10488,14 +10529,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__2"
-    // InternalGeneratorDSL.g:3266:1: rule__CounterRangeRule__Group__2 : rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 ;
+    // InternalGeneratorDSL.g:3291:1: rule__CounterRangeRule__Group__2 : rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 ;
     public final void rule__CounterRangeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3270:1: ( rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 )
-            // InternalGeneratorDSL.g:3271:2: rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3
+            // InternalGeneratorDSL.g:3295:1: ( rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 )
+            // InternalGeneratorDSL.g:3296:2: rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__CounterRangeRule__Group__2__Impl();
@@ -10526,17 +10567,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:3278:1: rule__CounterRangeRule__Group__2__Impl : ( 'to' ) ;
+    // InternalGeneratorDSL.g:3303:1: rule__CounterRangeRule__Group__2__Impl : ( 'to' ) ;
     public final void rule__CounterRangeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3282:1: ( ( 'to' ) )
-            // InternalGeneratorDSL.g:3283:1: ( 'to' )
+            // InternalGeneratorDSL.g:3307:1: ( ( 'to' ) )
+            // InternalGeneratorDSL.g:3308:1: ( 'to' )
             {
-            // InternalGeneratorDSL.g:3283:1: ( 'to' )
-            // InternalGeneratorDSL.g:3284:2: 'to'
+            // InternalGeneratorDSL.g:3308:1: ( 'to' )
+            // InternalGeneratorDSL.g:3309:2: 'to'
             {
              before(grammarAccess.getCounterRangeRuleAccess().getToKeyword_2()); 
             match(input,63,FOLLOW_2); 
@@ -10563,14 +10604,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__3"
-    // InternalGeneratorDSL.g:3293:1: rule__CounterRangeRule__Group__3 : rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 ;
+    // InternalGeneratorDSL.g:3318:1: rule__CounterRangeRule__Group__3 : rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 ;
     public final void rule__CounterRangeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3297:1: ( rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 )
-            // InternalGeneratorDSL.g:3298:2: rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4
+            // InternalGeneratorDSL.g:3322:1: ( rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 )
+            // InternalGeneratorDSL.g:3323:2: rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4
             {
             pushFollow(FOLLOW_26);
             rule__CounterRangeRule__Group__3__Impl();
@@ -10601,21 +10642,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:3305:1: rule__CounterRangeRule__Group__3__Impl : ( ( rule__CounterRangeRule__EndAssignment_3 ) ) ;
+    // InternalGeneratorDSL.g:3330:1: rule__CounterRangeRule__Group__3__Impl : ( ( rule__CounterRangeRule__EndAssignment_3 ) ) ;
     public final void rule__CounterRangeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3309:1: ( ( ( rule__CounterRangeRule__EndAssignment_3 ) ) )
-            // InternalGeneratorDSL.g:3310:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
+            // InternalGeneratorDSL.g:3334:1: ( ( ( rule__CounterRangeRule__EndAssignment_3 ) ) )
+            // InternalGeneratorDSL.g:3335:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
             {
-            // InternalGeneratorDSL.g:3310:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
-            // InternalGeneratorDSL.g:3311:2: ( rule__CounterRangeRule__EndAssignment_3 )
+            // InternalGeneratorDSL.g:3335:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
+            // InternalGeneratorDSL.g:3336:2: ( rule__CounterRangeRule__EndAssignment_3 )
             {
              before(grammarAccess.getCounterRangeRuleAccess().getEndAssignment_3()); 
-            // InternalGeneratorDSL.g:3312:2: ( rule__CounterRangeRule__EndAssignment_3 )
-            // InternalGeneratorDSL.g:3312:3: rule__CounterRangeRule__EndAssignment_3
+            // InternalGeneratorDSL.g:3337:2: ( rule__CounterRangeRule__EndAssignment_3 )
+            // InternalGeneratorDSL.g:3337:3: rule__CounterRangeRule__EndAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__EndAssignment_3();
@@ -10648,14 +10689,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__4"
-    // InternalGeneratorDSL.g:3320:1: rule__CounterRangeRule__Group__4 : rule__CounterRangeRule__Group__4__Impl ;
+    // InternalGeneratorDSL.g:3345:1: rule__CounterRangeRule__Group__4 : rule__CounterRangeRule__Group__4__Impl ;
     public final void rule__CounterRangeRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3324:1: ( rule__CounterRangeRule__Group__4__Impl )
-            // InternalGeneratorDSL.g:3325:2: rule__CounterRangeRule__Group__4__Impl
+            // InternalGeneratorDSL.g:3349:1: ( rule__CounterRangeRule__Group__4__Impl )
+            // InternalGeneratorDSL.g:3350:2: rule__CounterRangeRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__Group__4__Impl();
@@ -10681,17 +10722,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:3331:1: rule__CounterRangeRule__Group__4__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:3356:1: rule__CounterRangeRule__Group__4__Impl : ( ']' ) ;
     public final void rule__CounterRangeRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3335:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:3336:1: ( ']' )
+            // InternalGeneratorDSL.g:3360:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:3361:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:3336:1: ( ']' )
-            // InternalGeneratorDSL.g:3337:2: ']'
+            // InternalGeneratorDSL.g:3361:1: ( ']' )
+            // InternalGeneratorDSL.g:3362:2: ']'
             {
              before(grammarAccess.getCounterRangeRuleAccess().getRightSquareBracketKeyword_4()); 
             match(input,51,FOLLOW_2); 
@@ -10718,14 +10759,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__0"
-    // InternalGeneratorDSL.g:3347:1: rule__PipelineArrayRule__Group__0 : rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1 ;
+    // InternalGeneratorDSL.g:3372:1: rule__PipelineArrayRule__Group__0 : rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1 ;
     public final void rule__PipelineArrayRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3351:1: ( rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1 )
-            // InternalGeneratorDSL.g:3352:2: rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1
+            // InternalGeneratorDSL.g:3376:1: ( rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1 )
+            // InternalGeneratorDSL.g:3377:2: rule__PipelineArrayRule__Group__0__Impl rule__PipelineArrayRule__Group__1
             {
             pushFollow(FOLLOW_27);
             rule__PipelineArrayRule__Group__0__Impl();
@@ -10756,21 +10797,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:3359:1: rule__PipelineArrayRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:3384:1: rule__PipelineArrayRule__Group__0__Impl : ( () ) ;
     public final void rule__PipelineArrayRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3363:1: ( ( () ) )
-            // InternalGeneratorDSL.g:3364:1: ( () )
+            // InternalGeneratorDSL.g:3388:1: ( ( () ) )
+            // InternalGeneratorDSL.g:3389:1: ( () )
             {
-            // InternalGeneratorDSL.g:3364:1: ( () )
-            // InternalGeneratorDSL.g:3365:2: ()
+            // InternalGeneratorDSL.g:3389:1: ( () )
+            // InternalGeneratorDSL.g:3390:2: ()
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getPipelineArrayAction_0()); 
-            // InternalGeneratorDSL.g:3366:2: ()
-            // InternalGeneratorDSL.g:3366:3: 
+            // InternalGeneratorDSL.g:3391:2: ()
+            // InternalGeneratorDSL.g:3391:3: 
             {
             }
 
@@ -10793,14 +10834,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__1"
-    // InternalGeneratorDSL.g:3374:1: rule__PipelineArrayRule__Group__1 : rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2 ;
+    // InternalGeneratorDSL.g:3399:1: rule__PipelineArrayRule__Group__1 : rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2 ;
     public final void rule__PipelineArrayRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3378:1: ( rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2 )
-            // InternalGeneratorDSL.g:3379:2: rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2
+            // InternalGeneratorDSL.g:3403:1: ( rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2 )
+            // InternalGeneratorDSL.g:3404:2: rule__PipelineArrayRule__Group__1__Impl rule__PipelineArrayRule__Group__2
             {
             pushFollow(FOLLOW_9);
             rule__PipelineArrayRule__Group__1__Impl();
@@ -10831,17 +10872,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:3386:1: rule__PipelineArrayRule__Group__1__Impl : ( 'pipelines' ) ;
+    // InternalGeneratorDSL.g:3411:1: rule__PipelineArrayRule__Group__1__Impl : ( 'pipelines' ) ;
     public final void rule__PipelineArrayRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3390:1: ( ( 'pipelines' ) )
-            // InternalGeneratorDSL.g:3391:1: ( 'pipelines' )
+            // InternalGeneratorDSL.g:3415:1: ( ( 'pipelines' ) )
+            // InternalGeneratorDSL.g:3416:1: ( 'pipelines' )
             {
-            // InternalGeneratorDSL.g:3391:1: ( 'pipelines' )
-            // InternalGeneratorDSL.g:3392:2: 'pipelines'
+            // InternalGeneratorDSL.g:3416:1: ( 'pipelines' )
+            // InternalGeneratorDSL.g:3417:2: 'pipelines'
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getPipelinesKeyword_1()); 
             match(input,64,FOLLOW_2); 
@@ -10868,14 +10909,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__2"
-    // InternalGeneratorDSL.g:3401:1: rule__PipelineArrayRule__Group__2 : rule__PipelineArrayRule__Group__2__Impl ;
+    // InternalGeneratorDSL.g:3426:1: rule__PipelineArrayRule__Group__2 : rule__PipelineArrayRule__Group__2__Impl ;
     public final void rule__PipelineArrayRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3405:1: ( rule__PipelineArrayRule__Group__2__Impl )
-            // InternalGeneratorDSL.g:3406:2: rule__PipelineArrayRule__Group__2__Impl
+            // InternalGeneratorDSL.g:3430:1: ( rule__PipelineArrayRule__Group__2__Impl )
+            // InternalGeneratorDSL.g:3431:2: rule__PipelineArrayRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PipelineArrayRule__Group__2__Impl();
@@ -10901,20 +10942,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:3412:1: rule__PipelineArrayRule__Group__2__Impl : ( ( rule__PipelineArrayRule__Group_2__0 )? ) ;
+    // InternalGeneratorDSL.g:3437:1: rule__PipelineArrayRule__Group__2__Impl : ( ( rule__PipelineArrayRule__Group_2__0 )? ) ;
     public final void rule__PipelineArrayRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3416:1: ( ( ( rule__PipelineArrayRule__Group_2__0 )? ) )
-            // InternalGeneratorDSL.g:3417:1: ( ( rule__PipelineArrayRule__Group_2__0 )? )
+            // InternalGeneratorDSL.g:3441:1: ( ( ( rule__PipelineArrayRule__Group_2__0 )? ) )
+            // InternalGeneratorDSL.g:3442:1: ( ( rule__PipelineArrayRule__Group_2__0 )? )
             {
-            // InternalGeneratorDSL.g:3417:1: ( ( rule__PipelineArrayRule__Group_2__0 )? )
-            // InternalGeneratorDSL.g:3418:2: ( rule__PipelineArrayRule__Group_2__0 )?
+            // InternalGeneratorDSL.g:3442:1: ( ( rule__PipelineArrayRule__Group_2__0 )? )
+            // InternalGeneratorDSL.g:3443:2: ( rule__PipelineArrayRule__Group_2__0 )?
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getGroup_2()); 
-            // InternalGeneratorDSL.g:3419:2: ( rule__PipelineArrayRule__Group_2__0 )?
+            // InternalGeneratorDSL.g:3444:2: ( rule__PipelineArrayRule__Group_2__0 )?
             int alt26=2;
             int LA26_0 = input.LA(1);
 
@@ -10923,7 +10964,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt26) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3419:3: rule__PipelineArrayRule__Group_2__0
+                    // InternalGeneratorDSL.g:3444:3: rule__PipelineArrayRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PipelineArrayRule__Group_2__0();
@@ -10959,14 +11000,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__0"
-    // InternalGeneratorDSL.g:3428:1: rule__PipelineArrayRule__Group_2__0 : rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1 ;
+    // InternalGeneratorDSL.g:3453:1: rule__PipelineArrayRule__Group_2__0 : rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1 ;
     public final void rule__PipelineArrayRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3432:1: ( rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1 )
-            // InternalGeneratorDSL.g:3433:2: rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1
+            // InternalGeneratorDSL.g:3457:1: ( rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1 )
+            // InternalGeneratorDSL.g:3458:2: rule__PipelineArrayRule__Group_2__0__Impl rule__PipelineArrayRule__Group_2__1
             {
             pushFollow(FOLLOW_28);
             rule__PipelineArrayRule__Group_2__0__Impl();
@@ -10997,17 +11038,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__0__Impl"
-    // InternalGeneratorDSL.g:3440:1: rule__PipelineArrayRule__Group_2__0__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:3465:1: rule__PipelineArrayRule__Group_2__0__Impl : ( '[' ) ;
     public final void rule__PipelineArrayRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3444:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:3445:1: ( '[' )
+            // InternalGeneratorDSL.g:3469:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:3470:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:3445:1: ( '[' )
-            // InternalGeneratorDSL.g:3446:2: '['
+            // InternalGeneratorDSL.g:3470:1: ( '[' )
+            // InternalGeneratorDSL.g:3471:2: '['
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getLeftSquareBracketKeyword_2_0()); 
             match(input,50,FOLLOW_2); 
@@ -11034,14 +11075,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__1"
-    // InternalGeneratorDSL.g:3455:1: rule__PipelineArrayRule__Group_2__1 : rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2 ;
+    // InternalGeneratorDSL.g:3480:1: rule__PipelineArrayRule__Group_2__1 : rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2 ;
     public final void rule__PipelineArrayRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3459:1: ( rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2 )
-            // InternalGeneratorDSL.g:3460:2: rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2
+            // InternalGeneratorDSL.g:3484:1: ( rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2 )
+            // InternalGeneratorDSL.g:3485:2: rule__PipelineArrayRule__Group_2__1__Impl rule__PipelineArrayRule__Group_2__2
             {
             pushFollow(FOLLOW_29);
             rule__PipelineArrayRule__Group_2__1__Impl();
@@ -11072,21 +11113,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__1__Impl"
-    // InternalGeneratorDSL.g:3467:1: rule__PipelineArrayRule__Group_2__1__Impl : ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) ) ;
+    // InternalGeneratorDSL.g:3492:1: rule__PipelineArrayRule__Group_2__1__Impl : ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) ) ;
     public final void rule__PipelineArrayRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3471:1: ( ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) ) )
-            // InternalGeneratorDSL.g:3472:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) )
+            // InternalGeneratorDSL.g:3496:1: ( ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) ) )
+            // InternalGeneratorDSL.g:3497:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) )
             {
-            // InternalGeneratorDSL.g:3472:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) )
-            // InternalGeneratorDSL.g:3473:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_1 )
+            // InternalGeneratorDSL.g:3497:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_1 ) )
+            // InternalGeneratorDSL.g:3498:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_1 )
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getReferencesAssignment_2_1()); 
-            // InternalGeneratorDSL.g:3474:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_1 )
-            // InternalGeneratorDSL.g:3474:3: rule__PipelineArrayRule__ReferencesAssignment_2_1
+            // InternalGeneratorDSL.g:3499:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_1 )
+            // InternalGeneratorDSL.g:3499:3: rule__PipelineArrayRule__ReferencesAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PipelineArrayRule__ReferencesAssignment_2_1();
@@ -11119,14 +11160,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__2"
-    // InternalGeneratorDSL.g:3482:1: rule__PipelineArrayRule__Group_2__2 : rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3 ;
+    // InternalGeneratorDSL.g:3507:1: rule__PipelineArrayRule__Group_2__2 : rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3 ;
     public final void rule__PipelineArrayRule__Group_2__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3486:1: ( rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3 )
-            // InternalGeneratorDSL.g:3487:2: rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3
+            // InternalGeneratorDSL.g:3511:1: ( rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3 )
+            // InternalGeneratorDSL.g:3512:2: rule__PipelineArrayRule__Group_2__2__Impl rule__PipelineArrayRule__Group_2__3
             {
             pushFollow(FOLLOW_29);
             rule__PipelineArrayRule__Group_2__2__Impl();
@@ -11157,20 +11198,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__2__Impl"
-    // InternalGeneratorDSL.g:3494:1: rule__PipelineArrayRule__Group_2__2__Impl : ( ( rule__PipelineArrayRule__Group_2_2__0 )* ) ;
+    // InternalGeneratorDSL.g:3519:1: rule__PipelineArrayRule__Group_2__2__Impl : ( ( rule__PipelineArrayRule__Group_2_2__0 )* ) ;
     public final void rule__PipelineArrayRule__Group_2__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3498:1: ( ( ( rule__PipelineArrayRule__Group_2_2__0 )* ) )
-            // InternalGeneratorDSL.g:3499:1: ( ( rule__PipelineArrayRule__Group_2_2__0 )* )
+            // InternalGeneratorDSL.g:3523:1: ( ( ( rule__PipelineArrayRule__Group_2_2__0 )* ) )
+            // InternalGeneratorDSL.g:3524:1: ( ( rule__PipelineArrayRule__Group_2_2__0 )* )
             {
-            // InternalGeneratorDSL.g:3499:1: ( ( rule__PipelineArrayRule__Group_2_2__0 )* )
-            // InternalGeneratorDSL.g:3500:2: ( rule__PipelineArrayRule__Group_2_2__0 )*
+            // InternalGeneratorDSL.g:3524:1: ( ( rule__PipelineArrayRule__Group_2_2__0 )* )
+            // InternalGeneratorDSL.g:3525:2: ( rule__PipelineArrayRule__Group_2_2__0 )*
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getGroup_2_2()); 
-            // InternalGeneratorDSL.g:3501:2: ( rule__PipelineArrayRule__Group_2_2__0 )*
+            // InternalGeneratorDSL.g:3526:2: ( rule__PipelineArrayRule__Group_2_2__0 )*
             loop27:
             do {
                 int alt27=2;
@@ -11183,7 +11224,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt27) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3501:3: rule__PipelineArrayRule__Group_2_2__0
+            	    // InternalGeneratorDSL.g:3526:3: rule__PipelineArrayRule__Group_2_2__0
             	    {
             	    pushFollow(FOLLOW_17);
             	    rule__PipelineArrayRule__Group_2_2__0();
@@ -11222,14 +11263,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__3"
-    // InternalGeneratorDSL.g:3509:1: rule__PipelineArrayRule__Group_2__3 : rule__PipelineArrayRule__Group_2__3__Impl ;
+    // InternalGeneratorDSL.g:3534:1: rule__PipelineArrayRule__Group_2__3 : rule__PipelineArrayRule__Group_2__3__Impl ;
     public final void rule__PipelineArrayRule__Group_2__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3513:1: ( rule__PipelineArrayRule__Group_2__3__Impl )
-            // InternalGeneratorDSL.g:3514:2: rule__PipelineArrayRule__Group_2__3__Impl
+            // InternalGeneratorDSL.g:3538:1: ( rule__PipelineArrayRule__Group_2__3__Impl )
+            // InternalGeneratorDSL.g:3539:2: rule__PipelineArrayRule__Group_2__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PipelineArrayRule__Group_2__3__Impl();
@@ -11255,17 +11296,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2__3__Impl"
-    // InternalGeneratorDSL.g:3520:1: rule__PipelineArrayRule__Group_2__3__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:3545:1: rule__PipelineArrayRule__Group_2__3__Impl : ( ']' ) ;
     public final void rule__PipelineArrayRule__Group_2__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3524:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:3525:1: ( ']' )
+            // InternalGeneratorDSL.g:3549:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:3550:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:3525:1: ( ']' )
-            // InternalGeneratorDSL.g:3526:2: ']'
+            // InternalGeneratorDSL.g:3550:1: ( ']' )
+            // InternalGeneratorDSL.g:3551:2: ']'
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getRightSquareBracketKeyword_2_3()); 
             match(input,51,FOLLOW_2); 
@@ -11292,14 +11333,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2_2__0"
-    // InternalGeneratorDSL.g:3536:1: rule__PipelineArrayRule__Group_2_2__0 : rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1 ;
+    // InternalGeneratorDSL.g:3561:1: rule__PipelineArrayRule__Group_2_2__0 : rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1 ;
     public final void rule__PipelineArrayRule__Group_2_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3540:1: ( rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1 )
-            // InternalGeneratorDSL.g:3541:2: rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1
+            // InternalGeneratorDSL.g:3565:1: ( rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1 )
+            // InternalGeneratorDSL.g:3566:2: rule__PipelineArrayRule__Group_2_2__0__Impl rule__PipelineArrayRule__Group_2_2__1
             {
             pushFollow(FOLLOW_28);
             rule__PipelineArrayRule__Group_2_2__0__Impl();
@@ -11330,17 +11371,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2_2__0__Impl"
-    // InternalGeneratorDSL.g:3548:1: rule__PipelineArrayRule__Group_2_2__0__Impl : ( ',' ) ;
+    // InternalGeneratorDSL.g:3573:1: rule__PipelineArrayRule__Group_2_2__0__Impl : ( ',' ) ;
     public final void rule__PipelineArrayRule__Group_2_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3552:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:3553:1: ( ',' )
+            // InternalGeneratorDSL.g:3577:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:3578:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:3553:1: ( ',' )
-            // InternalGeneratorDSL.g:3554:2: ','
+            // InternalGeneratorDSL.g:3578:1: ( ',' )
+            // InternalGeneratorDSL.g:3579:2: ','
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getCommaKeyword_2_2_0()); 
             match(input,57,FOLLOW_2); 
@@ -11367,14 +11408,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2_2__1"
-    // InternalGeneratorDSL.g:3563:1: rule__PipelineArrayRule__Group_2_2__1 : rule__PipelineArrayRule__Group_2_2__1__Impl ;
+    // InternalGeneratorDSL.g:3588:1: rule__PipelineArrayRule__Group_2_2__1 : rule__PipelineArrayRule__Group_2_2__1__Impl ;
     public final void rule__PipelineArrayRule__Group_2_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3567:1: ( rule__PipelineArrayRule__Group_2_2__1__Impl )
-            // InternalGeneratorDSL.g:3568:2: rule__PipelineArrayRule__Group_2_2__1__Impl
+            // InternalGeneratorDSL.g:3592:1: ( rule__PipelineArrayRule__Group_2_2__1__Impl )
+            // InternalGeneratorDSL.g:3593:2: rule__PipelineArrayRule__Group_2_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PipelineArrayRule__Group_2_2__1__Impl();
@@ -11400,21 +11441,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__Group_2_2__1__Impl"
-    // InternalGeneratorDSL.g:3574:1: rule__PipelineArrayRule__Group_2_2__1__Impl : ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) ) ;
+    // InternalGeneratorDSL.g:3599:1: rule__PipelineArrayRule__Group_2_2__1__Impl : ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) ) ;
     public final void rule__PipelineArrayRule__Group_2_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3578:1: ( ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) ) )
-            // InternalGeneratorDSL.g:3579:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) )
+            // InternalGeneratorDSL.g:3603:1: ( ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) ) )
+            // InternalGeneratorDSL.g:3604:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) )
             {
-            // InternalGeneratorDSL.g:3579:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) )
-            // InternalGeneratorDSL.g:3580:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 )
+            // InternalGeneratorDSL.g:3604:1: ( ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 ) )
+            // InternalGeneratorDSL.g:3605:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 )
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getReferencesAssignment_2_2_1()); 
-            // InternalGeneratorDSL.g:3581:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 )
-            // InternalGeneratorDSL.g:3581:3: rule__PipelineArrayRule__ReferencesAssignment_2_2_1
+            // InternalGeneratorDSL.g:3606:2: ( rule__PipelineArrayRule__ReferencesAssignment_2_2_1 )
+            // InternalGeneratorDSL.g:3606:3: rule__PipelineArrayRule__ReferencesAssignment_2_2_1
             {
             pushFollow(FOLLOW_2);
             rule__PipelineArrayRule__ReferencesAssignment_2_2_1();
@@ -11447,14 +11488,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionReferenceRule__Group__0"
-    // InternalGeneratorDSL.g:3590:1: rule__PipelineDefinitionReferenceRule__Group__0 : rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1 ;
+    // InternalGeneratorDSL.g:3615:1: rule__PipelineDefinitionReferenceRule__Group__0 : rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1 ;
     public final void rule__PipelineDefinitionReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3594:1: ( rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1 )
-            // InternalGeneratorDSL.g:3595:2: rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1
+            // InternalGeneratorDSL.g:3619:1: ( rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1 )
+            // InternalGeneratorDSL.g:3620:2: rule__PipelineDefinitionReferenceRule__Group__0__Impl rule__PipelineDefinitionReferenceRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__PipelineDefinitionReferenceRule__Group__0__Impl();
@@ -11485,17 +11526,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionReferenceRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:3602:1: rule__PipelineDefinitionReferenceRule__Group__0__Impl : ( 'pipeline' ) ;
+    // InternalGeneratorDSL.g:3627:1: rule__PipelineDefinitionReferenceRule__Group__0__Impl : ( 'pipeline' ) ;
     public final void rule__PipelineDefinitionReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3606:1: ( ( 'pipeline' ) )
-            // InternalGeneratorDSL.g:3607:1: ( 'pipeline' )
+            // InternalGeneratorDSL.g:3631:1: ( ( 'pipeline' ) )
+            // InternalGeneratorDSL.g:3632:1: ( 'pipeline' )
             {
-            // InternalGeneratorDSL.g:3607:1: ( 'pipeline' )
-            // InternalGeneratorDSL.g:3608:2: 'pipeline'
+            // InternalGeneratorDSL.g:3632:1: ( 'pipeline' )
+            // InternalGeneratorDSL.g:3633:2: 'pipeline'
             {
              before(grammarAccess.getPipelineDefinitionReferenceRuleAccess().getPipelineKeyword_0()); 
             match(input,49,FOLLOW_2); 
@@ -11522,14 +11563,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionReferenceRule__Group__1"
-    // InternalGeneratorDSL.g:3617:1: rule__PipelineDefinitionReferenceRule__Group__1 : rule__PipelineDefinitionReferenceRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:3642:1: rule__PipelineDefinitionReferenceRule__Group__1 : rule__PipelineDefinitionReferenceRule__Group__1__Impl ;
     public final void rule__PipelineDefinitionReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3621:1: ( rule__PipelineDefinitionReferenceRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:3622:2: rule__PipelineDefinitionReferenceRule__Group__1__Impl
+            // InternalGeneratorDSL.g:3646:1: ( rule__PipelineDefinitionReferenceRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:3647:2: rule__PipelineDefinitionReferenceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PipelineDefinitionReferenceRule__Group__1__Impl();
@@ -11555,21 +11596,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionReferenceRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:3628:1: rule__PipelineDefinitionReferenceRule__Group__1__Impl : ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:3653:1: rule__PipelineDefinitionReferenceRule__Group__1__Impl : ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) ) ;
     public final void rule__PipelineDefinitionReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3632:1: ( ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:3633:1: ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) )
+            // InternalGeneratorDSL.g:3657:1: ( ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:3658:1: ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:3633:1: ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) )
-            // InternalGeneratorDSL.g:3634:2: ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 )
+            // InternalGeneratorDSL.g:3658:1: ( ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 ) )
+            // InternalGeneratorDSL.g:3659:2: ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 )
             {
              before(grammarAccess.getPipelineDefinitionReferenceRuleAccess().getPipelineAssignment_1()); 
-            // InternalGeneratorDSL.g:3635:2: ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 )
-            // InternalGeneratorDSL.g:3635:3: rule__PipelineDefinitionReferenceRule__PipelineAssignment_1
+            // InternalGeneratorDSL.g:3660:2: ( rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 )
+            // InternalGeneratorDSL.g:3660:3: rule__PipelineDefinitionReferenceRule__PipelineAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PipelineDefinitionReferenceRule__PipelineAssignment_1();
@@ -11602,14 +11643,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__0"
-    // InternalGeneratorDSL.g:3644:1: rule__ApplyStatementRule__Group__0 : rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1 ;
+    // InternalGeneratorDSL.g:3669:1: rule__ApplyStatementRule__Group__0 : rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1 ;
     public final void rule__ApplyStatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3648:1: ( rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1 )
-            // InternalGeneratorDSL.g:3649:2: rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1
+            // InternalGeneratorDSL.g:3673:1: ( rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1 )
+            // InternalGeneratorDSL.g:3674:2: rule__ApplyStatementRule__Group__0__Impl rule__ApplyStatementRule__Group__1
             {
             pushFollow(FOLLOW_30);
             rule__ApplyStatementRule__Group__0__Impl();
@@ -11640,17 +11681,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:3656:1: rule__ApplyStatementRule__Group__0__Impl : ( 'write' ) ;
+    // InternalGeneratorDSL.g:3681:1: rule__ApplyStatementRule__Group__0__Impl : ( 'write' ) ;
     public final void rule__ApplyStatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3660:1: ( ( 'write' ) )
-            // InternalGeneratorDSL.g:3661:1: ( 'write' )
+            // InternalGeneratorDSL.g:3685:1: ( ( 'write' ) )
+            // InternalGeneratorDSL.g:3686:1: ( 'write' )
             {
-            // InternalGeneratorDSL.g:3661:1: ( 'write' )
-            // InternalGeneratorDSL.g:3662:2: 'write'
+            // InternalGeneratorDSL.g:3686:1: ( 'write' )
+            // InternalGeneratorDSL.g:3687:2: 'write'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getWriteKeyword_0()); 
             match(input,65,FOLLOW_2); 
@@ -11677,14 +11718,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__1"
-    // InternalGeneratorDSL.g:3671:1: rule__ApplyStatementRule__Group__1 : rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2 ;
+    // InternalGeneratorDSL.g:3696:1: rule__ApplyStatementRule__Group__1 : rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2 ;
     public final void rule__ApplyStatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3675:1: ( rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2 )
-            // InternalGeneratorDSL.g:3676:2: rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2
+            // InternalGeneratorDSL.g:3700:1: ( rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2 )
+            // InternalGeneratorDSL.g:3701:2: rule__ApplyStatementRule__Group__1__Impl rule__ApplyStatementRule__Group__2
             {
             pushFollow(FOLLOW_31);
             rule__ApplyStatementRule__Group__1__Impl();
@@ -11715,21 +11756,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:3683:1: rule__ApplyStatementRule__Group__1__Impl : ( ( rule__ApplyStatementRule__FileAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:3708:1: rule__ApplyStatementRule__Group__1__Impl : ( ( rule__ApplyStatementRule__FileAssignment_1 ) ) ;
     public final void rule__ApplyStatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3687:1: ( ( ( rule__ApplyStatementRule__FileAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:3688:1: ( ( rule__ApplyStatementRule__FileAssignment_1 ) )
+            // InternalGeneratorDSL.g:3712:1: ( ( ( rule__ApplyStatementRule__FileAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:3713:1: ( ( rule__ApplyStatementRule__FileAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:3688:1: ( ( rule__ApplyStatementRule__FileAssignment_1 ) )
-            // InternalGeneratorDSL.g:3689:2: ( rule__ApplyStatementRule__FileAssignment_1 )
+            // InternalGeneratorDSL.g:3713:1: ( ( rule__ApplyStatementRule__FileAssignment_1 ) )
+            // InternalGeneratorDSL.g:3714:2: ( rule__ApplyStatementRule__FileAssignment_1 )
             {
              before(grammarAccess.getApplyStatementRuleAccess().getFileAssignment_1()); 
-            // InternalGeneratorDSL.g:3690:2: ( rule__ApplyStatementRule__FileAssignment_1 )
-            // InternalGeneratorDSL.g:3690:3: rule__ApplyStatementRule__FileAssignment_1
+            // InternalGeneratorDSL.g:3715:2: ( rule__ApplyStatementRule__FileAssignment_1 )
+            // InternalGeneratorDSL.g:3715:3: rule__ApplyStatementRule__FileAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__FileAssignment_1();
@@ -11762,14 +11803,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__2"
-    // InternalGeneratorDSL.g:3698:1: rule__ApplyStatementRule__Group__2 : rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3 ;
+    // InternalGeneratorDSL.g:3723:1: rule__ApplyStatementRule__Group__2 : rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3 ;
     public final void rule__ApplyStatementRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3702:1: ( rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3 )
-            // InternalGeneratorDSL.g:3703:2: rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3
+            // InternalGeneratorDSL.g:3727:1: ( rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3 )
+            // InternalGeneratorDSL.g:3728:2: rule__ApplyStatementRule__Group__2__Impl rule__ApplyStatementRule__Group__3
             {
             pushFollow(FOLLOW_24);
             rule__ApplyStatementRule__Group__2__Impl();
@@ -11800,17 +11841,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:3710:1: rule__ApplyStatementRule__Group__2__Impl : ( 'with' ) ;
+    // InternalGeneratorDSL.g:3735:1: rule__ApplyStatementRule__Group__2__Impl : ( 'with' ) ;
     public final void rule__ApplyStatementRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3714:1: ( ( 'with' ) )
-            // InternalGeneratorDSL.g:3715:1: ( 'with' )
+            // InternalGeneratorDSL.g:3739:1: ( ( 'with' ) )
+            // InternalGeneratorDSL.g:3740:1: ( 'with' )
             {
-            // InternalGeneratorDSL.g:3715:1: ( 'with' )
-            // InternalGeneratorDSL.g:3716:2: 'with'
+            // InternalGeneratorDSL.g:3740:1: ( 'with' )
+            // InternalGeneratorDSL.g:3741:2: 'with'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getWithKeyword_2()); 
             match(input,66,FOLLOW_2); 
@@ -11837,14 +11878,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__3"
-    // InternalGeneratorDSL.g:3725:1: rule__ApplyStatementRule__Group__3 : rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4 ;
+    // InternalGeneratorDSL.g:3750:1: rule__ApplyStatementRule__Group__3 : rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4 ;
     public final void rule__ApplyStatementRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3729:1: ( rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4 )
-            // InternalGeneratorDSL.g:3730:2: rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4
+            // InternalGeneratorDSL.g:3754:1: ( rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4 )
+            // InternalGeneratorDSL.g:3755:2: rule__ApplyStatementRule__Group__3__Impl rule__ApplyStatementRule__Group__4
             {
             pushFollow(FOLLOW_32);
             rule__ApplyStatementRule__Group__3__Impl();
@@ -11875,21 +11916,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:3737:1: rule__ApplyStatementRule__Group__3__Impl : ( ( rule__ApplyStatementRule__CountAssignment_3 ) ) ;
+    // InternalGeneratorDSL.g:3762:1: rule__ApplyStatementRule__Group__3__Impl : ( ( rule__ApplyStatementRule__CountAssignment_3 ) ) ;
     public final void rule__ApplyStatementRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3741:1: ( ( ( rule__ApplyStatementRule__CountAssignment_3 ) ) )
-            // InternalGeneratorDSL.g:3742:1: ( ( rule__ApplyStatementRule__CountAssignment_3 ) )
+            // InternalGeneratorDSL.g:3766:1: ( ( ( rule__ApplyStatementRule__CountAssignment_3 ) ) )
+            // InternalGeneratorDSL.g:3767:1: ( ( rule__ApplyStatementRule__CountAssignment_3 ) )
             {
-            // InternalGeneratorDSL.g:3742:1: ( ( rule__ApplyStatementRule__CountAssignment_3 ) )
-            // InternalGeneratorDSL.g:3743:2: ( rule__ApplyStatementRule__CountAssignment_3 )
+            // InternalGeneratorDSL.g:3767:1: ( ( rule__ApplyStatementRule__CountAssignment_3 ) )
+            // InternalGeneratorDSL.g:3768:2: ( rule__ApplyStatementRule__CountAssignment_3 )
             {
              before(grammarAccess.getApplyStatementRuleAccess().getCountAssignment_3()); 
-            // InternalGeneratorDSL.g:3744:2: ( rule__ApplyStatementRule__CountAssignment_3 )
-            // InternalGeneratorDSL.g:3744:3: rule__ApplyStatementRule__CountAssignment_3
+            // InternalGeneratorDSL.g:3769:2: ( rule__ApplyStatementRule__CountAssignment_3 )
+            // InternalGeneratorDSL.g:3769:3: rule__ApplyStatementRule__CountAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__CountAssignment_3();
@@ -11922,14 +11963,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__4"
-    // InternalGeneratorDSL.g:3752:1: rule__ApplyStatementRule__Group__4 : rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5 ;
+    // InternalGeneratorDSL.g:3777:1: rule__ApplyStatementRule__Group__4 : rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5 ;
     public final void rule__ApplyStatementRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3756:1: ( rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5 )
-            // InternalGeneratorDSL.g:3757:2: rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5
+            // InternalGeneratorDSL.g:3781:1: ( rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5 )
+            // InternalGeneratorDSL.g:3782:2: rule__ApplyStatementRule__Group__4__Impl rule__ApplyStatementRule__Group__5
             {
             pushFollow(FOLLOW_33);
             rule__ApplyStatementRule__Group__4__Impl();
@@ -11960,17 +12001,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:3764:1: rule__ApplyStatementRule__Group__4__Impl : ( 'samples' ) ;
+    // InternalGeneratorDSL.g:3789:1: rule__ApplyStatementRule__Group__4__Impl : ( 'samples' ) ;
     public final void rule__ApplyStatementRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3768:1: ( ( 'samples' ) )
-            // InternalGeneratorDSL.g:3769:1: ( 'samples' )
+            // InternalGeneratorDSL.g:3793:1: ( ( 'samples' ) )
+            // InternalGeneratorDSL.g:3794:1: ( 'samples' )
             {
-            // InternalGeneratorDSL.g:3769:1: ( 'samples' )
-            // InternalGeneratorDSL.g:3770:2: 'samples'
+            // InternalGeneratorDSL.g:3794:1: ( 'samples' )
+            // InternalGeneratorDSL.g:3795:2: 'samples'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getSamplesKeyword_4()); 
             match(input,67,FOLLOW_2); 
@@ -11997,14 +12038,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__5"
-    // InternalGeneratorDSL.g:3779:1: rule__ApplyStatementRule__Group__5 : rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6 ;
+    // InternalGeneratorDSL.g:3804:1: rule__ApplyStatementRule__Group__5 : rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6 ;
     public final void rule__ApplyStatementRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3783:1: ( rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6 )
-            // InternalGeneratorDSL.g:3784:2: rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6
+            // InternalGeneratorDSL.g:3808:1: ( rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6 )
+            // InternalGeneratorDSL.g:3809:2: rule__ApplyStatementRule__Group__5__Impl rule__ApplyStatementRule__Group__6
             {
             pushFollow(FOLLOW_34);
             rule__ApplyStatementRule__Group__5__Impl();
@@ -12035,17 +12076,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__5__Impl"
-    // InternalGeneratorDSL.g:3791:1: rule__ApplyStatementRule__Group__5__Impl : ( 'from' ) ;
+    // InternalGeneratorDSL.g:3816:1: rule__ApplyStatementRule__Group__5__Impl : ( 'from' ) ;
     public final void rule__ApplyStatementRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3795:1: ( ( 'from' ) )
-            // InternalGeneratorDSL.g:3796:1: ( 'from' )
+            // InternalGeneratorDSL.g:3820:1: ( ( 'from' ) )
+            // InternalGeneratorDSL.g:3821:1: ( 'from' )
             {
-            // InternalGeneratorDSL.g:3796:1: ( 'from' )
-            // InternalGeneratorDSL.g:3797:2: 'from'
+            // InternalGeneratorDSL.g:3821:1: ( 'from' )
+            // InternalGeneratorDSL.g:3822:2: 'from'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getFromKeyword_5()); 
             match(input,68,FOLLOW_2); 
@@ -12072,14 +12113,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__6"
-    // InternalGeneratorDSL.g:3806:1: rule__ApplyStatementRule__Group__6 : rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7 ;
+    // InternalGeneratorDSL.g:3831:1: rule__ApplyStatementRule__Group__6 : rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7 ;
     public final void rule__ApplyStatementRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3810:1: ( rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7 )
-            // InternalGeneratorDSL.g:3811:2: rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7
+            // InternalGeneratorDSL.g:3835:1: ( rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7 )
+            // InternalGeneratorDSL.g:3836:2: rule__ApplyStatementRule__Group__6__Impl rule__ApplyStatementRule__Group__7
             {
             pushFollow(FOLLOW_9);
             rule__ApplyStatementRule__Group__6__Impl();
@@ -12110,17 +12151,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__6__Impl"
-    // InternalGeneratorDSL.g:3818:1: rule__ApplyStatementRule__Group__6__Impl : ( 'executing' ) ;
+    // InternalGeneratorDSL.g:3843:1: rule__ApplyStatementRule__Group__6__Impl : ( 'executing' ) ;
     public final void rule__ApplyStatementRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3822:1: ( ( 'executing' ) )
-            // InternalGeneratorDSL.g:3823:1: ( 'executing' )
+            // InternalGeneratorDSL.g:3847:1: ( ( 'executing' ) )
+            // InternalGeneratorDSL.g:3848:1: ( 'executing' )
             {
-            // InternalGeneratorDSL.g:3823:1: ( 'executing' )
-            // InternalGeneratorDSL.g:3824:2: 'executing'
+            // InternalGeneratorDSL.g:3848:1: ( 'executing' )
+            // InternalGeneratorDSL.g:3849:2: 'executing'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getExecutingKeyword_6()); 
             match(input,69,FOLLOW_2); 
@@ -12147,14 +12188,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__7"
-    // InternalGeneratorDSL.g:3833:1: rule__ApplyStatementRule__Group__7 : rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8 ;
+    // InternalGeneratorDSL.g:3858:1: rule__ApplyStatementRule__Group__7 : rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8 ;
     public final void rule__ApplyStatementRule__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3837:1: ( rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8 )
-            // InternalGeneratorDSL.g:3838:2: rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8
+            // InternalGeneratorDSL.g:3862:1: ( rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8 )
+            // InternalGeneratorDSL.g:3863:2: rule__ApplyStatementRule__Group__7__Impl rule__ApplyStatementRule__Group__8
             {
             pushFollow(FOLLOW_28);
             rule__ApplyStatementRule__Group__7__Impl();
@@ -12185,17 +12226,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__7__Impl"
-    // InternalGeneratorDSL.g:3845:1: rule__ApplyStatementRule__Group__7__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:3870:1: rule__ApplyStatementRule__Group__7__Impl : ( '[' ) ;
     public final void rule__ApplyStatementRule__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3849:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:3850:1: ( '[' )
+            // InternalGeneratorDSL.g:3874:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:3875:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:3850:1: ( '[' )
-            // InternalGeneratorDSL.g:3851:2: '['
+            // InternalGeneratorDSL.g:3875:1: ( '[' )
+            // InternalGeneratorDSL.g:3876:2: '['
             {
              before(grammarAccess.getApplyStatementRuleAccess().getLeftSquareBracketKeyword_7()); 
             match(input,50,FOLLOW_2); 
@@ -12222,14 +12263,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__8"
-    // InternalGeneratorDSL.g:3860:1: rule__ApplyStatementRule__Group__8 : rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9 ;
+    // InternalGeneratorDSL.g:3885:1: rule__ApplyStatementRule__Group__8 : rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9 ;
     public final void rule__ApplyStatementRule__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3864:1: ( rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9 )
-            // InternalGeneratorDSL.g:3865:2: rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9
+            // InternalGeneratorDSL.g:3889:1: ( rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9 )
+            // InternalGeneratorDSL.g:3890:2: rule__ApplyStatementRule__Group__8__Impl rule__ApplyStatementRule__Group__9
             {
             pushFollow(FOLLOW_29);
             rule__ApplyStatementRule__Group__8__Impl();
@@ -12260,21 +12301,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__8__Impl"
-    // InternalGeneratorDSL.g:3872:1: rule__ApplyStatementRule__Group__8__Impl : ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) ) ;
+    // InternalGeneratorDSL.g:3897:1: rule__ApplyStatementRule__Group__8__Impl : ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) ) ;
     public final void rule__ApplyStatementRule__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3876:1: ( ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) ) )
-            // InternalGeneratorDSL.g:3877:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) )
+            // InternalGeneratorDSL.g:3901:1: ( ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) ) )
+            // InternalGeneratorDSL.g:3902:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) )
             {
-            // InternalGeneratorDSL.g:3877:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) )
-            // InternalGeneratorDSL.g:3878:2: ( rule__ApplyStatementRule__PipelinesAssignment_8 )
+            // InternalGeneratorDSL.g:3902:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_8 ) )
+            // InternalGeneratorDSL.g:3903:2: ( rule__ApplyStatementRule__PipelinesAssignment_8 )
             {
              before(grammarAccess.getApplyStatementRuleAccess().getPipelinesAssignment_8()); 
-            // InternalGeneratorDSL.g:3879:2: ( rule__ApplyStatementRule__PipelinesAssignment_8 )
-            // InternalGeneratorDSL.g:3879:3: rule__ApplyStatementRule__PipelinesAssignment_8
+            // InternalGeneratorDSL.g:3904:2: ( rule__ApplyStatementRule__PipelinesAssignment_8 )
+            // InternalGeneratorDSL.g:3904:3: rule__ApplyStatementRule__PipelinesAssignment_8
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__PipelinesAssignment_8();
@@ -12307,14 +12348,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__9"
-    // InternalGeneratorDSL.g:3887:1: rule__ApplyStatementRule__Group__9 : rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10 ;
+    // InternalGeneratorDSL.g:3912:1: rule__ApplyStatementRule__Group__9 : rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10 ;
     public final void rule__ApplyStatementRule__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3891:1: ( rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10 )
-            // InternalGeneratorDSL.g:3892:2: rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10
+            // InternalGeneratorDSL.g:3916:1: ( rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10 )
+            // InternalGeneratorDSL.g:3917:2: rule__ApplyStatementRule__Group__9__Impl rule__ApplyStatementRule__Group__10
             {
             pushFollow(FOLLOW_29);
             rule__ApplyStatementRule__Group__9__Impl();
@@ -12345,20 +12386,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__9__Impl"
-    // InternalGeneratorDSL.g:3899:1: rule__ApplyStatementRule__Group__9__Impl : ( ( rule__ApplyStatementRule__Group_9__0 )* ) ;
+    // InternalGeneratorDSL.g:3924:1: rule__ApplyStatementRule__Group__9__Impl : ( ( rule__ApplyStatementRule__Group_9__0 )* ) ;
     public final void rule__ApplyStatementRule__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3903:1: ( ( ( rule__ApplyStatementRule__Group_9__0 )* ) )
-            // InternalGeneratorDSL.g:3904:1: ( ( rule__ApplyStatementRule__Group_9__0 )* )
+            // InternalGeneratorDSL.g:3928:1: ( ( ( rule__ApplyStatementRule__Group_9__0 )* ) )
+            // InternalGeneratorDSL.g:3929:1: ( ( rule__ApplyStatementRule__Group_9__0 )* )
             {
-            // InternalGeneratorDSL.g:3904:1: ( ( rule__ApplyStatementRule__Group_9__0 )* )
-            // InternalGeneratorDSL.g:3905:2: ( rule__ApplyStatementRule__Group_9__0 )*
+            // InternalGeneratorDSL.g:3929:1: ( ( rule__ApplyStatementRule__Group_9__0 )* )
+            // InternalGeneratorDSL.g:3930:2: ( rule__ApplyStatementRule__Group_9__0 )*
             {
              before(grammarAccess.getApplyStatementRuleAccess().getGroup_9()); 
-            // InternalGeneratorDSL.g:3906:2: ( rule__ApplyStatementRule__Group_9__0 )*
+            // InternalGeneratorDSL.g:3931:2: ( rule__ApplyStatementRule__Group_9__0 )*
             loop28:
             do {
                 int alt28=2;
@@ -12371,7 +12412,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt28) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3906:3: rule__ApplyStatementRule__Group_9__0
+            	    // InternalGeneratorDSL.g:3931:3: rule__ApplyStatementRule__Group_9__0
             	    {
             	    pushFollow(FOLLOW_17);
             	    rule__ApplyStatementRule__Group_9__0();
@@ -12410,14 +12451,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__10"
-    // InternalGeneratorDSL.g:3914:1: rule__ApplyStatementRule__Group__10 : rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11 ;
+    // InternalGeneratorDSL.g:3939:1: rule__ApplyStatementRule__Group__10 : rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11 ;
     public final void rule__ApplyStatementRule__Group__10() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3918:1: ( rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11 )
-            // InternalGeneratorDSL.g:3919:2: rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11
+            // InternalGeneratorDSL.g:3943:1: ( rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11 )
+            // InternalGeneratorDSL.g:3944:2: rule__ApplyStatementRule__Group__10__Impl rule__ApplyStatementRule__Group__11
             {
             pushFollow(FOLLOW_8);
             rule__ApplyStatementRule__Group__10__Impl();
@@ -12448,17 +12489,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__10__Impl"
-    // InternalGeneratorDSL.g:3926:1: rule__ApplyStatementRule__Group__10__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:3951:1: rule__ApplyStatementRule__Group__10__Impl : ( ']' ) ;
     public final void rule__ApplyStatementRule__Group__10__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3930:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:3931:1: ( ']' )
+            // InternalGeneratorDSL.g:3955:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:3956:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:3931:1: ( ']' )
-            // InternalGeneratorDSL.g:3932:2: ']'
+            // InternalGeneratorDSL.g:3956:1: ( ']' )
+            // InternalGeneratorDSL.g:3957:2: ']'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getRightSquareBracketKeyword_10()); 
             match(input,51,FOLLOW_2); 
@@ -12485,14 +12526,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__11"
-    // InternalGeneratorDSL.g:3941:1: rule__ApplyStatementRule__Group__11 : rule__ApplyStatementRule__Group__11__Impl ;
+    // InternalGeneratorDSL.g:3966:1: rule__ApplyStatementRule__Group__11 : rule__ApplyStatementRule__Group__11__Impl ;
     public final void rule__ApplyStatementRule__Group__11() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3945:1: ( rule__ApplyStatementRule__Group__11__Impl )
-            // InternalGeneratorDSL.g:3946:2: rule__ApplyStatementRule__Group__11__Impl
+            // InternalGeneratorDSL.g:3970:1: ( rule__ApplyStatementRule__Group__11__Impl )
+            // InternalGeneratorDSL.g:3971:2: rule__ApplyStatementRule__Group__11__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__Group__11__Impl();
@@ -12518,17 +12559,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group__11__Impl"
-    // InternalGeneratorDSL.g:3952:1: rule__ApplyStatementRule__Group__11__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:3977:1: rule__ApplyStatementRule__Group__11__Impl : ( ';' ) ;
     public final void rule__ApplyStatementRule__Group__11__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3956:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:3957:1: ( ';' )
+            // InternalGeneratorDSL.g:3981:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:3982:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:3957:1: ( ';' )
-            // InternalGeneratorDSL.g:3958:2: ';'
+            // InternalGeneratorDSL.g:3982:1: ( ';' )
+            // InternalGeneratorDSL.g:3983:2: ';'
             {
              before(grammarAccess.getApplyStatementRuleAccess().getSemicolonKeyword_11()); 
             match(input,48,FOLLOW_2); 
@@ -12555,14 +12596,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group_9__0"
-    // InternalGeneratorDSL.g:3968:1: rule__ApplyStatementRule__Group_9__0 : rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1 ;
+    // InternalGeneratorDSL.g:3993:1: rule__ApplyStatementRule__Group_9__0 : rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1 ;
     public final void rule__ApplyStatementRule__Group_9__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3972:1: ( rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1 )
-            // InternalGeneratorDSL.g:3973:2: rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1
+            // InternalGeneratorDSL.g:3997:1: ( rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1 )
+            // InternalGeneratorDSL.g:3998:2: rule__ApplyStatementRule__Group_9__0__Impl rule__ApplyStatementRule__Group_9__1
             {
             pushFollow(FOLLOW_28);
             rule__ApplyStatementRule__Group_9__0__Impl();
@@ -12593,17 +12634,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group_9__0__Impl"
-    // InternalGeneratorDSL.g:3980:1: rule__ApplyStatementRule__Group_9__0__Impl : ( ',' ) ;
+    // InternalGeneratorDSL.g:4005:1: rule__ApplyStatementRule__Group_9__0__Impl : ( ',' ) ;
     public final void rule__ApplyStatementRule__Group_9__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3984:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:3985:1: ( ',' )
+            // InternalGeneratorDSL.g:4009:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:4010:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:3985:1: ( ',' )
-            // InternalGeneratorDSL.g:3986:2: ','
+            // InternalGeneratorDSL.g:4010:1: ( ',' )
+            // InternalGeneratorDSL.g:4011:2: ','
             {
              before(grammarAccess.getApplyStatementRuleAccess().getCommaKeyword_9_0()); 
             match(input,57,FOLLOW_2); 
@@ -12630,14 +12671,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group_9__1"
-    // InternalGeneratorDSL.g:3995:1: rule__ApplyStatementRule__Group_9__1 : rule__ApplyStatementRule__Group_9__1__Impl ;
+    // InternalGeneratorDSL.g:4020:1: rule__ApplyStatementRule__Group_9__1 : rule__ApplyStatementRule__Group_9__1__Impl ;
     public final void rule__ApplyStatementRule__Group_9__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:3999:1: ( rule__ApplyStatementRule__Group_9__1__Impl )
-            // InternalGeneratorDSL.g:4000:2: rule__ApplyStatementRule__Group_9__1__Impl
+            // InternalGeneratorDSL.g:4024:1: ( rule__ApplyStatementRule__Group_9__1__Impl )
+            // InternalGeneratorDSL.g:4025:2: rule__ApplyStatementRule__Group_9__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__Group_9__1__Impl();
@@ -12663,21 +12704,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__Group_9__1__Impl"
-    // InternalGeneratorDSL.g:4006:1: rule__ApplyStatementRule__Group_9__1__Impl : ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) ) ;
+    // InternalGeneratorDSL.g:4031:1: rule__ApplyStatementRule__Group_9__1__Impl : ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) ) ;
     public final void rule__ApplyStatementRule__Group_9__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4010:1: ( ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) ) )
-            // InternalGeneratorDSL.g:4011:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) )
+            // InternalGeneratorDSL.g:4035:1: ( ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) ) )
+            // InternalGeneratorDSL.g:4036:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) )
             {
-            // InternalGeneratorDSL.g:4011:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) )
-            // InternalGeneratorDSL.g:4012:2: ( rule__ApplyStatementRule__PipelinesAssignment_9_1 )
+            // InternalGeneratorDSL.g:4036:1: ( ( rule__ApplyStatementRule__PipelinesAssignment_9_1 ) )
+            // InternalGeneratorDSL.g:4037:2: ( rule__ApplyStatementRule__PipelinesAssignment_9_1 )
             {
              before(grammarAccess.getApplyStatementRuleAccess().getPipelinesAssignment_9_1()); 
-            // InternalGeneratorDSL.g:4013:2: ( rule__ApplyStatementRule__PipelinesAssignment_9_1 )
-            // InternalGeneratorDSL.g:4013:3: rule__ApplyStatementRule__PipelinesAssignment_9_1
+            // InternalGeneratorDSL.g:4038:2: ( rule__ApplyStatementRule__PipelinesAssignment_9_1 )
+            // InternalGeneratorDSL.g:4038:3: rule__ApplyStatementRule__PipelinesAssignment_9_1
             {
             pushFollow(FOLLOW_2);
             rule__ApplyStatementRule__PipelinesAssignment_9_1();
@@ -12710,14 +12751,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group__0"
-    // InternalGeneratorDSL.g:4022:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
+    // InternalGeneratorDSL.g:4047:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
     public final void rule__InstanceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4026:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
-            // InternalGeneratorDSL.g:4027:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
+            // InternalGeneratorDSL.g:4051:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
+            // InternalGeneratorDSL.g:4052:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
             {
             pushFollow(FOLLOW_12);
             rule__InstanceRule__Group__0__Impl();
@@ -12748,21 +12789,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4034:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
+    // InternalGeneratorDSL.g:4059:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
     public final void rule__InstanceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4038:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:4039:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalGeneratorDSL.g:4063:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4064:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:4039:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
-            // InternalGeneratorDSL.g:4040:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalGeneratorDSL.g:4064:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalGeneratorDSL.g:4065:2: ( rule__InstanceRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionAssignment_0()); 
-            // InternalGeneratorDSL.g:4041:2: ( rule__InstanceRule__DefinitionAssignment_0 )
-            // InternalGeneratorDSL.g:4041:3: rule__InstanceRule__DefinitionAssignment_0
+            // InternalGeneratorDSL.g:4066:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalGeneratorDSL.g:4066:3: rule__InstanceRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__DefinitionAssignment_0();
@@ -12795,14 +12836,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group__1"
-    // InternalGeneratorDSL.g:4049:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:4074:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
     public final void rule__InstanceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4053:1: ( rule__InstanceRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:4054:2: rule__InstanceRule__Group__1__Impl
+            // InternalGeneratorDSL.g:4078:1: ( rule__InstanceRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4079:2: rule__InstanceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group__1__Impl();
@@ -12828,20 +12869,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4060:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
+    // InternalGeneratorDSL.g:4085:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
     public final void rule__InstanceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4064:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
-            // InternalGeneratorDSL.g:4065:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalGeneratorDSL.g:4089:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
+            // InternalGeneratorDSL.g:4090:1: ( ( rule__InstanceRule__Group_1__0 )? )
             {
-            // InternalGeneratorDSL.g:4065:1: ( ( rule__InstanceRule__Group_1__0 )? )
-            // InternalGeneratorDSL.g:4066:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalGeneratorDSL.g:4090:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalGeneratorDSL.g:4091:2: ( rule__InstanceRule__Group_1__0 )?
             {
              before(grammarAccess.getInstanceRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:4067:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalGeneratorDSL.g:4092:2: ( rule__InstanceRule__Group_1__0 )?
             int alt29=2;
             int LA29_0 = input.LA(1);
 
@@ -12850,7 +12891,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
             switch (alt29) {
                 case 1 :
-                    // InternalGeneratorDSL.g:4067:3: rule__InstanceRule__Group_1__0
+                    // InternalGeneratorDSL.g:4092:3: rule__InstanceRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__InstanceRule__Group_1__0();
@@ -12886,14 +12927,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0"
-    // InternalGeneratorDSL.g:4076:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
+    // InternalGeneratorDSL.g:4101:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
     public final void rule__InstanceRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4080:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
-            // InternalGeneratorDSL.g:4081:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
+            // InternalGeneratorDSL.g:4105:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
+            // InternalGeneratorDSL.g:4106:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
             {
             pushFollow(FOLLOW_35);
             rule__InstanceRule__Group_1__0__Impl();
@@ -12924,17 +12965,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:4088:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
+    // InternalGeneratorDSL.g:4113:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
     public final void rule__InstanceRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4092:1: ( ( '{' ) )
-            // InternalGeneratorDSL.g:4093:1: ( '{' )
+            // InternalGeneratorDSL.g:4117:1: ( ( '{' ) )
+            // InternalGeneratorDSL.g:4118:1: ( '{' )
             {
-            // InternalGeneratorDSL.g:4093:1: ( '{' )
-            // InternalGeneratorDSL.g:4094:2: '{'
+            // InternalGeneratorDSL.g:4118:1: ( '{' )
+            // InternalGeneratorDSL.g:4119:2: '{'
             {
              before(grammarAccess.getInstanceRuleAccess().getLeftCurlyBracketKeyword_1_0()); 
             match(input,53,FOLLOW_2); 
@@ -12961,14 +13002,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1"
-    // InternalGeneratorDSL.g:4103:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
+    // InternalGeneratorDSL.g:4128:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
     public final void rule__InstanceRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4107:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
-            // InternalGeneratorDSL.g:4108:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
+            // InternalGeneratorDSL.g:4132:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
+            // InternalGeneratorDSL.g:4133:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
             {
             pushFollow(FOLLOW_35);
             rule__InstanceRule__Group_1__1__Impl();
@@ -12999,20 +13040,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:4115:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
+    // InternalGeneratorDSL.g:4140:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
     public final void rule__InstanceRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4119:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
-            // InternalGeneratorDSL.g:4120:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalGeneratorDSL.g:4144:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
+            // InternalGeneratorDSL.g:4145:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
             {
-            // InternalGeneratorDSL.g:4120:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
-            // InternalGeneratorDSL.g:4121:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalGeneratorDSL.g:4145:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalGeneratorDSL.g:4146:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAssignment_1_1()); 
-            // InternalGeneratorDSL.g:4122:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalGeneratorDSL.g:4147:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             loop30:
             do {
                 int alt30=2;
@@ -13025,7 +13066,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt30) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:4122:3: rule__InstanceRule__AttributesAssignment_1_1
+            	    // InternalGeneratorDSL.g:4147:3: rule__InstanceRule__AttributesAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_36);
             	    rule__InstanceRule__AttributesAssignment_1_1();
@@ -13064,14 +13105,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2"
-    // InternalGeneratorDSL.g:4130:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
+    // InternalGeneratorDSL.g:4155:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
     public final void rule__InstanceRule__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4134:1: ( rule__InstanceRule__Group_1__2__Impl )
-            // InternalGeneratorDSL.g:4135:2: rule__InstanceRule__Group_1__2__Impl
+            // InternalGeneratorDSL.g:4159:1: ( rule__InstanceRule__Group_1__2__Impl )
+            // InternalGeneratorDSL.g:4160:2: rule__InstanceRule__Group_1__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group_1__2__Impl();
@@ -13097,17 +13138,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2__Impl"
-    // InternalGeneratorDSL.g:4141:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
+    // InternalGeneratorDSL.g:4166:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
     public final void rule__InstanceRule__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4145:1: ( ( '}' ) )
-            // InternalGeneratorDSL.g:4146:1: ( '}' )
+            // InternalGeneratorDSL.g:4170:1: ( ( '}' ) )
+            // InternalGeneratorDSL.g:4171:1: ( '}' )
             {
-            // InternalGeneratorDSL.g:4146:1: ( '}' )
-            // InternalGeneratorDSL.g:4147:2: '}'
+            // InternalGeneratorDSL.g:4171:1: ( '}' )
+            // InternalGeneratorDSL.g:4172:2: '}'
             {
              before(grammarAccess.getInstanceRuleAccess().getRightCurlyBracketKeyword_1_2()); 
             match(input,55,FOLLOW_2); 
@@ -13134,14 +13175,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__0"
-    // InternalGeneratorDSL.g:4157:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
+    // InternalGeneratorDSL.g:4182:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
     public final void rule__AttributeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4161:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
-            // InternalGeneratorDSL.g:4162:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
+            // InternalGeneratorDSL.g:4186:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
+            // InternalGeneratorDSL.g:4187:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
             {
             pushFollow(FOLLOW_37);
             rule__AttributeRule__Group__0__Impl();
@@ -13172,21 +13213,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4169:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
+    // InternalGeneratorDSL.g:4194:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
     public final void rule__AttributeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4173:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:4174:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalGeneratorDSL.g:4198:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4199:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:4174:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
-            // InternalGeneratorDSL.g:4175:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalGeneratorDSL.g:4199:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalGeneratorDSL.g:4200:2: ( rule__AttributeRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAssignment_0()); 
-            // InternalGeneratorDSL.g:4176:2: ( rule__AttributeRule__DefinitionAssignment_0 )
-            // InternalGeneratorDSL.g:4176:3: rule__AttributeRule__DefinitionAssignment_0
+            // InternalGeneratorDSL.g:4201:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalGeneratorDSL.g:4201:3: rule__AttributeRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__DefinitionAssignment_0();
@@ -13219,14 +13260,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__1"
-    // InternalGeneratorDSL.g:4184:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
+    // InternalGeneratorDSL.g:4209:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
     public final void rule__AttributeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4188:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
-            // InternalGeneratorDSL.g:4189:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
+            // InternalGeneratorDSL.g:4213:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
+            // InternalGeneratorDSL.g:4214:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
             {
             pushFollow(FOLLOW_38);
             rule__AttributeRule__Group__1__Impl();
@@ -13257,17 +13298,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4196:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
+    // InternalGeneratorDSL.g:4221:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
     public final void rule__AttributeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4200:1: ( ( ':=' ) )
-            // InternalGeneratorDSL.g:4201:1: ( ':=' )
+            // InternalGeneratorDSL.g:4225:1: ( ( ':=' ) )
+            // InternalGeneratorDSL.g:4226:1: ( ':=' )
             {
-            // InternalGeneratorDSL.g:4201:1: ( ':=' )
-            // InternalGeneratorDSL.g:4202:2: ':='
+            // InternalGeneratorDSL.g:4226:1: ( ':=' )
+            // InternalGeneratorDSL.g:4227:2: ':='
             {
              before(grammarAccess.getAttributeRuleAccess().getColonEqualsSignKeyword_1()); 
             match(input,70,FOLLOW_2); 
@@ -13294,14 +13335,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__2"
-    // InternalGeneratorDSL.g:4211:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
+    // InternalGeneratorDSL.g:4236:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
     public final void rule__AttributeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4215:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
-            // InternalGeneratorDSL.g:4216:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
+            // InternalGeneratorDSL.g:4240:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
+            // InternalGeneratorDSL.g:4241:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__AttributeRule__Group__2__Impl();
@@ -13332,21 +13373,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:4223:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
+    // InternalGeneratorDSL.g:4248:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
     public final void rule__AttributeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4227:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
-            // InternalGeneratorDSL.g:4228:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalGeneratorDSL.g:4252:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
+            // InternalGeneratorDSL.g:4253:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
             {
-            // InternalGeneratorDSL.g:4228:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
-            // InternalGeneratorDSL.g:4229:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalGeneratorDSL.g:4253:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalGeneratorDSL.g:4254:2: ( rule__AttributeRule__ValueAssignment_2 )
             {
              before(grammarAccess.getAttributeRuleAccess().getValueAssignment_2()); 
-            // InternalGeneratorDSL.g:4230:2: ( rule__AttributeRule__ValueAssignment_2 )
-            // InternalGeneratorDSL.g:4230:3: rule__AttributeRule__ValueAssignment_2
+            // InternalGeneratorDSL.g:4255:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalGeneratorDSL.g:4255:3: rule__AttributeRule__ValueAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__ValueAssignment_2();
@@ -13379,14 +13420,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__3"
-    // InternalGeneratorDSL.g:4238:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
+    // InternalGeneratorDSL.g:4263:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
     public final void rule__AttributeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4242:1: ( rule__AttributeRule__Group__3__Impl )
-            // InternalGeneratorDSL.g:4243:2: rule__AttributeRule__Group__3__Impl
+            // InternalGeneratorDSL.g:4267:1: ( rule__AttributeRule__Group__3__Impl )
+            // InternalGeneratorDSL.g:4268:2: rule__AttributeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__Group__3__Impl();
@@ -13412,17 +13453,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:4249:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:4274:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
     public final void rule__AttributeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4253:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:4254:1: ( ';' )
+            // InternalGeneratorDSL.g:4278:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:4279:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:4254:1: ( ';' )
-            // InternalGeneratorDSL.g:4255:2: ';'
+            // InternalGeneratorDSL.g:4279:1: ( ';' )
+            // InternalGeneratorDSL.g:4280:2: ';'
             {
              before(grammarAccess.getAttributeRuleAccess().getSemicolonKeyword_3()); 
             match(input,48,FOLLOW_2); 
@@ -13449,14 +13490,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__0"
-    // InternalGeneratorDSL.g:4265:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
+    // InternalGeneratorDSL.g:4290:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
     public final void rule__ArrayRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4269:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
-            // InternalGeneratorDSL.g:4270:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
+            // InternalGeneratorDSL.g:4294:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
+            // InternalGeneratorDSL.g:4295:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
             {
             pushFollow(FOLLOW_9);
             rule__ArrayRule__Group__0__Impl();
@@ -13487,21 +13528,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4277:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:4302:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
     public final void rule__ArrayRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4281:1: ( ( () ) )
-            // InternalGeneratorDSL.g:4282:1: ( () )
+            // InternalGeneratorDSL.g:4306:1: ( ( () ) )
+            // InternalGeneratorDSL.g:4307:1: ( () )
             {
-            // InternalGeneratorDSL.g:4282:1: ( () )
-            // InternalGeneratorDSL.g:4283:2: ()
+            // InternalGeneratorDSL.g:4307:1: ( () )
+            // InternalGeneratorDSL.g:4308:2: ()
             {
              before(grammarAccess.getArrayRuleAccess().getArrayAction_0()); 
-            // InternalGeneratorDSL.g:4284:2: ()
-            // InternalGeneratorDSL.g:4284:3: 
+            // InternalGeneratorDSL.g:4309:2: ()
+            // InternalGeneratorDSL.g:4309:3: 
             {
             }
 
@@ -13524,14 +13565,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__1"
-    // InternalGeneratorDSL.g:4292:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
+    // InternalGeneratorDSL.g:4317:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
     public final void rule__ArrayRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4296:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
-            // InternalGeneratorDSL.g:4297:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
+            // InternalGeneratorDSL.g:4321:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
+            // InternalGeneratorDSL.g:4322:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
             {
             pushFollow(FOLLOW_39);
             rule__ArrayRule__Group__1__Impl();
@@ -13562,17 +13603,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4304:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
+    // InternalGeneratorDSL.g:4329:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
     public final void rule__ArrayRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4308:1: ( ( '[' ) )
-            // InternalGeneratorDSL.g:4309:1: ( '[' )
+            // InternalGeneratorDSL.g:4333:1: ( ( '[' ) )
+            // InternalGeneratorDSL.g:4334:1: ( '[' )
             {
-            // InternalGeneratorDSL.g:4309:1: ( '[' )
-            // InternalGeneratorDSL.g:4310:2: '['
+            // InternalGeneratorDSL.g:4334:1: ( '[' )
+            // InternalGeneratorDSL.g:4335:2: '['
             {
              before(grammarAccess.getArrayRuleAccess().getLeftSquareBracketKeyword_1()); 
             match(input,50,FOLLOW_2); 
@@ -13599,14 +13640,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__2"
-    // InternalGeneratorDSL.g:4319:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
+    // InternalGeneratorDSL.g:4344:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
     public final void rule__ArrayRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4323:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
-            // InternalGeneratorDSL.g:4324:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
+            // InternalGeneratorDSL.g:4348:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
+            // InternalGeneratorDSL.g:4349:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
             {
             pushFollow(FOLLOW_39);
             rule__ArrayRule__Group__2__Impl();
@@ -13637,29 +13678,29 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:4331:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
+    // InternalGeneratorDSL.g:4356:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
     public final void rule__ArrayRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4335:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
-            // InternalGeneratorDSL.g:4336:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalGeneratorDSL.g:4360:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
+            // InternalGeneratorDSL.g:4361:1: ( ( rule__ArrayRule__Group_2__0 )? )
             {
-            // InternalGeneratorDSL.g:4336:1: ( ( rule__ArrayRule__Group_2__0 )? )
-            // InternalGeneratorDSL.g:4337:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalGeneratorDSL.g:4361:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalGeneratorDSL.g:4362:2: ( rule__ArrayRule__Group_2__0 )?
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2()); 
-            // InternalGeneratorDSL.g:4338:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalGeneratorDSL.g:4363:2: ( rule__ArrayRule__Group_2__0 )?
             int alt31=2;
             int LA31_0 = input.LA(1);
 
-            if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_DOUBLE)||LA31_0==15||LA31_0==50||LA31_0==71||LA31_0==92) ) {
+            if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_DOUBLE)||LA31_0==15||LA31_0==50||LA31_0==71||LA31_0==93) ) {
                 alt31=1;
             }
             switch (alt31) {
                 case 1 :
-                    // InternalGeneratorDSL.g:4338:3: rule__ArrayRule__Group_2__0
+                    // InternalGeneratorDSL.g:4363:3: rule__ArrayRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ArrayRule__Group_2__0();
@@ -13695,14 +13736,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__3"
-    // InternalGeneratorDSL.g:4346:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
+    // InternalGeneratorDSL.g:4371:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
     public final void rule__ArrayRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4350:1: ( rule__ArrayRule__Group__3__Impl )
-            // InternalGeneratorDSL.g:4351:2: rule__ArrayRule__Group__3__Impl
+            // InternalGeneratorDSL.g:4375:1: ( rule__ArrayRule__Group__3__Impl )
+            // InternalGeneratorDSL.g:4376:2: rule__ArrayRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group__3__Impl();
@@ -13728,17 +13769,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:4357:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
+    // InternalGeneratorDSL.g:4382:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
     public final void rule__ArrayRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4361:1: ( ( ']' ) )
-            // InternalGeneratorDSL.g:4362:1: ( ']' )
+            // InternalGeneratorDSL.g:4386:1: ( ( ']' ) )
+            // InternalGeneratorDSL.g:4387:1: ( ']' )
             {
-            // InternalGeneratorDSL.g:4362:1: ( ']' )
-            // InternalGeneratorDSL.g:4363:2: ']'
+            // InternalGeneratorDSL.g:4387:1: ( ']' )
+            // InternalGeneratorDSL.g:4388:2: ']'
             {
              before(grammarAccess.getArrayRuleAccess().getRightSquareBracketKeyword_3()); 
             match(input,51,FOLLOW_2); 
@@ -13765,14 +13806,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0"
-    // InternalGeneratorDSL.g:4373:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
+    // InternalGeneratorDSL.g:4398:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
     public final void rule__ArrayRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4377:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
-            // InternalGeneratorDSL.g:4378:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
+            // InternalGeneratorDSL.g:4402:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
+            // InternalGeneratorDSL.g:4403:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
             {
             pushFollow(FOLLOW_16);
             rule__ArrayRule__Group_2__0__Impl();
@@ -13803,21 +13844,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0__Impl"
-    // InternalGeneratorDSL.g:4385:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
+    // InternalGeneratorDSL.g:4410:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
     public final void rule__ArrayRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4389:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
-            // InternalGeneratorDSL.g:4390:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalGeneratorDSL.g:4414:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
+            // InternalGeneratorDSL.g:4415:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
             {
-            // InternalGeneratorDSL.g:4390:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
-            // InternalGeneratorDSL.g:4391:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalGeneratorDSL.g:4415:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalGeneratorDSL.g:4416:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_0()); 
-            // InternalGeneratorDSL.g:4392:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
-            // InternalGeneratorDSL.g:4392:3: rule__ArrayRule__ValuesAssignment_2_0
+            // InternalGeneratorDSL.g:4417:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalGeneratorDSL.g:4417:3: rule__ArrayRule__ValuesAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_0();
@@ -13850,14 +13891,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1"
-    // InternalGeneratorDSL.g:4400:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
+    // InternalGeneratorDSL.g:4425:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
     public final void rule__ArrayRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4404:1: ( rule__ArrayRule__Group_2__1__Impl )
-            // InternalGeneratorDSL.g:4405:2: rule__ArrayRule__Group_2__1__Impl
+            // InternalGeneratorDSL.g:4429:1: ( rule__ArrayRule__Group_2__1__Impl )
+            // InternalGeneratorDSL.g:4430:2: rule__ArrayRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2__1__Impl();
@@ -13883,20 +13924,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1__Impl"
-    // InternalGeneratorDSL.g:4411:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
+    // InternalGeneratorDSL.g:4436:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
     public final void rule__ArrayRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4415:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
-            // InternalGeneratorDSL.g:4416:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalGeneratorDSL.g:4440:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
+            // InternalGeneratorDSL.g:4441:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
             {
-            // InternalGeneratorDSL.g:4416:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
-            // InternalGeneratorDSL.g:4417:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalGeneratorDSL.g:4441:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalGeneratorDSL.g:4442:2: ( rule__ArrayRule__Group_2_1__0 )*
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2_1()); 
-            // InternalGeneratorDSL.g:4418:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalGeneratorDSL.g:4443:2: ( rule__ArrayRule__Group_2_1__0 )*
             loop32:
             do {
                 int alt32=2;
@@ -13909,7 +13950,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt32) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:4418:3: rule__ArrayRule__Group_2_1__0
+            	    // InternalGeneratorDSL.g:4443:3: rule__ArrayRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_17);
             	    rule__ArrayRule__Group_2_1__0();
@@ -13948,14 +13989,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0"
-    // InternalGeneratorDSL.g:4427:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
+    // InternalGeneratorDSL.g:4452:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
     public final void rule__ArrayRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4431:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
-            // InternalGeneratorDSL.g:4432:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
+            // InternalGeneratorDSL.g:4456:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
+            // InternalGeneratorDSL.g:4457:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
             {
             pushFollow(FOLLOW_38);
             rule__ArrayRule__Group_2_1__0__Impl();
@@ -13986,17 +14027,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0__Impl"
-    // InternalGeneratorDSL.g:4439:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalGeneratorDSL.g:4464:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__ArrayRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4443:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:4444:1: ( ',' )
+            // InternalGeneratorDSL.g:4468:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:4469:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:4444:1: ( ',' )
-            // InternalGeneratorDSL.g:4445:2: ','
+            // InternalGeneratorDSL.g:4469:1: ( ',' )
+            // InternalGeneratorDSL.g:4470:2: ','
             {
              before(grammarAccess.getArrayRuleAccess().getCommaKeyword_2_1_0()); 
             match(input,57,FOLLOW_2); 
@@ -14023,14 +14064,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1"
-    // InternalGeneratorDSL.g:4454:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
+    // InternalGeneratorDSL.g:4479:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
     public final void rule__ArrayRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4458:1: ( rule__ArrayRule__Group_2_1__1__Impl )
-            // InternalGeneratorDSL.g:4459:2: rule__ArrayRule__Group_2_1__1__Impl
+            // InternalGeneratorDSL.g:4483:1: ( rule__ArrayRule__Group_2_1__1__Impl )
+            // InternalGeneratorDSL.g:4484:2: rule__ArrayRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2_1__1__Impl();
@@ -14056,21 +14097,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1__Impl"
-    // InternalGeneratorDSL.g:4465:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
+    // InternalGeneratorDSL.g:4490:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
     public final void rule__ArrayRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4469:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
-            // InternalGeneratorDSL.g:4470:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalGeneratorDSL.g:4494:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
+            // InternalGeneratorDSL.g:4495:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
             {
-            // InternalGeneratorDSL.g:4470:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
-            // InternalGeneratorDSL.g:4471:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalGeneratorDSL.g:4495:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalGeneratorDSL.g:4496:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_1_1()); 
-            // InternalGeneratorDSL.g:4472:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
-            // InternalGeneratorDSL.g:4472:3: rule__ArrayRule__ValuesAssignment_2_1_1
+            // InternalGeneratorDSL.g:4497:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalGeneratorDSL.g:4497:3: rule__ArrayRule__ValuesAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_1_1();
@@ -14103,14 +14144,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0"
-    // InternalGeneratorDSL.g:4481:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
+    // InternalGeneratorDSL.g:4506:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
     public final void rule__DataReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4485:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
-            // InternalGeneratorDSL.g:4486:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
+            // InternalGeneratorDSL.g:4510:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
+            // InternalGeneratorDSL.g:4511:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
             {
             pushFollow(FOLLOW_18);
             rule__DataReferenceRule__Group__0__Impl();
@@ -14141,21 +14182,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4493:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:4518:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
     public final void rule__DataReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4497:1: ( ( () ) )
-            // InternalGeneratorDSL.g:4498:1: ( () )
+            // InternalGeneratorDSL.g:4522:1: ( ( () ) )
+            // InternalGeneratorDSL.g:4523:1: ( () )
             {
-            // InternalGeneratorDSL.g:4498:1: ( () )
-            // InternalGeneratorDSL.g:4499:2: ()
+            // InternalGeneratorDSL.g:4523:1: ( () )
+            // InternalGeneratorDSL.g:4524:2: ()
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataReferenceAction_0()); 
-            // InternalGeneratorDSL.g:4500:2: ()
-            // InternalGeneratorDSL.g:4500:3: 
+            // InternalGeneratorDSL.g:4525:2: ()
+            // InternalGeneratorDSL.g:4525:3: 
             {
             }
 
@@ -14178,14 +14219,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1"
-    // InternalGeneratorDSL.g:4508:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
+    // InternalGeneratorDSL.g:4533:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
     public final void rule__DataReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4512:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
-            // InternalGeneratorDSL.g:4513:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
+            // InternalGeneratorDSL.g:4537:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
+            // InternalGeneratorDSL.g:4538:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__DataReferenceRule__Group__1__Impl();
@@ -14216,17 +14257,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4520:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
+    // InternalGeneratorDSL.g:4545:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4524:1: ( ( 'data' ) )
-            // InternalGeneratorDSL.g:4525:1: ( 'data' )
+            // InternalGeneratorDSL.g:4549:1: ( ( 'data' ) )
+            // InternalGeneratorDSL.g:4550:1: ( 'data' )
             {
-            // InternalGeneratorDSL.g:4525:1: ( 'data' )
-            // InternalGeneratorDSL.g:4526:2: 'data'
+            // InternalGeneratorDSL.g:4550:1: ( 'data' )
+            // InternalGeneratorDSL.g:4551:2: 'data'
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataKeyword_1()); 
             match(input,71,FOLLOW_2); 
@@ -14253,14 +14294,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2"
-    // InternalGeneratorDSL.g:4535:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
+    // InternalGeneratorDSL.g:4560:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
     public final void rule__DataReferenceRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4539:1: ( rule__DataReferenceRule__Group__2__Impl )
-            // InternalGeneratorDSL.g:4540:2: rule__DataReferenceRule__Group__2__Impl
+            // InternalGeneratorDSL.g:4564:1: ( rule__DataReferenceRule__Group__2__Impl )
+            // InternalGeneratorDSL.g:4565:2: rule__DataReferenceRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__Group__2__Impl();
@@ -14286,21 +14327,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:4546:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
+    // InternalGeneratorDSL.g:4571:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
     public final void rule__DataReferenceRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4550:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
-            // InternalGeneratorDSL.g:4551:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalGeneratorDSL.g:4575:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
+            // InternalGeneratorDSL.g:4576:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
             {
-            // InternalGeneratorDSL.g:4551:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
-            // InternalGeneratorDSL.g:4552:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalGeneratorDSL.g:4576:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalGeneratorDSL.g:4577:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionAssignment_2()); 
-            // InternalGeneratorDSL.g:4553:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
-            // InternalGeneratorDSL.g:4553:3: rule__DataReferenceRule__DefinitionAssignment_2
+            // InternalGeneratorDSL.g:4578:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalGeneratorDSL.g:4578:3: rule__DataReferenceRule__DefinitionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__DefinitionAssignment_2();
@@ -14332,23 +14373,23 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__DataReferenceRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0"
-    // InternalGeneratorDSL.g:4562:1: rule__QualifiedNameRule__Group__0 : rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 ;
-    public final void rule__QualifiedNameRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:4587:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4566:1: ( rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 )
-            // InternalGeneratorDSL.g:4567:2: rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1
+            // InternalGeneratorDSL.g:4591:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:4592:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_40);
-            rule__QualifiedNameRule__Group__0__Impl();
+            rule__OrExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1();
+            rule__OrExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -14367,29 +14408,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0"
+    // $ANTLR end "rule__OrExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4574:1: rule__QualifiedNameRule__Group__0__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:4599:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4578:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:4579:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:4603:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4604:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            {
+            // InternalGeneratorDSL.g:4604:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4605:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
-            // InternalGeneratorDSL.g:4579:1: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:4580:2: ruleStringOrId
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalGeneratorDSL.g:4606:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4606:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -14408,21 +14455,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1"
-    // InternalGeneratorDSL.g:4589:1: rule__QualifiedNameRule__Group__1 : rule__QualifiedNameRule__Group__1__Impl ;
-    public final void rule__QualifiedNameRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:4614:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4593:1: ( rule__QualifiedNameRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:4594:2: rule__QualifiedNameRule__Group__1__Impl
+            // InternalGeneratorDSL.g:4618:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4619:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1__Impl();
+            rule__OrExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -14441,24 +14488,24 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1"
+    // $ANTLR end "rule__OrExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4600:1: rule__QualifiedNameRule__Group__1__Impl : ( ( rule__QualifiedNameRule__Group_1__0 )* ) ;
-    public final void rule__QualifiedNameRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:4625:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4604:1: ( ( ( rule__QualifiedNameRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:4605:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4629:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:4630:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:4605:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:4606:2: ( rule__QualifiedNameRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:4630:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4631:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:4607:2: ( rule__QualifiedNameRule__Group_1__0 )*
+             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:4632:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop33:
             do {
                 int alt33=2;
@@ -14471,10 +14518,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt33) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:4607:3: rule__QualifiedNameRule__Group_1__0
+            	    // InternalGeneratorDSL.g:4632:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_41);
-            	    rule__QualifiedNameRule__Group_1__0();
+            	    rule__OrExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -14487,7 +14534,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
             } while (true);
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -14506,26 +14553,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0"
-    // InternalGeneratorDSL.g:4616:1: rule__QualifiedNameRule__Group_1__0 : rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 ;
-    public final void rule__QualifiedNameRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:4641:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4620:1: ( rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 )
-            // InternalGeneratorDSL.g:4621:2: rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1
+            // InternalGeneratorDSL.g:4645:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:4646:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_7);
-            rule__QualifiedNameRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__OrExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1();
+            rule__OrExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -14544,25 +14591,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:4628:1: rule__QualifiedNameRule__Group_1__0__Impl : ( '.' ) ;
-    public final void rule__QualifiedNameRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:4653:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4632:1: ( ( '.' ) )
-            // InternalGeneratorDSL.g:4633:1: ( '.' )
+            // InternalGeneratorDSL.g:4657:1: ( ( 'OR' ) )
+            // InternalGeneratorDSL.g:4658:1: ( 'OR' )
             {
-            // InternalGeneratorDSL.g:4633:1: ( '.' )
-            // InternalGeneratorDSL.g:4634:2: '.'
+            // InternalGeneratorDSL.g:4658:1: ( 'OR' )
+            // InternalGeneratorDSL.g:4659:2: 'OR'
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             match(input,72,FOLLOW_2); 
-             after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
 
             }
 
@@ -14581,21 +14628,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1"
-    // InternalGeneratorDSL.g:4643:1: rule__QualifiedNameRule__Group_1__1 : rule__QualifiedNameRule__Group_1__1__Impl ;
-    public final void rule__QualifiedNameRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:4668:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4647:1: ( rule__QualifiedNameRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:4648:2: rule__QualifiedNameRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:4672:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:4673:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1__Impl();
+            rule__OrExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -14614,29 +14661,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:4654:1: rule__QualifiedNameRule__Group_1__1__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:4679:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4658:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:4659:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:4683:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:4684:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:4659:1: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:4660:2: ruleStringOrId
+            // InternalGeneratorDSL.g:4684:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:4685:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            {
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalGeneratorDSL.g:4686:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalGeneratorDSL.g:4686:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -14655,26 +14708,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:4670:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
-    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:4695:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4674:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:4675:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalGeneratorDSL.g:4699:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:4700:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_42);
-            rule__OrExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_43);
+            rule__XorExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1();
+            rule__XorExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -14693,35 +14746,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0"
+    // $ANTLR end "rule__XorExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4682:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:4707:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4686:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:4687:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4711:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4712:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:4687:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalGeneratorDSL.g:4688:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4712:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4713:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalGeneratorDSL.g:4689:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalGeneratorDSL.g:4689:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalGeneratorDSL.g:4714:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4714:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_0();
+            rule__XorExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -14740,21 +14793,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:4697:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
-    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:4722:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4701:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:4702:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:4726:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4727:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1__Impl();
+            rule__XorExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -14773,24 +14826,24 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1"
+    // $ANTLR end "rule__XorExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4708:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
-    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:4733:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4712:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:4713:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4737:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:4738:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:4713:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:4714:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:4738:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4739:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:4715:2: ( rule__OrExpressionRule__Group_1__0 )*
+             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:4740:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop34:
             do {
                 int alt34=2;
@@ -14803,10 +14856,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt34) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:4715:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalGeneratorDSL.g:4740:3: rule__XorExpressionRule__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_43);
-            	    rule__OrExpressionRule__Group_1__0();
+            	    pushFollow(FOLLOW_44);
+            	    rule__XorExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -14819,7 +14872,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
             } while (true);
 
-             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -14838,26 +14891,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:4724:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
-    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:4749:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4728:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:4729:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:4753:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:4754:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_44);
-            rule__OrExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__XorExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1();
+            rule__XorExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -14876,25 +14929,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:4736:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
-    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:4761:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4740:1: ( ( 'OR' ) )
-            // InternalGeneratorDSL.g:4741:1: ( 'OR' )
+            // InternalGeneratorDSL.g:4765:1: ( ( 'XOR' ) )
+            // InternalGeneratorDSL.g:4766:1: ( 'XOR' )
             {
-            // InternalGeneratorDSL.g:4741:1: ( 'OR' )
-            // InternalGeneratorDSL.g:4742:2: 'OR'
+            // InternalGeneratorDSL.g:4766:1: ( 'XOR' )
+            // InternalGeneratorDSL.g:4767:2: 'XOR'
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             match(input,73,FOLLOW_2); 
-             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
 
             }
 
@@ -14913,21 +14966,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:4751:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
-    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:4776:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4755:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:4756:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:4780:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:4781:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1__Impl();
+            rule__XorExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -14946,35 +14999,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:4762:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:4787:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4766:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:4767:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:4791:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:4792:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:4767:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:4768:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalGeneratorDSL.g:4792:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:4793:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalGeneratorDSL.g:4769:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalGeneratorDSL.g:4769:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalGeneratorDSL.g:4794:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalGeneratorDSL.g:4794:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
+            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -14993,26 +15046,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:4778:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
-    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:4803:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4782:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:4783:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalGeneratorDSL.g:4807:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:4808:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_45);
-            rule__XorExpressionRule__Group__0__Impl();
+            rule__AndExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1();
+            rule__AndExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -15031,35 +15084,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0"
+    // $ANTLR end "rule__AndExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4790:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:4815:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4794:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:4795:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4819:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4820:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:4795:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalGeneratorDSL.g:4796:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4820:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4821:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalGeneratorDSL.g:4797:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalGeneratorDSL.g:4797:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalGeneratorDSL.g:4822:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4822:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_0();
+            rule__AndExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -15078,21 +15131,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:4805:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
-    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:4830:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4809:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:4810:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:4834:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4835:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1__Impl();
+            rule__AndExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -15111,24 +15164,24 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1"
+    // $ANTLR end "rule__AndExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4816:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
-    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:4841:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4820:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:4821:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4845:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:4846:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:4821:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:4822:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:4846:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4847:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:4823:2: ( rule__XorExpressionRule__Group_1__0 )*
+             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:4848:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop35:
             do {
                 int alt35=2;
@@ -15141,10 +15194,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
                 switch (alt35) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:4823:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalGeneratorDSL.g:4848:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_46);
-            	    rule__XorExpressionRule__Group_1__0();
+            	    rule__AndExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -15157,7 +15210,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
             } while (true);
 
-             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -15176,26 +15229,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:4832:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
-    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:4857:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4836:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:4837:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:4861:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:4862:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_44);
-            rule__XorExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__AndExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1();
+            rule__AndExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -15214,25 +15267,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:4844:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
-    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:4869:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4848:1: ( ( 'XOR' ) )
-            // InternalGeneratorDSL.g:4849:1: ( 'XOR' )
+            // InternalGeneratorDSL.g:4873:1: ( ( 'AND' ) )
+            // InternalGeneratorDSL.g:4874:1: ( 'AND' )
             {
-            // InternalGeneratorDSL.g:4849:1: ( 'XOR' )
-            // InternalGeneratorDSL.g:4850:2: 'XOR'
+            // InternalGeneratorDSL.g:4874:1: ( 'AND' )
+            // InternalGeneratorDSL.g:4875:2: 'AND'
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             match(input,74,FOLLOW_2); 
-             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
 
             }
 
@@ -15251,21 +15304,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:4859:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
-    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:4884:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4863:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:4864:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:4888:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:4889:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1__Impl();
+            rule__AndExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -15284,35 +15337,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:4870:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:4895:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4874:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:4875:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:4899:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:4900:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:4875:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:4876:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalGeneratorDSL.g:4900:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:4901:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalGeneratorDSL.g:4877:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalGeneratorDSL.g:4877:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalGeneratorDSL.g:4902:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalGeneratorDSL.g:4902:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
+            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -15331,26 +15384,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:4886:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
-    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:4911:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4890:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:4891:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalGeneratorDSL.g:4915:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:4916:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_47);
-            rule__AndExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__NotExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1();
+            rule__NotExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -15369,35 +15422,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0"
+    // $ANTLR end "rule__NotExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:4898:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:4923:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4902:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:4903:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalGeneratorDSL.g:4927:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalGeneratorDSL.g:4928:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalGeneratorDSL.g:4903:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalGeneratorDSL.g:4904:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalGeneratorDSL.g:4928:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalGeneratorDSL.g:4929:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalGeneratorDSL.g:4905:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalGeneratorDSL.g:4905:3: rule__AndExpressionRule__SubExpressionsAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_0();
+             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+            // InternalGeneratorDSL.g:4930:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
+
+            if ( (LA36_0==92) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // InternalGeneratorDSL.g:4930:3: rule__NotExpressionRule__NegatedAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NotExpressionRule__NegatedAssignment_0();
+
+                    state._fsp--;
 
-            state._fsp--;
 
+                    }
+                    break;
 
             }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
 
             }
 
@@ -15416,21 +15480,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:4913:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
-    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:4938:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4917:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:4918:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:4942:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4943:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1__Impl();
+            rule__NotExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -15449,53 +15513,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1"
+    // $ANTLR end "rule__NotExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:4924:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:4949:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4928:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:4929:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:4953:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:4954:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:4929:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:4930:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:4954:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalGeneratorDSL.g:4955:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:4931:2: ( rule__AndExpressionRule__Group_1__0 )*
-            loop36:
-            do {
-                int alt36=2;
-                int LA36_0 = input.LA(1);
-
-                if ( (LA36_0==75) ) {
-                    alt36=1;
-                }
-
-
-                switch (alt36) {
-            	case 1 :
-            	    // InternalGeneratorDSL.g:4931:3: rule__AndExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_48);
-            	    rule__AndExpressionRule__Group_1__0();
-
-            	    state._fsp--;
+             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+            // InternalGeneratorDSL.g:4956:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalGeneratorDSL.g:4956:3: rule__NotExpressionRule__OperandAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NotExpressionRule__OperandAssignment_1();
 
+            state._fsp--;
 
-            	    }
-            	    break;
 
-            	default :
-            	    break loop36;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
 
             }
 
@@ -15514,26 +15560,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:4940:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
-    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:4965:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4944:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:4945:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:4969:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:4970:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_44);
-            rule__AndExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_47);
+            rule__ComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1();
+            rule__ComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -15552,25 +15598,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:4952:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
-    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:4977:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4956:1: ( ( 'AND' ) )
-            // InternalGeneratorDSL.g:4957:1: ( 'AND' )
+            // InternalGeneratorDSL.g:4981:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:4982:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:4957:1: ( 'AND' )
-            // InternalGeneratorDSL.g:4958:2: 'AND'
+            // InternalGeneratorDSL.g:4982:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:4983:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
-            match(input,75,FOLLOW_2); 
-             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
+             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalGeneratorDSL.g:4984:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:4984:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -15589,21 +15645,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:4967:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
-    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:4992:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4971:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:4972:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:4996:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:4997:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1__Impl();
+            rule__ComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -15622,35 +15678,53 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:4978:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5003:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4982:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:4983:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5007:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalGeneratorDSL.g:5008:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalGeneratorDSL.g:4983:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:4984:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalGeneratorDSL.g:4985:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalGeneratorDSL.g:4985:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalGeneratorDSL.g:5008:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalGeneratorDSL.g:5009:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
+             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+            // InternalGeneratorDSL.g:5010:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            loop37:
+            do {
+                int alt37=2;
+                int LA37_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA37_0>=16 && LA37_0<=21)) ) {
+                    alt37=1;
+                }
 
 
-            }
+                switch (alt37) {
+            	case 1 :
+            	    // InternalGeneratorDSL.g:5010:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    {
+            	    pushFollow(FOLLOW_48);
+            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop37;
+                }
+            } while (true);
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
 
             }
 
@@ -15669,26 +15743,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:4994:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
-    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:5019:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:4998:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:4999:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5023:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:5024:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_44);
-            rule__NotExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__PartialComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1();
+            rule__PartialComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -15707,46 +15781,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5006:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
-    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5031:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5010:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalGeneratorDSL.g:5011:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalGeneratorDSL.g:5035:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5036:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5011:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalGeneratorDSL.g:5012:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalGeneratorDSL.g:5036:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalGeneratorDSL.g:5037:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            // InternalGeneratorDSL.g:5013:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
-            int alt37=2;
-            int LA37_0 = input.LA(1);
-
-            if ( (LA37_0==91) ) {
-                alt37=1;
-            }
-            switch (alt37) {
-                case 1 :
-                    // InternalGeneratorDSL.g:5013:3: rule__NotExpressionRule__NegatedAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__NotExpressionRule__NegatedAssignment_0();
-
-                    state._fsp--;
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+            // InternalGeneratorDSL.g:5038:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalGeneratorDSL.g:5038:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
 
             }
 
@@ -15765,21 +15828,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5021:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
-    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:5046:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5025:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5026:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5050:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5051:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1__Impl();
+            rule__PartialComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -15798,35 +15861,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5032:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
-    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5057:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5036:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:5037:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalGeneratorDSL.g:5061:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:5062:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:5037:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalGeneratorDSL.g:5038:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalGeneratorDSL.g:5062:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5063:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
-            // InternalGeneratorDSL.g:5039:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalGeneratorDSL.g:5039:3: rule__NotExpressionRule__OperandAssignment_1
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalGeneratorDSL.g:5064:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5064:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__OperandAssignment_1();
+            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -15845,26 +15908,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5048:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
-    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:5073:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5052:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5053:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5077:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:5078:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_49);
-            rule__ComparisonExpressionRule__Group__0__Impl();
+            rule__AddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -15883,35 +15946,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5060:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5085:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5064:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5065:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5089:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5090:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5065:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalGeneratorDSL.g:5066:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5090:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5091:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalGeneratorDSL.g:5067:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalGeneratorDSL.g:5067:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalGeneratorDSL.g:5092:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5092:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -15930,21 +15993,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5075:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:5100:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5079:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5080:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5104:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5105:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -15963,40 +16026,40 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5086:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
-    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5111:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5090:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalGeneratorDSL.g:5091:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalGeneratorDSL.g:5115:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:5116:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:5091:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalGeneratorDSL.g:5092:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalGeneratorDSL.g:5116:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:5117:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
-            // InternalGeneratorDSL.g:5093:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:5118:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop38:
             do {
                 int alt38=2;
                 int LA38_0 = input.LA(1);
 
-                if ( ((LA38_0>=16 && LA38_0<=21)) ) {
+                if ( ((LA38_0>=22 && LA38_0<=23)) ) {
                     alt38=1;
                 }
 
 
                 switch (alt38) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:5093:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalGeneratorDSL.g:5118:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_50);
-            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
+            	    rule__AddOrSubtractExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -16009,7 +16072,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
             } while (true);
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -16028,26 +16091,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5102:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
-    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:5127:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5106:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5107:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5131:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:5132:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_44);
-            rule__PartialComparisonExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -16066,35 +16129,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5114:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:5139:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5118:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5119:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalGeneratorDSL.g:5143:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalGeneratorDSL.g:5144:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalGeneratorDSL.g:5119:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalGeneratorDSL.g:5120:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalGeneratorDSL.g:5144:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalGeneratorDSL.g:5145:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
-            // InternalGeneratorDSL.g:5121:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalGeneratorDSL.g:5121:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalGeneratorDSL.g:5146:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalGeneratorDSL.g:5146:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
+            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -16113,21 +16176,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5129:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:5154:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5133:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5134:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5158:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:5159:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -16146,35 +16209,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5140:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:5165:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5144:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:5145:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5169:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:5170:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:5145:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalGeneratorDSL.g:5146:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5170:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5171:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalGeneratorDSL.g:5147:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalGeneratorDSL.g:5147:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalGeneratorDSL.g:5172:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalGeneratorDSL.g:5172:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
+            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -16193,26 +16256,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5156:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:5181:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5160:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5161:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5185:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:5186:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_51);
-            rule__AddOrSubtractExpressionRule__Group__0__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1();
+            rule__MultiplyDivideModuloExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -16231,35 +16294,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5168:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5193:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5172:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5173:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5197:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5198:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5173:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalGeneratorDSL.g:5174:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5198:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5199:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalGeneratorDSL.g:5175:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalGeneratorDSL.g:5175:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalGeneratorDSL.g:5200:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5200:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
+            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -16278,21 +16341,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5183:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:5208:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5187:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5188:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5212:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5213:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -16311,40 +16374,40 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5194:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5219:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5198:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:5199:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:5223:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:5224:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:5199:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:5200:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:5224:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:5225:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:5201:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:5226:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop39:
             do {
                 int alt39=2;
                 int LA39_0 = input.LA(1);
 
-                if ( ((LA39_0>=22 && LA39_0<=23)) ) {
+                if ( ((LA39_0>=24 && LA39_0<=26)) ) {
                     alt39=1;
                 }
 
 
                 switch (alt39) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:5201:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalGeneratorDSL.g:5226:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_52);
-            	    rule__AddOrSubtractExpressionRule__Group_1__0();
+            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -16357,7 +16420,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
                 }
             } while (true);
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -16376,26 +16439,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:5210:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:5235:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5214:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:5215:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:5239:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:5240:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_44);
-            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -16414,35 +16477,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:5222:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:5247:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5226:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalGeneratorDSL.g:5227:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalGeneratorDSL.g:5251:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalGeneratorDSL.g:5252:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalGeneratorDSL.g:5227:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalGeneratorDSL.g:5228:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalGeneratorDSL.g:5252:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalGeneratorDSL.g:5253:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalGeneratorDSL.g:5229:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalGeneratorDSL.g:5229:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalGeneratorDSL.g:5254:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalGeneratorDSL.g:5254:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
+            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -16461,21 +16524,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:5237:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:5262:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5241:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:5242:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:5266:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:5267:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -16494,35 +16557,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:5248:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:5273:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5252:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:5253:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5277:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:5278:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:5253:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:5254:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalGeneratorDSL.g:5278:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5279:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalGeneratorDSL.g:5255:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalGeneratorDSL.g:5255:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalGeneratorDSL.g:5280:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalGeneratorDSL.g:5280:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
+            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -16541,26 +16604,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5264:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:5289:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5268:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5269:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5293:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:5294:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_53);
-            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
+            rule__PowerOfExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1();
+            rule__PowerOfExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -16579,35 +16642,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5276:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5301:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5280:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5281:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5305:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5306:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5281:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalGeneratorDSL.g:5282:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5306:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalGeneratorDSL.g:5307:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalGeneratorDSL.g:5283:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalGeneratorDSL.g:5283:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalGeneratorDSL.g:5308:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5308:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
+            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -16626,21 +16689,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5291:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:5316:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5295:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5296:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5320:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5321:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
+            rule__PowerOfExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -16659,53 +16722,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5302:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5327:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5306:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:5307:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalGeneratorDSL.g:5331:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalGeneratorDSL.g:5332:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalGeneratorDSL.g:5307:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalGeneratorDSL.g:5308:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalGeneratorDSL.g:5332:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalGeneratorDSL.g:5333:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:5309:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
-            loop40:
-            do {
-                int alt40=2;
-                int LA40_0 = input.LA(1);
-
-                if ( ((LA40_0>=24 && LA40_0<=26)) ) {
-                    alt40=1;
-                }
-
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+            // InternalGeneratorDSL.g:5334:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
 
-                switch (alt40) {
-            	case 1 :
-            	    // InternalGeneratorDSL.g:5309:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_54);
-            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
+            if ( (LA40_0==75) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalGeneratorDSL.g:5334:3: rule__PowerOfExpressionRule__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PowerOfExpressionRule__Group_1__0();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop40;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -16724,26 +16780,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:5318:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
+    // InternalGeneratorDSL.g:5343:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5322:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:5323:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:5347:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalGeneratorDSL.g:5348:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_44);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__PowerOfExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
+            rule__PowerOfExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -16762,35 +16818,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:5330:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // InternalGeneratorDSL.g:5355:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5334:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalGeneratorDSL.g:5335:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            {
-            // InternalGeneratorDSL.g:5335:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalGeneratorDSL.g:5336:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalGeneratorDSL.g:5359:1: ( ( '^' ) )
+            // InternalGeneratorDSL.g:5360:1: ( '^' )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalGeneratorDSL.g:5337:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalGeneratorDSL.g:5337:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalGeneratorDSL.g:5360:1: ( '^' )
+            // InternalGeneratorDSL.g:5361:2: '^'
             {
-            pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+            match(input,75,FOLLOW_2); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
 
             }
 
@@ -16809,21 +16855,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:5345:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
+    // InternalGeneratorDSL.g:5370:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5349:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:5350:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:5374:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:5375:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
+            rule__PowerOfExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -16842,35 +16888,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:5356:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // InternalGeneratorDSL.g:5381:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5360:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:5361:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5385:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalGeneratorDSL.g:5386:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalGeneratorDSL.g:5361:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:5362:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalGeneratorDSL.g:5386:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5387:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalGeneratorDSL.g:5363:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalGeneratorDSL.g:5363:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+            // InternalGeneratorDSL.g:5388:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalGeneratorDSL.g:5388:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
+            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
 
             }
 
@@ -16889,26 +16935,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5372:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
-    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // InternalGeneratorDSL.g:5397:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5376:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5377:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5401:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalGeneratorDSL.g:5402:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_55);
-            rule__PowerOfExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -16927,35 +16973,53 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5384:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5409:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5388:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5389:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            {
-            // InternalGeneratorDSL.g:5389:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalGeneratorDSL.g:5390:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalGeneratorDSL.g:5413:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalGeneratorDSL.g:5414:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalGeneratorDSL.g:5391:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalGeneratorDSL.g:5391:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalGeneratorDSL.g:5414:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalGeneratorDSL.g:5415:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+            // InternalGeneratorDSL.g:5416:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            loop41:
+            do {
+                int alt41=2;
+                int LA41_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA41_0>=22 && LA41_0<=23)) ) {
+                    alt41=1;
+                }
 
 
-            }
+                switch (alt41) {
+            	case 1 :
+            	    // InternalGeneratorDSL.g:5416:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    {
+            	    pushFollow(FOLLOW_50);
+            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop41;
+                }
+            } while (true);
+
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
 
             }
 
@@ -16974,21 +17038,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5399:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // InternalGeneratorDSL.g:5424:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5403:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5404:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5428:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5429:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1__Impl();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -17007,46 +17071,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5410:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
-    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5435:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5414:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalGeneratorDSL.g:5415:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalGeneratorDSL.g:5439:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:5440:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:5415:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalGeneratorDSL.g:5416:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalGeneratorDSL.g:5440:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5441:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:5417:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
-            int alt41=2;
-            int LA41_0 = input.LA(1);
-
-            if ( (LA41_0==76) ) {
-                alt41=1;
-            }
-            switch (alt41) {
-                case 1 :
-                    // InternalGeneratorDSL.g:5417:3: rule__PowerOfExpressionRule__Group_1__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__PowerOfExpressionRule__Group_1__0();
-
-                    state._fsp--;
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalGeneratorDSL.g:5442:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5442:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -17065,26 +17118,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalGeneratorDSL.g:5426:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
-    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0"
+    // InternalGeneratorDSL.g:5451:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5430:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalGeneratorDSL.g:5431:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalGeneratorDSL.g:5455:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalGeneratorDSL.g:5456:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
-            pushFollow(FOLLOW_44);
-            rule__PowerOfExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__ParanthesesRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1();
+            rule__ParanthesesRule__Group__1();
 
             state._fsp--;
 
@@ -17103,25 +17156,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:5438:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5463:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5442:1: ( ( '^' ) )
-            // InternalGeneratorDSL.g:5443:1: ( '^' )
+            // InternalGeneratorDSL.g:5467:1: ( ( '(' ) )
+            // InternalGeneratorDSL.g:5468:1: ( '(' )
             {
-            // InternalGeneratorDSL.g:5443:1: ( '^' )
-            // InternalGeneratorDSL.g:5444:2: '^'
+            // InternalGeneratorDSL.g:5468:1: ( '(' )
+            // InternalGeneratorDSL.g:5469:2: '('
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             match(input,76,FOLLOW_2); 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
 
             }
 
@@ -17140,21 +17193,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalGeneratorDSL.g:5453:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1"
+    // InternalGeneratorDSL.g:5478:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5457:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:5458:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalGeneratorDSL.g:5482:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalGeneratorDSL.g:5483:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
+            pushFollow(FOLLOW_54);
+            rule__ParanthesesRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1__Impl();
+            rule__ParanthesesRule__Group__2();
 
             state._fsp--;
 
@@ -17173,35 +17231,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ParanthesesRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:5464:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5490:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5468:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalGeneratorDSL.g:5469:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalGeneratorDSL.g:5494:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:5495:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:5469:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalGeneratorDSL.g:5470:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalGeneratorDSL.g:5495:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5496:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
-            // InternalGeneratorDSL.g:5471:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalGeneratorDSL.g:5471:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalGeneratorDSL.g:5497:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5497:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
+            rule__ParanthesesRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -17220,26 +17278,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalGeneratorDSL.g:5480:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2"
+    // InternalGeneratorDSL.g:5505:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5484:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalGeneratorDSL.g:5485:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalGeneratorDSL.g:5509:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalGeneratorDSL.g:5510:2: rule__ParanthesesRule__Group__2__Impl
             {
-            pushFollow(FOLLOW_44);
-            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
-
-            state._fsp--;
-
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1();
+            rule__ParanthesesRule__Group__2__Impl();
 
             state._fsp--;
 
@@ -17258,53 +17311,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__2"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5492:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
+    // InternalGeneratorDSL.g:5516:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5496:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalGeneratorDSL.g:5497:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalGeneratorDSL.g:5520:1: ( ( ')' ) )
+            // InternalGeneratorDSL.g:5521:1: ( ')' )
             {
-            // InternalGeneratorDSL.g:5497:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalGeneratorDSL.g:5498:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalGeneratorDSL.g:5521:1: ( ')' )
+            // InternalGeneratorDSL.g:5522:2: ')'
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
-            // InternalGeneratorDSL.g:5499:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
-            loop42:
-            do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
-
-                if ( ((LA42_0>=22 && LA42_0<=23)) ) {
-                    alt42=1;
-                }
-
-
-                switch (alt42) {
-            	case 1 :
-            	    // InternalGeneratorDSL.g:5499:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
-            	    {
-            	    pushFollow(FOLLOW_52);
-            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop42;
-                }
-            } while (true);
-
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+            match(input,77,FOLLOW_2); 
+             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
 
             }
 
@@ -17323,21 +17348,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalGeneratorDSL.g:5507:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0"
+    // InternalGeneratorDSL.g:5532:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5511:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5512:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5536:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalGeneratorDSL.g:5537:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
+            pushFollow(FOLLOW_55);
+            rule__CallRule__Group__0__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
+            rule__CallRule__Group__1();
 
             state._fsp--;
 
@@ -17356,35 +17386,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__0"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5518:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5544:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5522:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:5523:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5548:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5549:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5523:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalGeneratorDSL.g:5524:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5549:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalGeneratorDSL.g:5550:2: ( rule__CallRule__FunctionAssignment_0 )
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalGeneratorDSL.g:5525:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalGeneratorDSL.g:5525:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+            // InternalGeneratorDSL.g:5551:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalGeneratorDSL.g:5551:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
+            rule__CallRule__FunctionAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
 
             }
 
@@ -17403,26 +17433,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalGeneratorDSL.g:5534:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
-    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1"
+    // InternalGeneratorDSL.g:5559:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5538:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalGeneratorDSL.g:5539:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalGeneratorDSL.g:5563:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalGeneratorDSL.g:5564:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
-            pushFollow(FOLLOW_44);
-            rule__ParanthesesRule__Group__0__Impl();
+            pushFollow(FOLLOW_56);
+            rule__CallRule__Group__1__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__1();
+            rule__CallRule__Group__2();
 
             state._fsp--;
 
@@ -17441,25 +17471,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group__1"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5546:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
-    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5571:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5550:1: ( ( '(' ) )
-            // InternalGeneratorDSL.g:5551:1: ( '(' )
+            // InternalGeneratorDSL.g:5575:1: ( ( '(' ) )
+            // InternalGeneratorDSL.g:5576:1: ( '(' )
             {
-            // InternalGeneratorDSL.g:5551:1: ( '(' )
-            // InternalGeneratorDSL.g:5552:2: '('
+            // InternalGeneratorDSL.g:5576:1: ( '(' )
+            // InternalGeneratorDSL.g:5577:2: '('
             {
-             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
-            match(input,77,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
+             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+            match(input,76,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
 
             }
 
@@ -17478,26 +17508,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalGeneratorDSL.g:5561:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
-    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2"
+    // InternalGeneratorDSL.g:5586:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5565:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalGeneratorDSL.g:5566:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalGeneratorDSL.g:5590:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalGeneratorDSL.g:5591:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_56);
-            rule__ParanthesesRule__Group__1__Impl();
+            rule__CallRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2();
+            rule__CallRule__Group__3();
 
             state._fsp--;
 
@@ -17516,35 +17546,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__2"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5573:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2__Impl"
+    // InternalGeneratorDSL.g:5598:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5577:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:5578:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalGeneratorDSL.g:5602:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalGeneratorDSL.g:5603:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalGeneratorDSL.g:5578:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalGeneratorDSL.g:5579:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalGeneratorDSL.g:5603:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalGeneratorDSL.g:5604:2: ( rule__CallRule__Group_2__0 )?
             {
-             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalGeneratorDSL.g:5580:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalGeneratorDSL.g:5580:3: rule__ParanthesesRule__SubExpressionAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__SubExpressionAssignment_1();
+             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
+            // InternalGeneratorDSL.g:5605:2: ( rule__CallRule__Group_2__0 )?
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            state._fsp--;
+            if ( ((LA42_0>=RULE_QUOTED_ID && LA42_0<=RULE_DOUBLE)||LA42_0==15||(LA42_0>=22 && LA42_0<=23)||LA42_0==76||(LA42_0>=92 && LA42_0<=93)) ) {
+                alt42=1;
+            }
+            switch (alt42) {
+                case 1 :
+                    // InternalGeneratorDSL.g:5605:3: rule__CallRule__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CallRule__Group_2__0();
+
+                    state._fsp--;
 
 
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
 
             }
 
@@ -17563,21 +17604,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalGeneratorDSL.g:5588:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
-    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3"
+    // InternalGeneratorDSL.g:5613:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5592:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalGeneratorDSL.g:5593:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalGeneratorDSL.g:5617:1: ( rule__CallRule__Group__3__Impl )
+            // InternalGeneratorDSL.g:5618:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2__Impl();
+            rule__CallRule__Group__3__Impl();
 
             state._fsp--;
 
@@ -17596,25 +17637,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group__3"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:5599:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
-    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3__Impl"
+    // InternalGeneratorDSL.g:5624:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5603:1: ( ( ')' ) )
-            // InternalGeneratorDSL.g:5604:1: ( ')' )
+            // InternalGeneratorDSL.g:5628:1: ( ( ')' ) )
+            // InternalGeneratorDSL.g:5629:1: ( ')' )
             {
-            // InternalGeneratorDSL.g:5604:1: ( ')' )
-            // InternalGeneratorDSL.g:5605:2: ')'
+            // InternalGeneratorDSL.g:5629:1: ( ')' )
+            // InternalGeneratorDSL.g:5630:2: ')'
             {
-             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
-            match(input,78,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+            match(input,77,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
 
             }
 
@@ -17633,26 +17674,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
+    // $ANTLR end "rule__CallRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__0"
-    // InternalGeneratorDSL.g:5615:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
-    public final void rule__CallRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0"
+    // InternalGeneratorDSL.g:5640:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5619:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalGeneratorDSL.g:5620:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalGeneratorDSL.g:5644:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalGeneratorDSL.g:5645:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
-            pushFollow(FOLLOW_57);
-            rule__CallRule__Group__0__Impl();
+            pushFollow(FOLLOW_16);
+            rule__CallRule__Group_2__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__1();
+            rule__CallRule__Group_2__1();
 
             state._fsp--;
 
@@ -17671,35 +17712,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group_2__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5627:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
-    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
+    // InternalGeneratorDSL.g:5652:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5631:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5632:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalGeneratorDSL.g:5656:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalGeneratorDSL.g:5657:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalGeneratorDSL.g:5632:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalGeneratorDSL.g:5633:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalGeneratorDSL.g:5657:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalGeneratorDSL.g:5658:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
-            // InternalGeneratorDSL.g:5634:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalGeneratorDSL.g:5634:3: rule__CallRule__FunctionAssignment_0
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+            // InternalGeneratorDSL.g:5659:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalGeneratorDSL.g:5659:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__FunctionAssignment_0();
+            rule__CallRule__ParametersAssignment_2_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
 
             }
 
@@ -17718,26 +17759,124 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__1"
-    // InternalGeneratorDSL.g:5642:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
-    public final void rule__CallRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__1"
+    // InternalGeneratorDSL.g:5667:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5646:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalGeneratorDSL.g:5647:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalGeneratorDSL.g:5671:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalGeneratorDSL.g:5672:2: rule__CallRule__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_58);
-            rule__CallRule__Group__1__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
+    // InternalGeneratorDSL.g:5678:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:5682:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalGeneratorDSL.g:5683:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            {
+            // InternalGeneratorDSL.g:5683:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalGeneratorDSL.g:5684:2: ( rule__CallRule__Group_2_1__0 )*
+            {
+             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+            // InternalGeneratorDSL.g:5685:2: ( rule__CallRule__Group_2_1__0 )*
+            loop43:
+            do {
+                int alt43=2;
+                int LA43_0 = input.LA(1);
+
+                if ( (LA43_0==57) ) {
+                    alt43=1;
+                }
+
+
+                switch (alt43) {
+            	case 1 :
+            	    // InternalGeneratorDSL.g:5685:3: rule__CallRule__Group_2_1__0
+            	    {
+            	    pushFollow(FOLLOW_17);
+            	    rule__CallRule__Group_2_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop43;
+                }
+            } while (true);
+
+             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__0"
+    // InternalGeneratorDSL.g:5694:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:5698:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalGeneratorDSL.g:5699:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            {
+            pushFollow(FOLLOW_42);
+            rule__CallRule__Group_2_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__2();
+            rule__CallRule__Group_2_1__1();
 
             state._fsp--;
 
@@ -17756,25 +17895,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group_2_1__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5654:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
-    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
+    // InternalGeneratorDSL.g:5706:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5658:1: ( ( '(' ) )
-            // InternalGeneratorDSL.g:5659:1: ( '(' )
+            // InternalGeneratorDSL.g:5710:1: ( ( ',' ) )
+            // InternalGeneratorDSL.g:5711:1: ( ',' )
             {
-            // InternalGeneratorDSL.g:5659:1: ( '(' )
-            // InternalGeneratorDSL.g:5660:2: '('
+            // InternalGeneratorDSL.g:5711:1: ( ',' )
+            // InternalGeneratorDSL.g:5712:2: ','
             {
-             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
-            match(input,77,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+            match(input,57,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
 
             }
 
@@ -17793,30 +17932,72 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2"
-    // InternalGeneratorDSL.g:5669:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
-    public final void rule__CallRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__1"
+    // InternalGeneratorDSL.g:5721:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5673:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalGeneratorDSL.g:5674:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalGeneratorDSL.g:5725:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalGeneratorDSL.g:5726:2: rule__CallRule__Group_2_1__1__Impl
             {
-            pushFollow(FOLLOW_58);
-            rule__CallRule__Group__2__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2_1__1__Impl();
 
             state._fsp--;
 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2_1__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
+    // InternalGeneratorDSL.g:5732:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:5736:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalGeneratorDSL.g:5737:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            {
+            // InternalGeneratorDSL.g:5737:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalGeneratorDSL.g:5738:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            {
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+            // InternalGeneratorDSL.g:5739:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalGeneratorDSL.g:5739:3: rule__CallRule__ParametersAssignment_2_1_1
+            {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3();
+            rule__CallRule__ParametersAssignment_2_1_1();
 
             state._fsp--;
 
 
+            }
+
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+
+            }
+
+
             }
 
         }
@@ -17831,46 +18012,73 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:5681:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
-    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
+    // InternalGeneratorDSL.g:5748:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5685:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalGeneratorDSL.g:5686:1: ( ( rule__CallRule__Group_2__0 )? )
-            {
-            // InternalGeneratorDSL.g:5686:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalGeneratorDSL.g:5687:2: ( rule__CallRule__Group_2__0 )?
+            // InternalGeneratorDSL.g:5752:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalGeneratorDSL.g:5753:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
-            // InternalGeneratorDSL.g:5688:2: ( rule__CallRule__Group_2__0 )?
-            int alt43=2;
-            int LA43_0 = input.LA(1);
+            pushFollow(FOLLOW_57);
+            rule__DoubleLiteralRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__Group__1();
+
+            state._fsp--;
+
 
-            if ( ((LA43_0>=RULE_QUOTED_ID && LA43_0<=RULE_DOUBLE)||LA43_0==15||(LA43_0>=22 && LA43_0<=23)||LA43_0==77||LA43_0==79||(LA43_0>=91 && LA43_0<=92)) ) {
-                alt43=1;
             }
-            switch (alt43) {
-                case 1 :
-                    // InternalGeneratorDSL.g:5688:3: rule__CallRule__Group_2__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__CallRule__Group_2__0();
 
-                    state._fsp--;
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
 
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+
+
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5760:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:5764:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5765:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            {
+            // InternalGeneratorDSL.g:5765:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalGeneratorDSL.g:5766:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            {
+             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalGeneratorDSL.g:5767:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalGeneratorDSL.g:5767:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__LiteralAssignment_0();
+
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
+             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -17889,21 +18097,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__3"
-    // InternalGeneratorDSL.g:5696:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
-    public final void rule__CallRule__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
+    // InternalGeneratorDSL.g:5775:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5700:1: ( rule__CallRule__Group__3__Impl )
-            // InternalGeneratorDSL.g:5701:2: rule__CallRule__Group__3__Impl
+            // InternalGeneratorDSL.g:5779:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5780:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3__Impl();
+            rule__DoubleLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -17922,25 +18130,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:5707:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
-    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5786:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5711:1: ( ( ')' ) )
-            // InternalGeneratorDSL.g:5712:1: ( ')' )
+            // InternalGeneratorDSL.g:5790:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalGeneratorDSL.g:5791:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalGeneratorDSL.g:5712:1: ( ')' )
-            // InternalGeneratorDSL.g:5713:2: ')'
+            // InternalGeneratorDSL.g:5791:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalGeneratorDSL.g:5792:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
-            match(input,78,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalGeneratorDSL.g:5793:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( ((LA44_0>=27 && LA44_0<=46)) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // InternalGeneratorDSL.g:5793:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DoubleLiteralRule__FactorAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -17959,26 +18188,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalGeneratorDSL.g:5723:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
-    public final void rule__CallRule__Group_2__0() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
+    // InternalGeneratorDSL.g:5802:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5727:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalGeneratorDSL.g:5728:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
-            {
-            pushFollow(FOLLOW_16);
-            rule__CallRule__Group_2__0__Impl();
+            // InternalGeneratorDSL.g:5806:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalGeneratorDSL.g:5807:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            {
+            pushFollow(FOLLOW_57);
+            rule__IntegerLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1();
+            rule__IntegerLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -17997,35 +18226,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalGeneratorDSL.g:5735:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
-    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5814:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5739:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalGeneratorDSL.g:5740:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalGeneratorDSL.g:5818:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:5819:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:5740:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalGeneratorDSL.g:5741:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalGeneratorDSL.g:5819:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalGeneratorDSL.g:5820:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
-            // InternalGeneratorDSL.g:5742:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalGeneratorDSL.g:5742:3: rule__CallRule__ParametersAssignment_2_0
+             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalGeneratorDSL.g:5821:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalGeneratorDSL.g:5821:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_0();
+            rule__IntegerLiteralRule__LiteralAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -18044,21 +18273,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalGeneratorDSL.g:5750:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
-    public final void rule__CallRule__Group_2__1() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
+    // InternalGeneratorDSL.g:5829:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5754:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalGeneratorDSL.g:5755:2: rule__CallRule__Group_2__1__Impl
+            // InternalGeneratorDSL.g:5833:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5834:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1__Impl();
+            rule__IntegerLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -18077,53 +18306,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalGeneratorDSL.g:5761:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
-    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5840:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5765:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalGeneratorDSL.g:5766:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalGeneratorDSL.g:5844:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalGeneratorDSL.g:5845:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalGeneratorDSL.g:5766:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalGeneratorDSL.g:5767:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalGeneratorDSL.g:5845:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalGeneratorDSL.g:5846:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
-            // InternalGeneratorDSL.g:5768:2: ( rule__CallRule__Group_2_1__0 )*
-            loop44:
-            do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
-
-                if ( (LA44_0==57) ) {
-                    alt44=1;
-                }
-
+             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalGeneratorDSL.g:5847:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-                switch (alt44) {
-            	case 1 :
-            	    // InternalGeneratorDSL.g:5768:3: rule__CallRule__Group_2_1__0
-            	    {
-            	    pushFollow(FOLLOW_17);
-            	    rule__CallRule__Group_2_1__0();
+            if ( ((LA45_0>=27 && LA45_0<=46)) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalGeneratorDSL.g:5847:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__IntegerLiteralRule__FactorAssignment_1();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop44;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -18142,26 +18364,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalGeneratorDSL.g:5777:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
-    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
+    // InternalGeneratorDSL.g:5856:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5781:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalGeneratorDSL.g:5782:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalGeneratorDSL.g:5860:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalGeneratorDSL.g:5861:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_44);
-            rule__CallRule__Group_2_1__0__Impl();
+            pushFollow(FOLLOW_38);
+            rule__BooleanLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1();
+            rule__BooleanLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -18180,25 +18402,29 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalGeneratorDSL.g:5789:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
-    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5868:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5793:1: ( ( ',' ) )
-            // InternalGeneratorDSL.g:5794:1: ( ',' )
+            // InternalGeneratorDSL.g:5872:1: ( ( () ) )
+            // InternalGeneratorDSL.g:5873:1: ( () )
             {
-            // InternalGeneratorDSL.g:5794:1: ( ',' )
-            // InternalGeneratorDSL.g:5795:2: ','
+            // InternalGeneratorDSL.g:5873:1: ( () )
+            // InternalGeneratorDSL.g:5874:2: ()
             {
-             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
-            match(input,57,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+            // InternalGeneratorDSL.g:5875:2: ()
+            // InternalGeneratorDSL.g:5875:3: 
+            {
+            }
+
+             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
 
             }
 
@@ -18206,10 +18432,6 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
 
         }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -18217,21 +18439,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalGeneratorDSL.g:5804:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
-    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
+    // InternalGeneratorDSL.g:5883:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5808:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalGeneratorDSL.g:5809:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalGeneratorDSL.g:5887:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:5888:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1__Impl();
+            rule__BooleanLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -18250,35 +18472,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalGeneratorDSL.g:5815:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
-    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5894:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5819:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalGeneratorDSL.g:5820:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalGeneratorDSL.g:5898:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalGeneratorDSL.g:5899:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalGeneratorDSL.g:5820:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalGeneratorDSL.g:5821:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalGeneratorDSL.g:5899:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalGeneratorDSL.g:5900:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
-            // InternalGeneratorDSL.g:5822:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalGeneratorDSL.g:5822:3: rule__CallRule__ParametersAssignment_2_1_1
+             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+            // InternalGeneratorDSL.g:5901:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalGeneratorDSL.g:5901:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_1_1();
+            rule__BooleanLiteralRule__Alternatives_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
 
             }
 
@@ -18297,26 +18519,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalGeneratorDSL.g:5831:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalGeneratorDSL.g:5910:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5835:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalGeneratorDSL.g:5836:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
+            // InternalGeneratorDSL.g:5914:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalGeneratorDSL.g:5915:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_44);
-            rule__ValueReferenceRule__Group__0__Impl();
+            pushFollow(FOLLOW_58);
+            rule__TypeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
+            rule__TypeDefinitionRule__Group__1();
 
             state._fsp--;
 
@@ -18335,29 +18557,46 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5843:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalGeneratorDSL.g:5922:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5847:1: ( ( () ) )
-            // InternalGeneratorDSL.g:5848:1: ( () )
-            {
-            // InternalGeneratorDSL.g:5848:1: ( () )
-            // InternalGeneratorDSL.g:5849:2: ()
+            // InternalGeneratorDSL.g:5926:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalGeneratorDSL.g:5927:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-            // InternalGeneratorDSL.g:5850:2: ()
-            // InternalGeneratorDSL.g:5850:3: 
+            // InternalGeneratorDSL.g:5927:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalGeneratorDSL.g:5928:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+            // InternalGeneratorDSL.g:5929:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==94) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // InternalGeneratorDSL.g:5929:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
 
             }
 
@@ -18365,6 +18604,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -18372,21 +18615,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalGeneratorDSL.g:5858:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalGeneratorDSL.g:5937:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5862:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5863:2: rule__ValueReferenceRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5941:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalGeneratorDSL.g:5942:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
             {
+            pushFollow(FOLLOW_7);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__2();
 
             state._fsp--;
 
@@ -18405,25 +18653,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5869:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalGeneratorDSL.g:5949:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5873:1: ( ( 'value' ) )
-            // InternalGeneratorDSL.g:5874:1: ( 'value' )
+            // InternalGeneratorDSL.g:5953:1: ( ( 'type' ) )
+            // InternalGeneratorDSL.g:5954:1: ( 'type' )
             {
-            // InternalGeneratorDSL.g:5874:1: ( 'value' )
-            // InternalGeneratorDSL.g:5875:2: 'value'
+            // InternalGeneratorDSL.g:5954:1: ( 'type' )
+            // InternalGeneratorDSL.g:5955:2: 'type'
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-            match(input,79,FOLLOW_2); 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            match(input,78,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
 
             }
 
@@ -18442,26 +18690,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalGeneratorDSL.g:5885:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
-    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalGeneratorDSL.g:5964:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5889:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalGeneratorDSL.g:5890:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalGeneratorDSL.g:5968:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalGeneratorDSL.g:5969:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_59);
-            rule__DoubleLiteralRule__Group__0__Impl();
+            rule__TypeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__3();
 
             state._fsp--;
 
@@ -18480,35 +18728,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5897:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalGeneratorDSL.g:5976:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5901:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5902:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalGeneratorDSL.g:5980:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalGeneratorDSL.g:5981:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalGeneratorDSL.g:5902:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalGeneratorDSL.g:5903:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalGeneratorDSL.g:5981:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalGeneratorDSL.g:5982:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalGeneratorDSL.g:5904:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalGeneratorDSL.g:5904:3: rule__DoubleLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            // InternalGeneratorDSL.g:5983:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalGeneratorDSL.g:5983:3: rule__TypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__NameAssignment_2();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
 
             }
 
@@ -18527,21 +18775,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalGeneratorDSL.g:5912:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
-    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalGeneratorDSL.g:5991:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5916:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5917:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalGeneratorDSL.g:5995:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalGeneratorDSL.g:5996:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
             {
+            pushFollow(FOLLOW_59);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__4();
 
             state._fsp--;
 
@@ -18560,36 +18813,36 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5923:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalGeneratorDSL.g:6003:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5927:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalGeneratorDSL.g:5928:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalGeneratorDSL.g:6007:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalGeneratorDSL.g:6008:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalGeneratorDSL.g:5928:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalGeneratorDSL.g:5929:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalGeneratorDSL.g:6008:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalGeneratorDSL.g:6009:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalGeneratorDSL.g:5930:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            // InternalGeneratorDSL.g:6010:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( ((LA45_0>=27 && LA45_0<=46)) ) {
-                alt45=1;
+            if ( (LA47_0==79) ) {
+                alt47=1;
             }
-            switch (alt45) {
+            switch (alt47) {
                 case 1 :
-                    // InternalGeneratorDSL.g:5930:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalGeneratorDSL.g:6010:3: rule__TypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
-                    rule__DoubleLiteralRule__FactorAssignment_1();
+                    rule__TypeDefinitionRule__Group_3__0();
 
                     state._fsp--;
 
@@ -18599,7 +18852,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
 
             }
 
@@ -18618,26 +18871,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalGeneratorDSL.g:5939:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
-    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalGeneratorDSL.g:6018:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5943:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalGeneratorDSL.g:5944:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalGeneratorDSL.g:6022:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalGeneratorDSL.g:6023:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
             {
-            pushFollow(FOLLOW_59);
-            rule__IntegerLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_35);
+            rule__TypeDefinitionRule__Group__4__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__5();
 
             state._fsp--;
 
@@ -18656,35 +18909,128 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:5951:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalGeneratorDSL.g:6030:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5955:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:5956:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalGeneratorDSL.g:6034:1: ( ( '{' ) )
+            // InternalGeneratorDSL.g:6035:1: ( '{' )
             {
-            // InternalGeneratorDSL.g:5956:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalGeneratorDSL.g:5957:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalGeneratorDSL.g:6035:1: ( '{' )
+            // InternalGeneratorDSL.g:6036:2: '{'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalGeneratorDSL.g:5958:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalGeneratorDSL.g:5958:3: rule__IntegerLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,53,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalGeneratorDSL.g:6045:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:6049:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalGeneratorDSL.g:6050:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
             {
+            pushFollow(FOLLOW_35);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__Group__6();
 
             state._fsp--;
 
 
-            }
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalGeneratorDSL.g:6057:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:6061:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalGeneratorDSL.g:6062:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalGeneratorDSL.g:6062:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalGeneratorDSL.g:6063:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            // InternalGeneratorDSL.g:6064:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop48:
+            do {
+                int alt48=2;
+                int LA48_0 = input.LA(1);
+
+                if ( ((LA48_0>=RULE_QUOTED_ID && LA48_0<=RULE_ID)) ) {
+                    alt48=1;
+                }
+
+
+                switch (alt48) {
+            	case 1 :
+            	    // InternalGeneratorDSL.g:6064:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_36);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop48;
+                }
+            } while (true);
 
-             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
 
             }
 
@@ -18703,21 +19049,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalGeneratorDSL.g:5966:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
-    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalGeneratorDSL.g:6072:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5970:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:5971:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6076:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalGeneratorDSL.g:6077:2: rule__TypeDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__6__Impl();
 
             state._fsp--;
 
@@ -18736,46 +19082,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:5977:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalGeneratorDSL.g:6083:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5981:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalGeneratorDSL.g:5982:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalGeneratorDSL.g:6087:1: ( ( '}' ) )
+            // InternalGeneratorDSL.g:6088:1: ( '}' )
             {
-            // InternalGeneratorDSL.g:5982:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalGeneratorDSL.g:5983:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalGeneratorDSL.g:6088:1: ( '}' )
+            // InternalGeneratorDSL.g:6089:2: '}'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalGeneratorDSL.g:5984:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
-            int alt46=2;
-            int LA46_0 = input.LA(1);
-
-            if ( ((LA46_0>=27 && LA46_0<=46)) ) {
-                alt46=1;
-            }
-            switch (alt46) {
-                case 1 :
-                    // InternalGeneratorDSL.g:5984:3: rule__IntegerLiteralRule__FactorAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__IntegerLiteralRule__FactorAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,55,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
 
             }
 
@@ -18794,26 +19119,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalGeneratorDSL.g:5993:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
-    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalGeneratorDSL.g:6099:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:5997:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalGeneratorDSL.g:5998:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalGeneratorDSL.g:6103:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalGeneratorDSL.g:6104:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_38);
-            rule__BooleanLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_7);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group_3__1();
 
             state._fsp--;
 
@@ -18832,29 +19157,25 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6005:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
-    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalGeneratorDSL.g:6111:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6009:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6010:1: ( () )
-            {
-            // InternalGeneratorDSL.g:6010:1: ( () )
-            // InternalGeneratorDSL.g:6011:2: ()
+            // InternalGeneratorDSL.g:6115:1: ( ( 'extends' ) )
+            // InternalGeneratorDSL.g:6116:1: ( 'extends' )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
-            // InternalGeneratorDSL.g:6012:2: ()
-            // InternalGeneratorDSL.g:6012:3: 
+            // InternalGeneratorDSL.g:6116:1: ( 'extends' )
+            // InternalGeneratorDSL.g:6117:2: 'extends'
             {
-            }
-
-             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            match(input,79,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
 
             }
 
@@ -18862,6 +19183,10 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -18869,21 +19194,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalGeneratorDSL.g:6020:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
-    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalGeneratorDSL.g:6126:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6024:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6025:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6130:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalGeneratorDSL.g:6131:2: rule__TypeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group_3__1__Impl();
 
             state._fsp--;
 
@@ -18902,35 +19227,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6031:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
-    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalGeneratorDSL.g:6137:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6035:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalGeneratorDSL.g:6036:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalGeneratorDSL.g:6141:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalGeneratorDSL.g:6142:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
             {
-            // InternalGeneratorDSL.g:6036:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalGeneratorDSL.g:6037:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalGeneratorDSL.g:6142:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalGeneratorDSL.g:6143:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
-            // InternalGeneratorDSL.g:6038:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalGeneratorDSL.g:6038:3: rule__BooleanLiteralRule__Alternatives_1
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            // InternalGeneratorDSL.g:6144:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalGeneratorDSL.g:6144:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Alternatives_1();
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
 
             }
 
@@ -18949,18 +19274,18 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalGeneratorDSL.g:6047:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalGeneratorDSL.g:6153:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6051:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalGeneratorDSL.g:6052:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalGeneratorDSL.g:6157:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalGeneratorDSL.g:6158:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_60);
             rule__AttributeDefinitionRule__Group__0__Impl();
@@ -18991,21 +19316,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6059:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalGeneratorDSL.g:6165:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6063:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:6064:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalGeneratorDSL.g:6169:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:6170:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:6064:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalGeneratorDSL.g:6065:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalGeneratorDSL.g:6170:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalGeneratorDSL.g:6171:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
-            // InternalGeneratorDSL.g:6066:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalGeneratorDSL.g:6066:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalGeneratorDSL.g:6172:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalGeneratorDSL.g:6172:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -19038,14 +19363,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalGeneratorDSL.g:6074:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalGeneratorDSL.g:6180:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6078:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalGeneratorDSL.g:6079:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalGeneratorDSL.g:6184:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalGeneratorDSL.g:6185:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_61);
             rule__AttributeDefinitionRule__Group__1__Impl();
@@ -19076,17 +19401,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6086:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalGeneratorDSL.g:6192:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6090:1: ( ( ':' ) )
-            // InternalGeneratorDSL.g:6091:1: ( ':' )
+            // InternalGeneratorDSL.g:6196:1: ( ( ':' ) )
+            // InternalGeneratorDSL.g:6197:1: ( ':' )
             {
-            // InternalGeneratorDSL.g:6091:1: ( ':' )
-            // InternalGeneratorDSL.g:6092:2: ':'
+            // InternalGeneratorDSL.g:6197:1: ( ':' )
+            // InternalGeneratorDSL.g:6198:2: ':'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
             match(input,80,FOLLOW_2); 
@@ -19113,14 +19438,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalGeneratorDSL.g:6101:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalGeneratorDSL.g:6207:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6105:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalGeneratorDSL.g:6106:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalGeneratorDSL.g:6211:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalGeneratorDSL.g:6212:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_62);
             rule__AttributeDefinitionRule__Group__2__Impl();
@@ -19151,21 +19476,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:6113:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalGeneratorDSL.g:6219:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6117:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalGeneratorDSL.g:6118:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalGeneratorDSL.g:6223:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalGeneratorDSL.g:6224:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalGeneratorDSL.g:6118:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalGeneratorDSL.g:6119:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalGeneratorDSL.g:6224:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalGeneratorDSL.g:6225:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
-            // InternalGeneratorDSL.g:6120:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalGeneratorDSL.g:6120:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalGeneratorDSL.g:6226:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalGeneratorDSL.g:6226:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -19198,14 +19523,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalGeneratorDSL.g:6128:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalGeneratorDSL.g:6234:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6132:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalGeneratorDSL.g:6133:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalGeneratorDSL.g:6238:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalGeneratorDSL.g:6239:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_62);
             rule__AttributeDefinitionRule__Group__3__Impl();
@@ -19236,29 +19561,29 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:6140:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalGeneratorDSL.g:6246:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6144:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalGeneratorDSL.g:6145:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalGeneratorDSL.g:6250:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalGeneratorDSL.g:6251:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalGeneratorDSL.g:6145:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalGeneratorDSL.g:6146:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalGeneratorDSL.g:6251:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalGeneratorDSL.g:6252:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
-            // InternalGeneratorDSL.g:6147:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalGeneratorDSL.g:6253:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA47_0==70) ) {
-                alt47=1;
+            if ( (LA49_0==70) ) {
+                alt49=1;
             }
-            switch (alt47) {
+            switch (alt49) {
                 case 1 :
-                    // InternalGeneratorDSL.g:6147:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalGeneratorDSL.g:6253:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -19294,14 +19619,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalGeneratorDSL.g:6155:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalGeneratorDSL.g:6261:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6159:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalGeneratorDSL.g:6160:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalGeneratorDSL.g:6265:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalGeneratorDSL.g:6266:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -19327,17 +19652,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalGeneratorDSL.g:6166:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalGeneratorDSL.g:6272:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6170:1: ( ( ';' ) )
-            // InternalGeneratorDSL.g:6171:1: ( ';' )
+            // InternalGeneratorDSL.g:6276:1: ( ( ';' ) )
+            // InternalGeneratorDSL.g:6277:1: ( ';' )
             {
-            // InternalGeneratorDSL.g:6171:1: ( ';' )
-            // InternalGeneratorDSL.g:6172:2: ';'
+            // InternalGeneratorDSL.g:6277:1: ( ';' )
+            // InternalGeneratorDSL.g:6278:2: ';'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
             match(input,48,FOLLOW_2); 
@@ -19364,16 +19689,16 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalGeneratorDSL.g:6182:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalGeneratorDSL.g:6288:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6186:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalGeneratorDSL.g:6187:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalGeneratorDSL.g:6292:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalGeneratorDSL.g:6293:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_42);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
@@ -19402,17 +19727,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalGeneratorDSL.g:6194:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalGeneratorDSL.g:6300:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6198:1: ( ( ':=' ) )
-            // InternalGeneratorDSL.g:6199:1: ( ':=' )
+            // InternalGeneratorDSL.g:6304:1: ( ( ':=' ) )
+            // InternalGeneratorDSL.g:6305:1: ( ':=' )
             {
-            // InternalGeneratorDSL.g:6199:1: ( ':=' )
-            // InternalGeneratorDSL.g:6200:2: ':='
+            // InternalGeneratorDSL.g:6305:1: ( ':=' )
+            // InternalGeneratorDSL.g:6306:2: ':='
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
             match(input,70,FOLLOW_2); 
@@ -19439,14 +19764,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalGeneratorDSL.g:6209:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalGeneratorDSL.g:6315:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6213:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalGeneratorDSL.g:6214:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalGeneratorDSL.g:6319:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalGeneratorDSL.g:6320:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -19472,21 +19797,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalGeneratorDSL.g:6220:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalGeneratorDSL.g:6326:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6224:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalGeneratorDSL.g:6225:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalGeneratorDSL.g:6330:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalGeneratorDSL.g:6331:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalGeneratorDSL.g:6225:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalGeneratorDSL.g:6226:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalGeneratorDSL.g:6331:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalGeneratorDSL.g:6332:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
-            // InternalGeneratorDSL.g:6227:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalGeneratorDSL.g:6227:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalGeneratorDSL.g:6333:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalGeneratorDSL.g:6333:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -19519,14 +19844,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6236:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6342:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6240:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6241:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalGeneratorDSL.g:6346:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6347:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
             pushFollow(FOLLOW_63);
             rule__LiteralTypeRule__Group__0__Impl();
@@ -19557,21 +19882,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6248:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6354:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6252:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6253:1: ( () )
+            // InternalGeneratorDSL.g:6358:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6359:1: ( () )
             {
-            // InternalGeneratorDSL.g:6253:1: ( () )
-            // InternalGeneratorDSL.g:6254:2: ()
+            // InternalGeneratorDSL.g:6359:1: ( () )
+            // InternalGeneratorDSL.g:6360:2: ()
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
-            // InternalGeneratorDSL.g:6255:2: ()
-            // InternalGeneratorDSL.g:6255:3: 
+            // InternalGeneratorDSL.g:6361:2: ()
+            // InternalGeneratorDSL.g:6361:3: 
             {
             }
 
@@ -19594,14 +19919,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6263:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6369:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6267:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6268:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6373:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6374:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -19627,17 +19952,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6274:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalGeneratorDSL.g:6380:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6278:1: ( ( 'literal' ) )
-            // InternalGeneratorDSL.g:6279:1: ( 'literal' )
+            // InternalGeneratorDSL.g:6384:1: ( ( 'literal' ) )
+            // InternalGeneratorDSL.g:6385:1: ( 'literal' )
             {
-            // InternalGeneratorDSL.g:6279:1: ( 'literal' )
-            // InternalGeneratorDSL.g:6280:2: 'literal'
+            // InternalGeneratorDSL.g:6385:1: ( 'literal' )
+            // InternalGeneratorDSL.g:6386:2: 'literal'
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
             match(input,81,FOLLOW_2); 
@@ -19664,14 +19989,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6290:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6396:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6294:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6295:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalGeneratorDSL.g:6400:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6401:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
             pushFollow(FOLLOW_64);
             rule__InstanceTypeRule__Group__0__Impl();
@@ -19702,21 +20027,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6302:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6408:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6306:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6307:1: ( () )
+            // InternalGeneratorDSL.g:6412:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6413:1: ( () )
             {
-            // InternalGeneratorDSL.g:6307:1: ( () )
-            // InternalGeneratorDSL.g:6308:2: ()
+            // InternalGeneratorDSL.g:6413:1: ( () )
+            // InternalGeneratorDSL.g:6414:2: ()
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
-            // InternalGeneratorDSL.g:6309:2: ()
-            // InternalGeneratorDSL.g:6309:3: 
+            // InternalGeneratorDSL.g:6415:2: ()
+            // InternalGeneratorDSL.g:6415:3: 
             {
             }
 
@@ -19739,14 +20064,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6317:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalGeneratorDSL.g:6423:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6321:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalGeneratorDSL.g:6322:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalGeneratorDSL.g:6427:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalGeneratorDSL.g:6428:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -19777,17 +20102,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6329:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalGeneratorDSL.g:6435:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6333:1: ( ( 'instance' ) )
-            // InternalGeneratorDSL.g:6334:1: ( 'instance' )
+            // InternalGeneratorDSL.g:6439:1: ( ( 'instance' ) )
+            // InternalGeneratorDSL.g:6440:1: ( 'instance' )
             {
-            // InternalGeneratorDSL.g:6334:1: ( 'instance' )
-            // InternalGeneratorDSL.g:6335:2: 'instance'
+            // InternalGeneratorDSL.g:6440:1: ( 'instance' )
+            // InternalGeneratorDSL.g:6441:2: 'instance'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
             match(input,82,FOLLOW_2); 
@@ -19814,14 +20139,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalGeneratorDSL.g:6344:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalGeneratorDSL.g:6450:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6348:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalGeneratorDSL.g:6349:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalGeneratorDSL.g:6454:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalGeneratorDSL.g:6455:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
             pushFollow(FOLLOW_65);
             rule__InstanceTypeRule__Group__2__Impl();
@@ -19852,21 +20177,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalGeneratorDSL.g:6356:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalGeneratorDSL.g:6462:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6360:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalGeneratorDSL.g:6361:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalGeneratorDSL.g:6466:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalGeneratorDSL.g:6467:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalGeneratorDSL.g:6361:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalGeneratorDSL.g:6362:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalGeneratorDSL.g:6467:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalGeneratorDSL.g:6468:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
-            // InternalGeneratorDSL.g:6363:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalGeneratorDSL.g:6363:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalGeneratorDSL.g:6469:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalGeneratorDSL.g:6469:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -19899,14 +20224,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalGeneratorDSL.g:6371:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalGeneratorDSL.g:6477:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6375:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalGeneratorDSL.g:6376:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalGeneratorDSL.g:6481:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalGeneratorDSL.g:6482:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -19932,33 +20257,33 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalGeneratorDSL.g:6382:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalGeneratorDSL.g:6488:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6386:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalGeneratorDSL.g:6387:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalGeneratorDSL.g:6492:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalGeneratorDSL.g:6493:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalGeneratorDSL.g:6387:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalGeneratorDSL.g:6388:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalGeneratorDSL.g:6493:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalGeneratorDSL.g:6494:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
-            // InternalGeneratorDSL.g:6389:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop48:
+            // InternalGeneratorDSL.g:6495:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop50:
             do {
-                int alt48=2;
-                int LA48_0 = input.LA(1);
+                int alt50=2;
+                int LA50_0 = input.LA(1);
 
-                if ( (LA48_0==83) ) {
-                    alt48=1;
+                if ( (LA50_0==83) ) {
+                    alt50=1;
                 }
 
 
-                switch (alt48) {
+                switch (alt50) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:6389:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalGeneratorDSL.g:6495:3: rule__InstanceTypeRule__Group_3__0
             	    {
             	    pushFollow(FOLLOW_66);
             	    rule__InstanceTypeRule__Group_3__0();
@@ -19970,7 +20295,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             	    break;
 
             	default :
-            	    break loop48;
+            	    break loop50;
                 }
             } while (true);
 
@@ -19997,14 +20322,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalGeneratorDSL.g:6398:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalGeneratorDSL.g:6504:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6402:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalGeneratorDSL.g:6403:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalGeneratorDSL.g:6508:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalGeneratorDSL.g:6509:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_7);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -20035,17 +20360,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalGeneratorDSL.g:6410:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalGeneratorDSL.g:6516:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6414:1: ( ( '|' ) )
-            // InternalGeneratorDSL.g:6415:1: ( '|' )
+            // InternalGeneratorDSL.g:6520:1: ( ( '|' ) )
+            // InternalGeneratorDSL.g:6521:1: ( '|' )
             {
-            // InternalGeneratorDSL.g:6415:1: ( '|' )
-            // InternalGeneratorDSL.g:6416:2: '|'
+            // InternalGeneratorDSL.g:6521:1: ( '|' )
+            // InternalGeneratorDSL.g:6522:2: '|'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
             match(input,83,FOLLOW_2); 
@@ -20072,14 +20397,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalGeneratorDSL.g:6425:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalGeneratorDSL.g:6531:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6429:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalGeneratorDSL.g:6430:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalGeneratorDSL.g:6535:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalGeneratorDSL.g:6536:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -20105,21 +20430,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalGeneratorDSL.g:6436:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalGeneratorDSL.g:6542:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6440:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalGeneratorDSL.g:6441:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalGeneratorDSL.g:6546:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalGeneratorDSL.g:6547:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalGeneratorDSL.g:6441:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalGeneratorDSL.g:6442:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalGeneratorDSL.g:6547:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalGeneratorDSL.g:6548:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
-            // InternalGeneratorDSL.g:6443:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalGeneratorDSL.g:6443:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalGeneratorDSL.g:6549:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalGeneratorDSL.g:6549:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -20152,14 +20477,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6452:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6558:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6456:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6457:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalGeneratorDSL.g:6562:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6563:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
             pushFollow(FOLLOW_67);
             rule__StringTypeRule__Group__0__Impl();
@@ -20190,21 +20515,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6464:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6570:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6468:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6469:1: ( () )
+            // InternalGeneratorDSL.g:6574:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6575:1: ( () )
             {
-            // InternalGeneratorDSL.g:6469:1: ( () )
-            // InternalGeneratorDSL.g:6470:2: ()
+            // InternalGeneratorDSL.g:6575:1: ( () )
+            // InternalGeneratorDSL.g:6576:2: ()
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
-            // InternalGeneratorDSL.g:6471:2: ()
-            // InternalGeneratorDSL.g:6471:3: 
+            // InternalGeneratorDSL.g:6577:2: ()
+            // InternalGeneratorDSL.g:6577:3: 
             {
             }
 
@@ -20227,14 +20552,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6479:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6585:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6483:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6484:2: rule__StringTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6589:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6590:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -20260,17 +20585,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6490:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalGeneratorDSL.g:6596:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6494:1: ( ( 'string' ) )
-            // InternalGeneratorDSL.g:6495:1: ( 'string' )
+            // InternalGeneratorDSL.g:6600:1: ( ( 'string' ) )
+            // InternalGeneratorDSL.g:6601:1: ( 'string' )
             {
-            // InternalGeneratorDSL.g:6495:1: ( 'string' )
-            // InternalGeneratorDSL.g:6496:2: 'string'
+            // InternalGeneratorDSL.g:6601:1: ( 'string' )
+            // InternalGeneratorDSL.g:6602:2: 'string'
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
             match(input,84,FOLLOW_2); 
@@ -20297,14 +20622,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6506:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6612:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6510:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6511:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalGeneratorDSL.g:6616:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6617:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
             pushFollow(FOLLOW_68);
             rule__ExpressionTypeRule__Group__0__Impl();
@@ -20335,21 +20660,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6518:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6624:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6522:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6523:1: ( () )
+            // InternalGeneratorDSL.g:6628:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6629:1: ( () )
             {
-            // InternalGeneratorDSL.g:6523:1: ( () )
-            // InternalGeneratorDSL.g:6524:2: ()
+            // InternalGeneratorDSL.g:6629:1: ( () )
+            // InternalGeneratorDSL.g:6630:2: ()
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
-            // InternalGeneratorDSL.g:6525:2: ()
-            // InternalGeneratorDSL.g:6525:3: 
+            // InternalGeneratorDSL.g:6631:2: ()
+            // InternalGeneratorDSL.g:6631:3: 
             {
             }
 
@@ -20372,14 +20697,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6533:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6639:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6537:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6538:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6643:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6644:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -20405,17 +20730,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6544:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalGeneratorDSL.g:6650:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6548:1: ( ( 'expression' ) )
-            // InternalGeneratorDSL.g:6549:1: ( 'expression' )
+            // InternalGeneratorDSL.g:6654:1: ( ( 'expression' ) )
+            // InternalGeneratorDSL.g:6655:1: ( 'expression' )
             {
-            // InternalGeneratorDSL.g:6549:1: ( 'expression' )
-            // InternalGeneratorDSL.g:6550:2: 'expression'
+            // InternalGeneratorDSL.g:6655:1: ( 'expression' )
+            // InternalGeneratorDSL.g:6656:2: 'expression'
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
             match(input,85,FOLLOW_2); 
@@ -20442,14 +20767,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6560:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6666:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6564:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6565:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalGeneratorDSL.g:6670:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6671:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
             pushFollow(FOLLOW_69);
             rule__IntTypeRule__Group__0__Impl();
@@ -20480,21 +20805,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6572:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6678:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6576:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6577:1: ( () )
+            // InternalGeneratorDSL.g:6682:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6683:1: ( () )
             {
-            // InternalGeneratorDSL.g:6577:1: ( () )
-            // InternalGeneratorDSL.g:6578:2: ()
+            // InternalGeneratorDSL.g:6683:1: ( () )
+            // InternalGeneratorDSL.g:6684:2: ()
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
-            // InternalGeneratorDSL.g:6579:2: ()
-            // InternalGeneratorDSL.g:6579:3: 
+            // InternalGeneratorDSL.g:6685:2: ()
+            // InternalGeneratorDSL.g:6685:3: 
             {
             }
 
@@ -20517,14 +20842,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6587:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6693:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6591:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6592:2: rule__IntTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6697:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6698:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -20550,17 +20875,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6598:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalGeneratorDSL.g:6704:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6602:1: ( ( 'int' ) )
-            // InternalGeneratorDSL.g:6603:1: ( 'int' )
+            // InternalGeneratorDSL.g:6708:1: ( ( 'int' ) )
+            // InternalGeneratorDSL.g:6709:1: ( 'int' )
             {
-            // InternalGeneratorDSL.g:6603:1: ( 'int' )
-            // InternalGeneratorDSL.g:6604:2: 'int'
+            // InternalGeneratorDSL.g:6709:1: ( 'int' )
+            // InternalGeneratorDSL.g:6710:2: 'int'
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
             match(input,86,FOLLOW_2); 
@@ -20587,14 +20912,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6614:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6720:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6618:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6619:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalGeneratorDSL.g:6724:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6725:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
             pushFollow(FOLLOW_70);
             rule__FloatTypeRule__Group__0__Impl();
@@ -20625,21 +20950,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6626:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6732:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6630:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6631:1: ( () )
+            // InternalGeneratorDSL.g:6736:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6737:1: ( () )
             {
-            // InternalGeneratorDSL.g:6631:1: ( () )
-            // InternalGeneratorDSL.g:6632:2: ()
+            // InternalGeneratorDSL.g:6737:1: ( () )
+            // InternalGeneratorDSL.g:6738:2: ()
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
-            // InternalGeneratorDSL.g:6633:2: ()
-            // InternalGeneratorDSL.g:6633:3: 
+            // InternalGeneratorDSL.g:6739:2: ()
+            // InternalGeneratorDSL.g:6739:3: 
             {
             }
 
@@ -20662,14 +20987,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6641:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6747:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6645:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6646:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6751:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6752:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -20695,17 +21020,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6652:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalGeneratorDSL.g:6758:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6656:1: ( ( 'float' ) )
-            // InternalGeneratorDSL.g:6657:1: ( 'float' )
+            // InternalGeneratorDSL.g:6762:1: ( ( 'float' ) )
+            // InternalGeneratorDSL.g:6763:1: ( 'float' )
             {
-            // InternalGeneratorDSL.g:6657:1: ( 'float' )
-            // InternalGeneratorDSL.g:6658:2: 'float'
+            // InternalGeneratorDSL.g:6763:1: ( 'float' )
+            // InternalGeneratorDSL.g:6764:2: 'float'
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
             match(input,87,FOLLOW_2); 
@@ -20732,14 +21057,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6668:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6774:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6672:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6673:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalGeneratorDSL.g:6778:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6779:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
             pushFollow(FOLLOW_71);
             rule__BooleanTypeRule__Group__0__Impl();
@@ -20770,21 +21095,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6680:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6786:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6684:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6685:1: ( () )
+            // InternalGeneratorDSL.g:6790:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6791:1: ( () )
             {
-            // InternalGeneratorDSL.g:6685:1: ( () )
-            // InternalGeneratorDSL.g:6686:2: ()
+            // InternalGeneratorDSL.g:6791:1: ( () )
+            // InternalGeneratorDSL.g:6792:2: ()
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
-            // InternalGeneratorDSL.g:6687:2: ()
-            // InternalGeneratorDSL.g:6687:3: 
+            // InternalGeneratorDSL.g:6793:2: ()
+            // InternalGeneratorDSL.g:6793:3: 
             {
             }
 
@@ -20807,14 +21132,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6695:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6801:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6699:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6700:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6805:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6806:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -20840,17 +21165,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6706:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalGeneratorDSL.g:6812:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6710:1: ( ( 'boolean' ) )
-            // InternalGeneratorDSL.g:6711:1: ( 'boolean' )
+            // InternalGeneratorDSL.g:6816:1: ( ( 'boolean' ) )
+            // InternalGeneratorDSL.g:6817:1: ( 'boolean' )
             {
-            // InternalGeneratorDSL.g:6711:1: ( 'boolean' )
-            // InternalGeneratorDSL.g:6712:2: 'boolean'
+            // InternalGeneratorDSL.g:6817:1: ( 'boolean' )
+            // InternalGeneratorDSL.g:6818:2: 'boolean'
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
             match(input,88,FOLLOW_2); 
@@ -20877,14 +21202,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6722:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6828:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6726:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6727:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalGeneratorDSL.g:6832:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6833:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
             pushFollow(FOLLOW_72);
             rule__VoidTypeRule__Group__0__Impl();
@@ -20915,21 +21240,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6734:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6840:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6738:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6739:1: ( () )
+            // InternalGeneratorDSL.g:6844:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6845:1: ( () )
             {
-            // InternalGeneratorDSL.g:6739:1: ( () )
-            // InternalGeneratorDSL.g:6740:2: ()
+            // InternalGeneratorDSL.g:6845:1: ( () )
+            // InternalGeneratorDSL.g:6846:2: ()
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
-            // InternalGeneratorDSL.g:6741:2: ()
-            // InternalGeneratorDSL.g:6741:3: 
+            // InternalGeneratorDSL.g:6847:2: ()
+            // InternalGeneratorDSL.g:6847:3: 
             {
             }
 
@@ -20952,14 +21277,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6749:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6855:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6753:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6754:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6859:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6860:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -20985,17 +21310,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6760:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalGeneratorDSL.g:6866:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6764:1: ( ( 'void' ) )
-            // InternalGeneratorDSL.g:6765:1: ( 'void' )
+            // InternalGeneratorDSL.g:6870:1: ( ( 'void' ) )
+            // InternalGeneratorDSL.g:6871:1: ( 'void' )
             {
-            // InternalGeneratorDSL.g:6765:1: ( 'void' )
-            // InternalGeneratorDSL.g:6766:2: 'void'
+            // InternalGeneratorDSL.g:6871:1: ( 'void' )
+            // InternalGeneratorDSL.g:6872:2: 'void'
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
             match(input,89,FOLLOW_2); 
@@ -21022,14 +21347,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6776:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6882:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6780:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6781:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalGeneratorDSL.g:6886:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6887:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
             pushFollow(FOLLOW_61);
             rule__DataTypeRule__Group__0__Impl();
@@ -21060,21 +21385,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6788:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalGeneratorDSL.g:6894:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6792:1: ( ( () ) )
-            // InternalGeneratorDSL.g:6793:1: ( () )
+            // InternalGeneratorDSL.g:6898:1: ( ( () ) )
+            // InternalGeneratorDSL.g:6899:1: ( () )
             {
-            // InternalGeneratorDSL.g:6793:1: ( () )
-            // InternalGeneratorDSL.g:6794:2: ()
+            // InternalGeneratorDSL.g:6899:1: ( () )
+            // InternalGeneratorDSL.g:6900:2: ()
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
-            // InternalGeneratorDSL.g:6795:2: ()
-            // InternalGeneratorDSL.g:6795:3: 
+            // InternalGeneratorDSL.g:6901:2: ()
+            // InternalGeneratorDSL.g:6901:3: 
             {
             }
 
@@ -21097,14 +21422,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6803:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6909:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6807:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6808:2: rule__DataTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6913:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6914:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -21130,17 +21455,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6814:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalGeneratorDSL.g:6920:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6818:1: ( ( 'data' ) )
-            // InternalGeneratorDSL.g:6819:1: ( 'data' )
+            // InternalGeneratorDSL.g:6924:1: ( ( 'data' ) )
+            // InternalGeneratorDSL.g:6925:1: ( 'data' )
             {
-            // InternalGeneratorDSL.g:6819:1: ( 'data' )
-            // InternalGeneratorDSL.g:6820:2: 'data'
+            // InternalGeneratorDSL.g:6925:1: ( 'data' )
+            // InternalGeneratorDSL.g:6926:2: 'data'
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
             match(input,71,FOLLOW_2); 
@@ -21167,14 +21492,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalGeneratorDSL.g:6830:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalGeneratorDSL.g:6936:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6834:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalGeneratorDSL.g:6835:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalGeneratorDSL.g:6940:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalGeneratorDSL.g:6941:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
             pushFollow(FOLLOW_61);
             rule__ArrayTypeRule__Group__0__Impl();
@@ -21205,17 +21530,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6842:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalGeneratorDSL.g:6948:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6846:1: ( ( 'array' ) )
-            // InternalGeneratorDSL.g:6847:1: ( 'array' )
+            // InternalGeneratorDSL.g:6952:1: ( ( 'array' ) )
+            // InternalGeneratorDSL.g:6953:1: ( 'array' )
             {
-            // InternalGeneratorDSL.g:6847:1: ( 'array' )
-            // InternalGeneratorDSL.g:6848:2: 'array'
+            // InternalGeneratorDSL.g:6953:1: ( 'array' )
+            // InternalGeneratorDSL.g:6954:2: 'array'
             {
              before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
             match(input,90,FOLLOW_2); 
@@ -21242,14 +21567,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalGeneratorDSL.g:6857:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:6963:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6861:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6862:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalGeneratorDSL.g:6967:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:6968:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -21275,21 +21600,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6868:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:6974:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6872:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:6873:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalGeneratorDSL.g:6978:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:6979:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:6873:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalGeneratorDSL.g:6874:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalGeneratorDSL.g:6979:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalGeneratorDSL.g:6980:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
-            // InternalGeneratorDSL.g:6875:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalGeneratorDSL.g:6875:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalGeneratorDSL.g:6981:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalGeneratorDSL.g:6981:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -21322,14 +21647,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalGeneratorDSL.g:6884:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalGeneratorDSL.g:6990:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6888:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalGeneratorDSL.g:6889:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalGeneratorDSL.g:6994:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalGeneratorDSL.g:6995:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__ParameterRule__Group__0__Impl();
@@ -21360,21 +21685,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalGeneratorDSL.g:6896:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalGeneratorDSL.g:7002:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6900:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalGeneratorDSL.g:6901:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalGeneratorDSL.g:7006:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalGeneratorDSL.g:7007:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalGeneratorDSL.g:6901:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalGeneratorDSL.g:6902:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalGeneratorDSL.g:7007:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalGeneratorDSL.g:7008:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
              before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
-            // InternalGeneratorDSL.g:6903:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalGeneratorDSL.g:6903:3: rule__ParameterRule__TypeAssignment_0
+            // InternalGeneratorDSL.g:7009:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalGeneratorDSL.g:7009:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -21407,14 +21732,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalGeneratorDSL.g:6911:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalGeneratorDSL.g:7017:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6915:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalGeneratorDSL.g:6916:2: rule__ParameterRule__Group__1__Impl
+            // InternalGeneratorDSL.g:7021:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalGeneratorDSL.g:7022:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -21440,21 +21765,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalGeneratorDSL.g:6922:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalGeneratorDSL.g:7028:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6926:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalGeneratorDSL.g:6927:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:7032:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalGeneratorDSL.g:7033:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalGeneratorDSL.g:6927:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalGeneratorDSL.g:6928:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:7033:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalGeneratorDSL.g:7034:2: ( rule__ParameterRule__NameAssignment_1 )
             {
              before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
-            // InternalGeneratorDSL.g:6929:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalGeneratorDSL.g:6929:3: rule__ParameterRule__NameAssignment_1
+            // InternalGeneratorDSL.g:7035:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalGeneratorDSL.g:7035:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -21487,16 +21812,16 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalGeneratorDSL.g:6938:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalGeneratorDSL.g:7044: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 {
-            // InternalGeneratorDSL.g:6942:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalGeneratorDSL.g:6943:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalGeneratorDSL.g:7048:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalGeneratorDSL.g:7049:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_73);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -21525,17 +21850,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalGeneratorDSL.g:6950:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalGeneratorDSL.g:7056:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6954:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:6955:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7060:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7061:1: ( ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:6955:1: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:6956:2: ruleStringOrId
+            // InternalGeneratorDSL.g:7061:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7062:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -21566,14 +21891,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalGeneratorDSL.g:6965:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalGeneratorDSL.g:7071:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:6969:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalGeneratorDSL.g:6970:2: rule__QualifiedName__Group__1__Impl
+            // InternalGeneratorDSL.g:7075:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalGeneratorDSL.g:7076:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -21599,35 +21924,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalGeneratorDSL.g:6976:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalGeneratorDSL.g:7082: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 {
-            // InternalGeneratorDSL.g:6980:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalGeneratorDSL.g:6981:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalGeneratorDSL.g:7086:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalGeneratorDSL.g:7087:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalGeneratorDSL.g:6981:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalGeneratorDSL.g:6982:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalGeneratorDSL.g:7087:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalGeneratorDSL.g:7088:2: ( rule__QualifiedName__Group_1__0 )*
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
-            // InternalGeneratorDSL.g:6983:2: ( rule__QualifiedName__Group_1__0 )*
-            loop49:
+            // InternalGeneratorDSL.g:7089:2: ( rule__QualifiedName__Group_1__0 )*
+            loop51:
             do {
-                int alt49=2;
-                int LA49_0 = input.LA(1);
+                int alt51=2;
+                int LA51_0 = input.LA(1);
 
-                if ( (LA49_0==72) ) {
-                    alt49=1;
+                if ( (LA51_0==91) ) {
+                    alt51=1;
                 }
 
 
-                switch (alt49) {
+                switch (alt51) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:6983:3: rule__QualifiedName__Group_1__0
+            	    // InternalGeneratorDSL.g:7089:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_41);
+            	    pushFollow(FOLLOW_74);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -21637,7 +21962,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
             	    break;
 
             	default :
-            	    break loop49;
+            	    break loop51;
                 }
             } while (true);
 
@@ -21664,14 +21989,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalGeneratorDSL.g:6992:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalGeneratorDSL.g:7098: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 {
-            // InternalGeneratorDSL.g:6996:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalGeneratorDSL.g:6997:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalGeneratorDSL.g:7102:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalGeneratorDSL.g:7103:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_7);
             rule__QualifiedName__Group_1__0__Impl();
@@ -21702,20 +22027,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalGeneratorDSL.g:7004:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalGeneratorDSL.g:7110:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7008:1: ( ( '.' ) )
-            // InternalGeneratorDSL.g:7009:1: ( '.' )
+            // InternalGeneratorDSL.g:7114:1: ( ( '.' ) )
+            // InternalGeneratorDSL.g:7115:1: ( '.' )
             {
-            // InternalGeneratorDSL.g:7009:1: ( '.' )
-            // InternalGeneratorDSL.g:7010:2: '.'
+            // InternalGeneratorDSL.g:7115:1: ( '.' )
+            // InternalGeneratorDSL.g:7116:2: '.'
             {
              before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
-            match(input,72,FOLLOW_2); 
+            match(input,91,FOLLOW_2); 
              after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
 
             }
@@ -21739,14 +22064,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalGeneratorDSL.g:7019:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalGeneratorDSL.g:7125: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 {
-            // InternalGeneratorDSL.g:7023:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalGeneratorDSL.g:7024:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalGeneratorDSL.g:7129:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalGeneratorDSL.g:7130:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -21772,17 +22097,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalGeneratorDSL.g:7030:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalGeneratorDSL.g:7136:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7034:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:7035:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7140:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7141:1: ( ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:7035:1: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:7036:2: ruleStringOrId
+            // InternalGeneratorDSL.g:7141:1: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7142:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
@@ -21813,17 +22138,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__ImportsAssignment_0"
-    // InternalGeneratorDSL.g:7046:1: rule__ConfigurationRule__ImportsAssignment_0 : ( ruleImportRule ) ;
+    // InternalGeneratorDSL.g:7152:1: rule__ConfigurationRule__ImportsAssignment_0 : ( ruleImportRule ) ;
     public final void rule__ConfigurationRule__ImportsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7050:1: ( ( ruleImportRule ) )
-            // InternalGeneratorDSL.g:7051:2: ( ruleImportRule )
+            // InternalGeneratorDSL.g:7156:1: ( ( ruleImportRule ) )
+            // InternalGeneratorDSL.g:7157:2: ( ruleImportRule )
             {
-            // InternalGeneratorDSL.g:7051:2: ( ruleImportRule )
-            // InternalGeneratorDSL.g:7052:3: ruleImportRule
+            // InternalGeneratorDSL.g:7157:2: ( ruleImportRule )
+            // InternalGeneratorDSL.g:7158:3: ruleImportRule
             {
              before(grammarAccess.getConfigurationRuleAccess().getImportsImportRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -21854,17 +22179,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__PipelinesAssignment_1"
-    // InternalGeneratorDSL.g:7061:1: rule__ConfigurationRule__PipelinesAssignment_1 : ( rulePipelineDefinitionRule ) ;
+    // InternalGeneratorDSL.g:7167:1: rule__ConfigurationRule__PipelinesAssignment_1 : ( rulePipelineDefinitionRule ) ;
     public final void rule__ConfigurationRule__PipelinesAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7065:1: ( ( rulePipelineDefinitionRule ) )
-            // InternalGeneratorDSL.g:7066:2: ( rulePipelineDefinitionRule )
+            // InternalGeneratorDSL.g:7171:1: ( ( rulePipelineDefinitionRule ) )
+            // InternalGeneratorDSL.g:7172:2: ( rulePipelineDefinitionRule )
             {
-            // InternalGeneratorDSL.g:7066:2: ( rulePipelineDefinitionRule )
-            // InternalGeneratorDSL.g:7067:3: rulePipelineDefinitionRule
+            // InternalGeneratorDSL.g:7172:2: ( rulePipelineDefinitionRule )
+            // InternalGeneratorDSL.g:7173:3: rulePipelineDefinitionRule
             {
              before(grammarAccess.getConfigurationRuleAccess().getPipelinesPipelineDefinitionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -21895,17 +22220,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ConfigurationRule__StatementsAssignment_2"
-    // InternalGeneratorDSL.g:7076:1: rule__ConfigurationRule__StatementsAssignment_2 : ( ruleStatementRule ) ;
+    // InternalGeneratorDSL.g:7182:1: rule__ConfigurationRule__StatementsAssignment_2 : ( ruleStatementRule ) ;
     public final void rule__ConfigurationRule__StatementsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7080:1: ( ( ruleStatementRule ) )
-            // InternalGeneratorDSL.g:7081:2: ( ruleStatementRule )
+            // InternalGeneratorDSL.g:7186:1: ( ( ruleStatementRule ) )
+            // InternalGeneratorDSL.g:7187:2: ( ruleStatementRule )
             {
-            // InternalGeneratorDSL.g:7081:2: ( ruleStatementRule )
-            // InternalGeneratorDSL.g:7082:3: ruleStatementRule
+            // InternalGeneratorDSL.g:7187:2: ( ruleStatementRule )
+            // InternalGeneratorDSL.g:7188:3: ruleStatementRule
             {
              before(grammarAccess.getConfigurationRuleAccess().getStatementsStatementRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -21936,17 +22261,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ImportRule__ImportedNamespaceAssignment_1"
-    // InternalGeneratorDSL.g:7091:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedName ) ;
+    // InternalGeneratorDSL.g:7197:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedName ) ;
     public final void rule__ImportRule__ImportedNamespaceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7095:1: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:7096:2: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:7201:1: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:7202:2: ( ruleQualifiedName )
             {
-            // InternalGeneratorDSL.g:7096:2: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:7097:3: ruleQualifiedName
+            // InternalGeneratorDSL.g:7202:2: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:7203:3: ruleQualifiedName
             {
              before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -21977,17 +22302,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__NameAssignment_1"
-    // InternalGeneratorDSL.g:7106:1: rule__PipelineDefinitionRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalGeneratorDSL.g:7212:1: rule__PipelineDefinitionRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__PipelineDefinitionRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7110:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:7111:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7216:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7217:2: ( ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:7111:2: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:7112:3: ruleStringOrId
+            // InternalGeneratorDSL.g:7217:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7218:3: ruleStringOrId
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22018,17 +22343,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionRule__StepsAssignment_3"
-    // InternalGeneratorDSL.g:7121:1: rule__PipelineDefinitionRule__StepsAssignment_3 : ( ruleStepRule ) ;
+    // InternalGeneratorDSL.g:7227:1: rule__PipelineDefinitionRule__StepsAssignment_3 : ( ruleStepRule ) ;
     public final void rule__PipelineDefinitionRule__StepsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7125:1: ( ( ruleStepRule ) )
-            // InternalGeneratorDSL.g:7126:2: ( ruleStepRule )
+            // InternalGeneratorDSL.g:7231:1: ( ( ruleStepRule ) )
+            // InternalGeneratorDSL.g:7232:2: ( ruleStepRule )
             {
-            // InternalGeneratorDSL.g:7126:2: ( ruleStepRule )
-            // InternalGeneratorDSL.g:7127:3: ruleStepRule
+            // InternalGeneratorDSL.g:7232:2: ( ruleStepRule )
+            // InternalGeneratorDSL.g:7233:3: ruleStepRule
             {
              before(grammarAccess.getPipelineDefinitionRuleAccess().getStepsStepRuleParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -22059,17 +22384,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__InstanceAssignment_3"
-    // InternalGeneratorDSL.g:7136:1: rule__StepRule__InstanceAssignment_3 : ( ruleInstanceRule ) ;
+    // InternalGeneratorDSL.g:7242:1: rule__StepRule__InstanceAssignment_3 : ( ruleInstanceRule ) ;
     public final void rule__StepRule__InstanceAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7140:1: ( ( ruleInstanceRule ) )
-            // InternalGeneratorDSL.g:7141:2: ( ruleInstanceRule )
+            // InternalGeneratorDSL.g:7246:1: ( ( ruleInstanceRule ) )
+            // InternalGeneratorDSL.g:7247:2: ( ruleInstanceRule )
             {
-            // InternalGeneratorDSL.g:7141:2: ( ruleInstanceRule )
-            // InternalGeneratorDSL.g:7142:3: ruleInstanceRule
+            // InternalGeneratorDSL.g:7247:2: ( ruleInstanceRule )
+            // InternalGeneratorDSL.g:7248:3: ruleInstanceRule
             {
              before(grammarAccess.getStepRuleAccess().getInstanceInstanceRuleParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -22100,17 +22425,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__ReadsAssignment_4_2_0"
-    // InternalGeneratorDSL.g:7151:1: rule__StepRule__ReadsAssignment_4_2_0 : ( ruleDataReferenceRule ) ;
+    // InternalGeneratorDSL.g:7257:1: rule__StepRule__ReadsAssignment_4_2_0 : ( ruleDataReferenceRule ) ;
     public final void rule__StepRule__ReadsAssignment_4_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7155:1: ( ( ruleDataReferenceRule ) )
-            // InternalGeneratorDSL.g:7156:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7261:1: ( ( ruleDataReferenceRule ) )
+            // InternalGeneratorDSL.g:7262:2: ( ruleDataReferenceRule )
             {
-            // InternalGeneratorDSL.g:7156:2: ( ruleDataReferenceRule )
-            // InternalGeneratorDSL.g:7157:3: ruleDataReferenceRule
+            // InternalGeneratorDSL.g:7262:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7263:3: ruleDataReferenceRule
             {
              before(grammarAccess.getStepRuleAccess().getReadsDataReferenceRuleParserRuleCall_4_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -22141,17 +22466,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__ReadsAssignment_4_2_1_1"
-    // InternalGeneratorDSL.g:7166:1: rule__StepRule__ReadsAssignment_4_2_1_1 : ( ruleDataReferenceRule ) ;
+    // InternalGeneratorDSL.g:7272:1: rule__StepRule__ReadsAssignment_4_2_1_1 : ( ruleDataReferenceRule ) ;
     public final void rule__StepRule__ReadsAssignment_4_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7170:1: ( ( ruleDataReferenceRule ) )
-            // InternalGeneratorDSL.g:7171:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7276:1: ( ( ruleDataReferenceRule ) )
+            // InternalGeneratorDSL.g:7277:2: ( ruleDataReferenceRule )
             {
-            // InternalGeneratorDSL.g:7171:2: ( ruleDataReferenceRule )
-            // InternalGeneratorDSL.g:7172:3: ruleDataReferenceRule
+            // InternalGeneratorDSL.g:7277:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7278:3: ruleDataReferenceRule
             {
              before(grammarAccess.getStepRuleAccess().getReadsDataReferenceRuleParserRuleCall_4_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22182,17 +22507,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__WritesAssignment_5_2_0"
-    // InternalGeneratorDSL.g:7181:1: rule__StepRule__WritesAssignment_5_2_0 : ( ruleDataReferenceRule ) ;
+    // InternalGeneratorDSL.g:7287:1: rule__StepRule__WritesAssignment_5_2_0 : ( ruleDataReferenceRule ) ;
     public final void rule__StepRule__WritesAssignment_5_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7185:1: ( ( ruleDataReferenceRule ) )
-            // InternalGeneratorDSL.g:7186:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7291:1: ( ( ruleDataReferenceRule ) )
+            // InternalGeneratorDSL.g:7292:2: ( ruleDataReferenceRule )
             {
-            // InternalGeneratorDSL.g:7186:2: ( ruleDataReferenceRule )
-            // InternalGeneratorDSL.g:7187:3: ruleDataReferenceRule
+            // InternalGeneratorDSL.g:7292:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7293:3: ruleDataReferenceRule
             {
              before(grammarAccess.getStepRuleAccess().getWritesDataReferenceRuleParserRuleCall_5_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -22223,17 +22548,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StepRule__WritesAssignment_5_2_1_1"
-    // InternalGeneratorDSL.g:7196:1: rule__StepRule__WritesAssignment_5_2_1_1 : ( ruleDataReferenceRule ) ;
+    // InternalGeneratorDSL.g:7302:1: rule__StepRule__WritesAssignment_5_2_1_1 : ( ruleDataReferenceRule ) ;
     public final void rule__StepRule__WritesAssignment_5_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7200:1: ( ( ruleDataReferenceRule ) )
-            // InternalGeneratorDSL.g:7201:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7306:1: ( ( ruleDataReferenceRule ) )
+            // InternalGeneratorDSL.g:7307:2: ( ruleDataReferenceRule )
             {
-            // InternalGeneratorDSL.g:7201:2: ( ruleDataReferenceRule )
-            // InternalGeneratorDSL.g:7202:3: ruleDataReferenceRule
+            // InternalGeneratorDSL.g:7307:2: ( ruleDataReferenceRule )
+            // InternalGeneratorDSL.g:7308:3: ruleDataReferenceRule
             {
              before(grammarAccess.getStepRuleAccess().getWritesDataReferenceRuleParserRuleCall_5_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22264,17 +22589,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__NameAssignment_1"
-    // InternalGeneratorDSL.g:7211:1: rule__ForStatementRule__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalGeneratorDSL.g:7317:1: rule__ForStatementRule__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__ForStatementRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7215:1: ( ( RULE_ID ) )
-            // InternalGeneratorDSL.g:7216:2: ( RULE_ID )
+            // InternalGeneratorDSL.g:7321:1: ( ( RULE_ID ) )
+            // InternalGeneratorDSL.g:7322:2: ( RULE_ID )
             {
-            // InternalGeneratorDSL.g:7216:2: ( RULE_ID )
-            // InternalGeneratorDSL.g:7217:3: RULE_ID
+            // InternalGeneratorDSL.g:7322:2: ( RULE_ID )
+            // InternalGeneratorDSL.g:7323:3: RULE_ID
             {
              before(grammarAccess.getForStatementRuleAccess().getNameIDTerminalRuleCall_1_0()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -22301,17 +22626,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__RangeAssignment_3"
-    // InternalGeneratorDSL.g:7226:1: rule__ForStatementRule__RangeAssignment_3 : ( ruleRangeRule ) ;
+    // InternalGeneratorDSL.g:7332:1: rule__ForStatementRule__RangeAssignment_3 : ( ruleRangeRule ) ;
     public final void rule__ForStatementRule__RangeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7230:1: ( ( ruleRangeRule ) )
-            // InternalGeneratorDSL.g:7231:2: ( ruleRangeRule )
+            // InternalGeneratorDSL.g:7336:1: ( ( ruleRangeRule ) )
+            // InternalGeneratorDSL.g:7337:2: ( ruleRangeRule )
             {
-            // InternalGeneratorDSL.g:7231:2: ( ruleRangeRule )
-            // InternalGeneratorDSL.g:7232:3: ruleRangeRule
+            // InternalGeneratorDSL.g:7337:2: ( ruleRangeRule )
+            // InternalGeneratorDSL.g:7338:3: ruleRangeRule
             {
              before(grammarAccess.getForStatementRuleAccess().getRangeRangeRuleParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -22342,17 +22667,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ForStatementRule__StatementsAssignment_5"
-    // InternalGeneratorDSL.g:7241:1: rule__ForStatementRule__StatementsAssignment_5 : ( ruleStatementRule ) ;
+    // InternalGeneratorDSL.g:7347:1: rule__ForStatementRule__StatementsAssignment_5 : ( ruleStatementRule ) ;
     public final void rule__ForStatementRule__StatementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7245:1: ( ( ruleStatementRule ) )
-            // InternalGeneratorDSL.g:7246:2: ( ruleStatementRule )
+            // InternalGeneratorDSL.g:7351:1: ( ( ruleStatementRule ) )
+            // InternalGeneratorDSL.g:7352:2: ( ruleStatementRule )
             {
-            // InternalGeneratorDSL.g:7246:2: ( ruleStatementRule )
-            // InternalGeneratorDSL.g:7247:3: ruleStatementRule
+            // InternalGeneratorDSL.g:7352:2: ( ruleStatementRule )
+            // InternalGeneratorDSL.g:7353:3: ruleStatementRule
             {
              before(grammarAccess.getForStatementRuleAccess().getStatementsStatementRuleParserRuleCall_5_0()); 
             pushFollow(FOLLOW_2);
@@ -22383,17 +22708,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__StartAssignment_1"
-    // InternalGeneratorDSL.g:7256:1: rule__CounterRangeRule__StartAssignment_1 : ( RULE_INT ) ;
+    // InternalGeneratorDSL.g:7362:1: rule__CounterRangeRule__StartAssignment_1 : ( RULE_INT ) ;
     public final void rule__CounterRangeRule__StartAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7260:1: ( ( RULE_INT ) )
-            // InternalGeneratorDSL.g:7261:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7366:1: ( ( RULE_INT ) )
+            // InternalGeneratorDSL.g:7367:2: ( RULE_INT )
             {
-            // InternalGeneratorDSL.g:7261:2: ( RULE_INT )
-            // InternalGeneratorDSL.g:7262:3: RULE_INT
+            // InternalGeneratorDSL.g:7367:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7368:3: RULE_INT
             {
              before(grammarAccess.getCounterRangeRuleAccess().getStartINTTerminalRuleCall_1_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -22420,17 +22745,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CounterRangeRule__EndAssignment_3"
-    // InternalGeneratorDSL.g:7271:1: rule__CounterRangeRule__EndAssignment_3 : ( RULE_INT ) ;
+    // InternalGeneratorDSL.g:7377:1: rule__CounterRangeRule__EndAssignment_3 : ( RULE_INT ) ;
     public final void rule__CounterRangeRule__EndAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7275:1: ( ( RULE_INT ) )
-            // InternalGeneratorDSL.g:7276:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7381:1: ( ( RULE_INT ) )
+            // InternalGeneratorDSL.g:7382:2: ( RULE_INT )
             {
-            // InternalGeneratorDSL.g:7276:2: ( RULE_INT )
-            // InternalGeneratorDSL.g:7277:3: RULE_INT
+            // InternalGeneratorDSL.g:7382:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7383:3: RULE_INT
             {
              before(grammarAccess.getCounterRangeRuleAccess().getEndINTTerminalRuleCall_3_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -22457,17 +22782,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__ReferencesAssignment_2_1"
-    // InternalGeneratorDSL.g:7286:1: rule__PipelineArrayRule__ReferencesAssignment_2_1 : ( rulePipelineReferenceRule ) ;
+    // InternalGeneratorDSL.g:7392:1: rule__PipelineArrayRule__ReferencesAssignment_2_1 : ( rulePipelineReferenceRule ) ;
     public final void rule__PipelineArrayRule__ReferencesAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7290:1: ( ( rulePipelineReferenceRule ) )
-            // InternalGeneratorDSL.g:7291:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7396:1: ( ( rulePipelineReferenceRule ) )
+            // InternalGeneratorDSL.g:7397:2: ( rulePipelineReferenceRule )
             {
-            // InternalGeneratorDSL.g:7291:2: ( rulePipelineReferenceRule )
-            // InternalGeneratorDSL.g:7292:3: rulePipelineReferenceRule
+            // InternalGeneratorDSL.g:7397:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7398:3: rulePipelineReferenceRule
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getReferencesPipelineReferenceRuleParserRuleCall_2_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22498,17 +22823,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineArrayRule__ReferencesAssignment_2_2_1"
-    // InternalGeneratorDSL.g:7301:1: rule__PipelineArrayRule__ReferencesAssignment_2_2_1 : ( rulePipelineReferenceRule ) ;
+    // InternalGeneratorDSL.g:7407:1: rule__PipelineArrayRule__ReferencesAssignment_2_2_1 : ( rulePipelineReferenceRule ) ;
     public final void rule__PipelineArrayRule__ReferencesAssignment_2_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7305:1: ( ( rulePipelineReferenceRule ) )
-            // InternalGeneratorDSL.g:7306:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7411:1: ( ( rulePipelineReferenceRule ) )
+            // InternalGeneratorDSL.g:7412:2: ( rulePipelineReferenceRule )
             {
-            // InternalGeneratorDSL.g:7306:2: ( rulePipelineReferenceRule )
-            // InternalGeneratorDSL.g:7307:3: rulePipelineReferenceRule
+            // InternalGeneratorDSL.g:7412:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7413:3: rulePipelineReferenceRule
             {
              before(grammarAccess.getPipelineArrayRuleAccess().getReferencesPipelineReferenceRuleParserRuleCall_2_2_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22539,21 +22864,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PipelineDefinitionReferenceRule__PipelineAssignment_1"
-    // InternalGeneratorDSL.g:7316:1: rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 : ( ( ruleStringOrId ) ) ;
+    // InternalGeneratorDSL.g:7422:1: rule__PipelineDefinitionReferenceRule__PipelineAssignment_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__PipelineDefinitionReferenceRule__PipelineAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7320:1: ( ( ( ruleStringOrId ) ) )
-            // InternalGeneratorDSL.g:7321:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7426:1: ( ( ( ruleStringOrId ) ) )
+            // InternalGeneratorDSL.g:7427:2: ( ( ruleStringOrId ) )
             {
-            // InternalGeneratorDSL.g:7321:2: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:7322:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7427:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7428:3: ( ruleStringOrId )
             {
              before(grammarAccess.getPipelineDefinitionReferenceRuleAccess().getPipelinePipelineDefinitionCrossReference_1_0()); 
-            // InternalGeneratorDSL.g:7323:3: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:7324:4: ruleStringOrId
+            // InternalGeneratorDSL.g:7429:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7430:4: ruleStringOrId
             {
              before(grammarAccess.getPipelineDefinitionReferenceRuleAccess().getPipelinePipelineDefinitionStringOrIdParserRuleCall_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -22588,21 +22913,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__VariableReferenceRule__LoopAssignment"
-    // InternalGeneratorDSL.g:7335:1: rule__VariableReferenceRule__LoopAssignment : ( ( RULE_ID ) ) ;
+    // InternalGeneratorDSL.g:7441:1: rule__VariableReferenceRule__LoopAssignment : ( ( RULE_ID ) ) ;
     public final void rule__VariableReferenceRule__LoopAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7339:1: ( ( ( RULE_ID ) ) )
-            // InternalGeneratorDSL.g:7340:2: ( ( RULE_ID ) )
+            // InternalGeneratorDSL.g:7445:1: ( ( ( RULE_ID ) ) )
+            // InternalGeneratorDSL.g:7446:2: ( ( RULE_ID ) )
             {
-            // InternalGeneratorDSL.g:7340:2: ( ( RULE_ID ) )
-            // InternalGeneratorDSL.g:7341:3: ( RULE_ID )
+            // InternalGeneratorDSL.g:7446:2: ( ( RULE_ID ) )
+            // InternalGeneratorDSL.g:7447:3: ( RULE_ID )
             {
              before(grammarAccess.getVariableReferenceRuleAccess().getLoopForStatementCrossReference_0()); 
-            // InternalGeneratorDSL.g:7342:3: ( RULE_ID )
-            // InternalGeneratorDSL.g:7343:4: RULE_ID
+            // InternalGeneratorDSL.g:7448:3: ( RULE_ID )
+            // InternalGeneratorDSL.g:7449:4: RULE_ID
             {
              before(grammarAccess.getVariableReferenceRuleAccess().getLoopForStatementIDTerminalRuleCall_0_1()); 
             match(input,RULE_ID,FOLLOW_2); 
@@ -22633,17 +22958,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__FileAssignment_1"
-    // InternalGeneratorDSL.g:7354:1: rule__ApplyStatementRule__FileAssignment_1 : ( RULE_STRING ) ;
+    // InternalGeneratorDSL.g:7460:1: rule__ApplyStatementRule__FileAssignment_1 : ( RULE_STRING ) ;
     public final void rule__ApplyStatementRule__FileAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7358:1: ( ( RULE_STRING ) )
-            // InternalGeneratorDSL.g:7359:2: ( RULE_STRING )
+            // InternalGeneratorDSL.g:7464:1: ( ( RULE_STRING ) )
+            // InternalGeneratorDSL.g:7465:2: ( RULE_STRING )
             {
-            // InternalGeneratorDSL.g:7359:2: ( RULE_STRING )
-            // InternalGeneratorDSL.g:7360:3: RULE_STRING
+            // InternalGeneratorDSL.g:7465:2: ( RULE_STRING )
+            // InternalGeneratorDSL.g:7466:3: RULE_STRING
             {
              before(grammarAccess.getApplyStatementRuleAccess().getFileSTRINGTerminalRuleCall_1_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -22670,17 +22995,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__CountAssignment_3"
-    // InternalGeneratorDSL.g:7369:1: rule__ApplyStatementRule__CountAssignment_3 : ( RULE_INT ) ;
+    // InternalGeneratorDSL.g:7475:1: rule__ApplyStatementRule__CountAssignment_3 : ( RULE_INT ) ;
     public final void rule__ApplyStatementRule__CountAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7373:1: ( ( RULE_INT ) )
-            // InternalGeneratorDSL.g:7374:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7479:1: ( ( RULE_INT ) )
+            // InternalGeneratorDSL.g:7480:2: ( RULE_INT )
             {
-            // InternalGeneratorDSL.g:7374:2: ( RULE_INT )
-            // InternalGeneratorDSL.g:7375:3: RULE_INT
+            // InternalGeneratorDSL.g:7480:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:7481:3: RULE_INT
             {
              before(grammarAccess.getApplyStatementRuleAccess().getCountINTTerminalRuleCall_3_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -22707,17 +23032,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__PipelinesAssignment_8"
-    // InternalGeneratorDSL.g:7384:1: rule__ApplyStatementRule__PipelinesAssignment_8 : ( rulePipelineReferenceRule ) ;
+    // InternalGeneratorDSL.g:7490:1: rule__ApplyStatementRule__PipelinesAssignment_8 : ( rulePipelineReferenceRule ) ;
     public final void rule__ApplyStatementRule__PipelinesAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7388:1: ( ( rulePipelineReferenceRule ) )
-            // InternalGeneratorDSL.g:7389:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7494:1: ( ( rulePipelineReferenceRule ) )
+            // InternalGeneratorDSL.g:7495:2: ( rulePipelineReferenceRule )
             {
-            // InternalGeneratorDSL.g:7389:2: ( rulePipelineReferenceRule )
-            // InternalGeneratorDSL.g:7390:3: rulePipelineReferenceRule
+            // InternalGeneratorDSL.g:7495:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7496:3: rulePipelineReferenceRule
             {
              before(grammarAccess.getApplyStatementRuleAccess().getPipelinesPipelineReferenceRuleParserRuleCall_8_0()); 
             pushFollow(FOLLOW_2);
@@ -22748,17 +23073,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ApplyStatementRule__PipelinesAssignment_9_1"
-    // InternalGeneratorDSL.g:7399:1: rule__ApplyStatementRule__PipelinesAssignment_9_1 : ( rulePipelineReferenceRule ) ;
+    // InternalGeneratorDSL.g:7505:1: rule__ApplyStatementRule__PipelinesAssignment_9_1 : ( rulePipelineReferenceRule ) ;
     public final void rule__ApplyStatementRule__PipelinesAssignment_9_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7403:1: ( ( rulePipelineReferenceRule ) )
-            // InternalGeneratorDSL.g:7404:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7509:1: ( ( rulePipelineReferenceRule ) )
+            // InternalGeneratorDSL.g:7510:2: ( rulePipelineReferenceRule )
             {
-            // InternalGeneratorDSL.g:7404:2: ( rulePipelineReferenceRule )
-            // InternalGeneratorDSL.g:7405:3: rulePipelineReferenceRule
+            // InternalGeneratorDSL.g:7510:2: ( rulePipelineReferenceRule )
+            // InternalGeneratorDSL.g:7511:3: rulePipelineReferenceRule
             {
              before(grammarAccess.getApplyStatementRuleAccess().getPipelinesPipelineReferenceRuleParserRuleCall_9_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22789,29 +23114,29 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__DefinitionAssignment_0"
-    // InternalGeneratorDSL.g:7414:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedNameRule ) ) ;
+    // InternalGeneratorDSL.g:7520:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7418:1: ( ( ( ruleQualifiedNameRule ) ) )
-            // InternalGeneratorDSL.g:7419:2: ( ( ruleQualifiedNameRule ) )
+            // InternalGeneratorDSL.g:7524:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:7525:2: ( ( ruleQualifiedName ) )
             {
-            // InternalGeneratorDSL.g:7419:2: ( ( ruleQualifiedNameRule ) )
-            // InternalGeneratorDSL.g:7420:3: ( ruleQualifiedNameRule )
+            // InternalGeneratorDSL.g:7525:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:7526:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); 
-            // InternalGeneratorDSL.g:7421:3: ( ruleQualifiedNameRule )
-            // InternalGeneratorDSL.g:7422:4: ruleQualifiedNameRule
+            // InternalGeneratorDSL.g:7527:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:7528:4: ruleQualifiedName
             {
-             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
-             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
 
             }
 
@@ -22838,17 +23163,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceRule__AttributesAssignment_1_1"
-    // InternalGeneratorDSL.g:7433:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
+    // InternalGeneratorDSL.g:7539:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
     public final void rule__InstanceRule__AttributesAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7437:1: ( ( ruleAttributeRule ) )
-            // InternalGeneratorDSL.g:7438:2: ( ruleAttributeRule )
+            // InternalGeneratorDSL.g:7543:1: ( ( ruleAttributeRule ) )
+            // InternalGeneratorDSL.g:7544:2: ( ruleAttributeRule )
             {
-            // InternalGeneratorDSL.g:7438:2: ( ruleAttributeRule )
-            // InternalGeneratorDSL.g:7439:3: ruleAttributeRule
+            // InternalGeneratorDSL.g:7544:2: ( ruleAttributeRule )
+            // InternalGeneratorDSL.g:7545:3: ruleAttributeRule
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAttributeRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -22879,21 +23204,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__DefinitionAssignment_0"
-    // InternalGeneratorDSL.g:7448:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
+    // InternalGeneratorDSL.g:7554:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
     public final void rule__AttributeRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7452:1: ( ( ( ruleStringOrId ) ) )
-            // InternalGeneratorDSL.g:7453:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7558:1: ( ( ( ruleStringOrId ) ) )
+            // InternalGeneratorDSL.g:7559:2: ( ( ruleStringOrId ) )
             {
-            // InternalGeneratorDSL.g:7453:2: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:7454:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7559:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7560:3: ( ruleStringOrId )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionCrossReference_0_0()); 
-            // InternalGeneratorDSL.g:7455:3: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:7456:4: ruleStringOrId
+            // InternalGeneratorDSL.g:7561:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7562:4: ruleStringOrId
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionStringOrIdParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
@@ -22928,17 +23253,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeRule__ValueAssignment_2"
-    // InternalGeneratorDSL.g:7467:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
+    // InternalGeneratorDSL.g:7573:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
     public final void rule__AttributeRule__ValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7471:1: ( ( ruleValueRule ) )
-            // InternalGeneratorDSL.g:7472:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7577:1: ( ( ruleValueRule ) )
+            // InternalGeneratorDSL.g:7578:2: ( ruleValueRule )
             {
-            // InternalGeneratorDSL.g:7472:2: ( ruleValueRule )
-            // InternalGeneratorDSL.g:7473:3: ruleValueRule
+            // InternalGeneratorDSL.g:7578:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7579:3: ruleValueRule
             {
              before(grammarAccess.getAttributeRuleAccess().getValueValueRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -22969,17 +23294,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_0"
-    // InternalGeneratorDSL.g:7482:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
+    // InternalGeneratorDSL.g:7588:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7486:1: ( ( ruleValueRule ) )
-            // InternalGeneratorDSL.g:7487:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7592:1: ( ( ruleValueRule ) )
+            // InternalGeneratorDSL.g:7593:2: ( ruleValueRule )
             {
-            // InternalGeneratorDSL.g:7487:2: ( ruleValueRule )
-            // InternalGeneratorDSL.g:7488:3: ruleValueRule
+            // InternalGeneratorDSL.g:7593:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7594:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23010,17 +23335,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_1_1"
-    // InternalGeneratorDSL.g:7497:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
+    // InternalGeneratorDSL.g:7603:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7501:1: ( ( ruleValueRule ) )
-            // InternalGeneratorDSL.g:7502:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7607:1: ( ( ruleValueRule ) )
+            // InternalGeneratorDSL.g:7608:2: ( ruleValueRule )
             {
-            // InternalGeneratorDSL.g:7502:2: ( ruleValueRule )
-            // InternalGeneratorDSL.g:7503:3: ruleValueRule
+            // InternalGeneratorDSL.g:7608:2: ( ruleValueRule )
+            // InternalGeneratorDSL.g:7609:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23051,17 +23376,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__LiteralValueRule__LiteralAssignment"
-    // InternalGeneratorDSL.g:7512:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
+    // InternalGeneratorDSL.g:7618:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
     public final void rule__LiteralValueRule__LiteralAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7516:1: ( ( ruleLiteralRule ) )
-            // InternalGeneratorDSL.g:7517:2: ( ruleLiteralRule )
+            // InternalGeneratorDSL.g:7622:1: ( ( ruleLiteralRule ) )
+            // InternalGeneratorDSL.g:7623:2: ( ruleLiteralRule )
             {
-            // InternalGeneratorDSL.g:7517:2: ( ruleLiteralRule )
-            // InternalGeneratorDSL.g:7518:3: ruleLiteralRule
+            // InternalGeneratorDSL.g:7623:2: ( ruleLiteralRule )
+            // InternalGeneratorDSL.g:7624:3: ruleLiteralRule
             {
              before(grammarAccess.getLiteralValueRuleAccess().getLiteralLiteralRuleParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -23092,21 +23417,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DataReferenceRule__DefinitionAssignment_2"
-    // InternalGeneratorDSL.g:7527:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
+    // InternalGeneratorDSL.g:7633:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
     public final void rule__DataReferenceRule__DefinitionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7531:1: ( ( ( ruleStringOrId ) ) )
-            // InternalGeneratorDSL.g:7532:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7637:1: ( ( ( ruleStringOrId ) ) )
+            // InternalGeneratorDSL.g:7638:2: ( ( ruleStringOrId ) )
             {
-            // InternalGeneratorDSL.g:7532:2: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:7533:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7638:2: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:7639:3: ( ruleStringOrId )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionCrossReference_2_0()); 
-            // InternalGeneratorDSL.g:7534:3: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:7535:4: ruleStringOrId
+            // InternalGeneratorDSL.g:7640:3: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:7641:4: ruleStringOrId
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -23141,17 +23466,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalGeneratorDSL.g:7546:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalGeneratorDSL.g:7652:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7550:1: ( ( ruleXorExpressionRule ) )
-            // InternalGeneratorDSL.g:7551:2: ( ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:7656:1: ( ( ruleXorExpressionRule ) )
+            // InternalGeneratorDSL.g:7657:2: ( ruleXorExpressionRule )
             {
-            // InternalGeneratorDSL.g:7551:2: ( ruleXorExpressionRule )
-            // InternalGeneratorDSL.g:7552:3: ruleXorExpressionRule
+            // InternalGeneratorDSL.g:7657:2: ( ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:7658:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23182,17 +23507,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalGeneratorDSL.g:7561:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalGeneratorDSL.g:7667:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7565:1: ( ( ruleXorExpressionRule ) )
-            // InternalGeneratorDSL.g:7566:2: ( ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:7671:1: ( ( ruleXorExpressionRule ) )
+            // InternalGeneratorDSL.g:7672:2: ( ruleXorExpressionRule )
             {
-            // InternalGeneratorDSL.g:7566:2: ( ruleXorExpressionRule )
-            // InternalGeneratorDSL.g:7567:3: ruleXorExpressionRule
+            // InternalGeneratorDSL.g:7672:2: ( ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:7673:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23223,17 +23548,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalGeneratorDSL.g:7576:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalGeneratorDSL.g:7682:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7580:1: ( ( ruleAndExpressionRule ) )
-            // InternalGeneratorDSL.g:7581:2: ( ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:7686:1: ( ( ruleAndExpressionRule ) )
+            // InternalGeneratorDSL.g:7687:2: ( ruleAndExpressionRule )
             {
-            // InternalGeneratorDSL.g:7581:2: ( ruleAndExpressionRule )
-            // InternalGeneratorDSL.g:7582:3: ruleAndExpressionRule
+            // InternalGeneratorDSL.g:7687:2: ( ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:7688:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23264,17 +23589,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalGeneratorDSL.g:7591:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalGeneratorDSL.g:7697:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7595:1: ( ( ruleAndExpressionRule ) )
-            // InternalGeneratorDSL.g:7596:2: ( ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:7701:1: ( ( ruleAndExpressionRule ) )
+            // InternalGeneratorDSL.g:7702:2: ( ruleAndExpressionRule )
             {
-            // InternalGeneratorDSL.g:7596:2: ( ruleAndExpressionRule )
-            // InternalGeneratorDSL.g:7597:3: ruleAndExpressionRule
+            // InternalGeneratorDSL.g:7702:2: ( ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:7703:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23305,17 +23630,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalGeneratorDSL.g:7606:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalGeneratorDSL.g:7712:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7610:1: ( ( ruleNotExpressionRule ) )
-            // InternalGeneratorDSL.g:7611:2: ( ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:7716:1: ( ( ruleNotExpressionRule ) )
+            // InternalGeneratorDSL.g:7717:2: ( ruleNotExpressionRule )
             {
-            // InternalGeneratorDSL.g:7611:2: ( ruleNotExpressionRule )
-            // InternalGeneratorDSL.g:7612:3: ruleNotExpressionRule
+            // InternalGeneratorDSL.g:7717:2: ( ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:7718:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23346,17 +23671,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalGeneratorDSL.g:7621:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalGeneratorDSL.g:7727:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7625:1: ( ( ruleNotExpressionRule ) )
-            // InternalGeneratorDSL.g:7626:2: ( ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:7731:1: ( ( ruleNotExpressionRule ) )
+            // InternalGeneratorDSL.g:7732:2: ( ruleNotExpressionRule )
             {
-            // InternalGeneratorDSL.g:7626:2: ( ruleNotExpressionRule )
-            // InternalGeneratorDSL.g:7627:3: ruleNotExpressionRule
+            // InternalGeneratorDSL.g:7732:2: ( ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:7733:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23387,24 +23712,24 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalGeneratorDSL.g:7636:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalGeneratorDSL.g:7742:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7640:1: ( ( ( '!' ) ) )
-            // InternalGeneratorDSL.g:7641:2: ( ( '!' ) )
+            // InternalGeneratorDSL.g:7746:1: ( ( ( '!' ) ) )
+            // InternalGeneratorDSL.g:7747:2: ( ( '!' ) )
             {
-            // InternalGeneratorDSL.g:7641:2: ( ( '!' ) )
-            // InternalGeneratorDSL.g:7642:3: ( '!' )
+            // InternalGeneratorDSL.g:7747:2: ( ( '!' ) )
+            // InternalGeneratorDSL.g:7748:3: ( '!' )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            // InternalGeneratorDSL.g:7643:3: ( '!' )
-            // InternalGeneratorDSL.g:7644:4: '!'
+            // InternalGeneratorDSL.g:7749:3: ( '!' )
+            // InternalGeneratorDSL.g:7750:4: '!'
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            match(input,91,FOLLOW_2); 
+            match(input,92,FOLLOW_2); 
              after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
 
             }
@@ -23432,17 +23757,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalGeneratorDSL.g:7655:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalGeneratorDSL.g:7761:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7659:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalGeneratorDSL.g:7660:2: ( ruleComparisonExpressionRule )
+            // InternalGeneratorDSL.g:7765:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalGeneratorDSL.g:7766:2: ( ruleComparisonExpressionRule )
             {
-            // InternalGeneratorDSL.g:7660:2: ( ruleComparisonExpressionRule )
-            // InternalGeneratorDSL.g:7661:3: ruleComparisonExpressionRule
+            // InternalGeneratorDSL.g:7766:2: ( ruleComparisonExpressionRule )
+            // InternalGeneratorDSL.g:7767:3: ruleComparisonExpressionRule
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23473,17 +23798,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalGeneratorDSL.g:7670:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalGeneratorDSL.g:7776:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7674:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:7675:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7780:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:7781:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:7675:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:7676:3: ruleAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:7781:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7782:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23514,17 +23839,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalGeneratorDSL.g:7685:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalGeneratorDSL.g:7791:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7689:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalGeneratorDSL.g:7690:2: ( rulePartialComparisonExpressionRule )
+            // InternalGeneratorDSL.g:7795:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalGeneratorDSL.g:7796:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalGeneratorDSL.g:7690:2: ( rulePartialComparisonExpressionRule )
-            // InternalGeneratorDSL.g:7691:3: rulePartialComparisonExpressionRule
+            // InternalGeneratorDSL.g:7796:2: ( rulePartialComparisonExpressionRule )
+            // InternalGeneratorDSL.g:7797:3: rulePartialComparisonExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23555,17 +23880,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalGeneratorDSL.g:7700:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalGeneratorDSL.g:7806:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7704:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalGeneratorDSL.g:7705:2: ( ruleComparisonOperatorRule )
+            // InternalGeneratorDSL.g:7810:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalGeneratorDSL.g:7811:2: ( ruleComparisonOperatorRule )
             {
-            // InternalGeneratorDSL.g:7705:2: ( ruleComparisonOperatorRule )
-            // InternalGeneratorDSL.g:7706:3: ruleComparisonOperatorRule
+            // InternalGeneratorDSL.g:7811:2: ( ruleComparisonOperatorRule )
+            // InternalGeneratorDSL.g:7812:3: ruleComparisonOperatorRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23596,17 +23921,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalGeneratorDSL.g:7715:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalGeneratorDSL.g:7821:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7719:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:7720:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7825:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:7826:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:7720:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:7721:3: ruleAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:7826:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7827:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23637,17 +23962,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalGeneratorDSL.g:7730:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalGeneratorDSL.g:7836:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7734:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalGeneratorDSL.g:7735:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:7840:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalGeneratorDSL.g:7841:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalGeneratorDSL.g:7735:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalGeneratorDSL.g:7736:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalGeneratorDSL.g:7841:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:7842:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23678,17 +24003,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalGeneratorDSL.g:7745:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalGeneratorDSL.g:7851:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7749:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalGeneratorDSL.g:7750:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalGeneratorDSL.g:7855:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalGeneratorDSL.g:7856:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalGeneratorDSL.g:7750:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalGeneratorDSL.g:7751:3: ruleAddOrSubtractOperatorRule
+            // InternalGeneratorDSL.g:7856:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalGeneratorDSL.g:7857:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23719,17 +24044,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalGeneratorDSL.g:7760:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalGeneratorDSL.g:7866:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7764:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalGeneratorDSL.g:7765:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:7870:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalGeneratorDSL.g:7871:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalGeneratorDSL.g:7765:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalGeneratorDSL.g:7766:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalGeneratorDSL.g:7871:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:7872:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23760,17 +24085,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalGeneratorDSL.g:7775:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalGeneratorDSL.g:7881:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7779:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalGeneratorDSL.g:7780:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7885:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalGeneratorDSL.g:7886:2: ( rulePowerOfExpressionRule )
             {
-            // InternalGeneratorDSL.g:7780:2: ( rulePowerOfExpressionRule )
-            // InternalGeneratorDSL.g:7781:3: rulePowerOfExpressionRule
+            // InternalGeneratorDSL.g:7886:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7887:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23801,17 +24126,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalGeneratorDSL.g:7790:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalGeneratorDSL.g:7896:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7794:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalGeneratorDSL.g:7795:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalGeneratorDSL.g:7900:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalGeneratorDSL.g:7901:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalGeneratorDSL.g:7795:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalGeneratorDSL.g:7796:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalGeneratorDSL.g:7901:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalGeneratorDSL.g:7902:3: ruleMultiplyDivideModuloOperatorRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23842,17 +24167,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalGeneratorDSL.g:7805:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalGeneratorDSL.g:7911:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7809:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalGeneratorDSL.g:7810:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7915:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalGeneratorDSL.g:7916:2: ( rulePowerOfExpressionRule )
             {
-            // InternalGeneratorDSL.g:7810:2: ( rulePowerOfExpressionRule )
-            // InternalGeneratorDSL.g:7811:3: rulePowerOfExpressionRule
+            // InternalGeneratorDSL.g:7916:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7917:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23883,17 +24208,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalGeneratorDSL.g:7820:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalGeneratorDSL.g:7926:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7824:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:7825:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7930:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:7931:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:7825:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:7826:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:7931:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:7932:3: ruleUnaryAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -23924,17 +24249,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalGeneratorDSL.g:7835:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalGeneratorDSL.g:7941:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7839:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalGeneratorDSL.g:7840:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7945:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalGeneratorDSL.g:7946:2: ( rulePowerOfExpressionRule )
             {
-            // InternalGeneratorDSL.g:7840:2: ( rulePowerOfExpressionRule )
-            // InternalGeneratorDSL.g:7841:3: rulePowerOfExpressionRule
+            // InternalGeneratorDSL.g:7946:2: ( rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:7947:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -23965,17 +24290,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalGeneratorDSL.g:7850:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalGeneratorDSL.g:7956:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7854:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalGeneratorDSL.g:7855:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalGeneratorDSL.g:7960:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalGeneratorDSL.g:7961:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalGeneratorDSL.g:7855:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalGeneratorDSL.g:7856:3: ruleAddOrSubtractOperatorRule
+            // InternalGeneratorDSL.g:7961:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalGeneratorDSL.g:7962:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -24006,17 +24331,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalGeneratorDSL.g:7865:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalGeneratorDSL.g:7971:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7869:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalGeneratorDSL.g:7870:2: ( ruleLiteralOrReferenceRule )
+            // InternalGeneratorDSL.g:7975:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalGeneratorDSL.g:7976:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalGeneratorDSL.g:7870:2: ( ruleLiteralOrReferenceRule )
-            // InternalGeneratorDSL.g:7871:3: ruleLiteralOrReferenceRule
+            // InternalGeneratorDSL.g:7976:2: ( ruleLiteralOrReferenceRule )
+            // InternalGeneratorDSL.g:7977:3: ruleLiteralOrReferenceRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24047,17 +24372,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalGeneratorDSL.g:7880:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalGeneratorDSL.g:7986:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7884:1: ( ( ruleExpressionRule ) )
-            // InternalGeneratorDSL.g:7885:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:7990:1: ( ( ruleExpressionRule ) )
+            // InternalGeneratorDSL.g:7991:2: ( ruleExpressionRule )
             {
-            // InternalGeneratorDSL.g:7885:2: ( ruleExpressionRule )
-            // InternalGeneratorDSL.g:7886:3: ruleExpressionRule
+            // InternalGeneratorDSL.g:7991:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:7992:3: ruleExpressionRule
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24088,17 +24413,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalGeneratorDSL.g:7895:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalGeneratorDSL.g:8001:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7899:1: ( ( ruleFunctionNameRule ) )
-            // InternalGeneratorDSL.g:7900:2: ( ruleFunctionNameRule )
+            // InternalGeneratorDSL.g:8005:1: ( ( ruleFunctionNameRule ) )
+            // InternalGeneratorDSL.g:8006:2: ( ruleFunctionNameRule )
             {
-            // InternalGeneratorDSL.g:7900:2: ( ruleFunctionNameRule )
-            // InternalGeneratorDSL.g:7901:3: ruleFunctionNameRule
+            // InternalGeneratorDSL.g:8006:2: ( ruleFunctionNameRule )
+            // InternalGeneratorDSL.g:8007:3: ruleFunctionNameRule
             {
              before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -24129,17 +24454,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalGeneratorDSL.g:7910:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalGeneratorDSL.g:8016:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7914:1: ( ( ruleExpressionRule ) )
-            // InternalGeneratorDSL.g:7915:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8020:1: ( ( ruleExpressionRule ) )
+            // InternalGeneratorDSL.g:8021:2: ( ruleExpressionRule )
             {
-            // InternalGeneratorDSL.g:7915:2: ( ruleExpressionRule )
-            // InternalGeneratorDSL.g:7916:3: ruleExpressionRule
+            // InternalGeneratorDSL.g:8021:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8022:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -24170,17 +24495,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalGeneratorDSL.g:7925:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalGeneratorDSL.g:8031:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7929:1: ( ( ruleExpressionRule ) )
-            // InternalGeneratorDSL.g:7930:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8035:1: ( ( ruleExpressionRule ) )
+            // InternalGeneratorDSL.g:8036:2: ( ruleExpressionRule )
             {
-            // InternalGeneratorDSL.g:7930:2: ( ruleExpressionRule )
-            // InternalGeneratorDSL.g:7931:3: ruleExpressionRule
+            // InternalGeneratorDSL.g:8036:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8037:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24210,18 +24535,67 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalGeneratorDSL.g:8046:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:8050:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:8051:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalGeneratorDSL.g:8051:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8052:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            // InternalGeneratorDSL.g:8053:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8054:4: ruleQualifiedName
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalGeneratorDSL.g:7940:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalGeneratorDSL.g:8065:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7944:1: ( ( RULE_DOUBLE ) )
-            // InternalGeneratorDSL.g:7945:2: ( RULE_DOUBLE )
+            // InternalGeneratorDSL.g:8069:1: ( ( RULE_DOUBLE ) )
+            // InternalGeneratorDSL.g:8070:2: ( RULE_DOUBLE )
             {
-            // InternalGeneratorDSL.g:7945:2: ( RULE_DOUBLE )
-            // InternalGeneratorDSL.g:7946:3: RULE_DOUBLE
+            // InternalGeneratorDSL.g:8070:2: ( RULE_DOUBLE )
+            // InternalGeneratorDSL.g:8071:3: RULE_DOUBLE
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
             match(input,RULE_DOUBLE,FOLLOW_2); 
@@ -24248,17 +24622,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalGeneratorDSL.g:7955:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalGeneratorDSL.g:8080:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7959:1: ( ( ruleFactorRule ) )
-            // InternalGeneratorDSL.g:7960:2: ( ruleFactorRule )
+            // InternalGeneratorDSL.g:8084:1: ( ( ruleFactorRule ) )
+            // InternalGeneratorDSL.g:8085:2: ( ruleFactorRule )
             {
-            // InternalGeneratorDSL.g:7960:2: ( ruleFactorRule )
-            // InternalGeneratorDSL.g:7961:3: ruleFactorRule
+            // InternalGeneratorDSL.g:8085:2: ( ruleFactorRule )
+            // InternalGeneratorDSL.g:8086:3: ruleFactorRule
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24289,17 +24663,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalGeneratorDSL.g:7970:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalGeneratorDSL.g:8095:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7974:1: ( ( RULE_INT ) )
-            // InternalGeneratorDSL.g:7975:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:8099:1: ( ( RULE_INT ) )
+            // InternalGeneratorDSL.g:8100:2: ( RULE_INT )
             {
-            // InternalGeneratorDSL.g:7975:2: ( RULE_INT )
-            // InternalGeneratorDSL.g:7976:3: RULE_INT
+            // InternalGeneratorDSL.g:8100:2: ( RULE_INT )
+            // InternalGeneratorDSL.g:8101:3: RULE_INT
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -24326,17 +24700,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalGeneratorDSL.g:7985:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalGeneratorDSL.g:8110:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:7989:1: ( ( ruleFactorRule ) )
-            // InternalGeneratorDSL.g:7990:2: ( ruleFactorRule )
+            // InternalGeneratorDSL.g:8114:1: ( ( ruleFactorRule ) )
+            // InternalGeneratorDSL.g:8115:2: ( ruleFactorRule )
             {
-            // InternalGeneratorDSL.g:7990:2: ( ruleFactorRule )
-            // InternalGeneratorDSL.g:7991:3: ruleFactorRule
+            // InternalGeneratorDSL.g:8115:2: ( ruleFactorRule )
+            // InternalGeneratorDSL.g:8116:3: ruleFactorRule
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24367,17 +24741,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalGeneratorDSL.g:8000:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalGeneratorDSL.g:8125:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8004:1: ( ( RULE_STRING ) )
-            // InternalGeneratorDSL.g:8005:2: ( RULE_STRING )
+            // InternalGeneratorDSL.g:8129:1: ( ( RULE_STRING ) )
+            // InternalGeneratorDSL.g:8130:2: ( RULE_STRING )
             {
-            // InternalGeneratorDSL.g:8005:2: ( RULE_STRING )
-            // InternalGeneratorDSL.g:8006:3: RULE_STRING
+            // InternalGeneratorDSL.g:8130:2: ( RULE_STRING )
+            // InternalGeneratorDSL.g:8131:3: RULE_STRING
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -24404,24 +24778,24 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalGeneratorDSL.g:8015:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalGeneratorDSL.g:8140:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8019:1: ( ( ( 'true' ) ) )
-            // InternalGeneratorDSL.g:8020:2: ( ( 'true' ) )
+            // InternalGeneratorDSL.g:8144:1: ( ( ( 'true' ) ) )
+            // InternalGeneratorDSL.g:8145:2: ( ( 'true' ) )
             {
-            // InternalGeneratorDSL.g:8020:2: ( ( 'true' ) )
-            // InternalGeneratorDSL.g:8021:3: ( 'true' )
+            // InternalGeneratorDSL.g:8145:2: ( ( 'true' ) )
+            // InternalGeneratorDSL.g:8146:3: ( 'true' )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            // InternalGeneratorDSL.g:8022:3: ( 'true' )
-            // InternalGeneratorDSL.g:8023:4: 'true'
+            // InternalGeneratorDSL.g:8147:3: ( 'true' )
+            // InternalGeneratorDSL.g:8148:4: 'true'
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            match(input,92,FOLLOW_2); 
+            match(input,93,FOLLOW_2); 
              after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
 
             }
@@ -24448,18 +24822,194 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalGeneratorDSL.g:8159:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:8163:1: ( ( ( 'abstract' ) ) )
+            // InternalGeneratorDSL.g:8164:2: ( ( 'abstract' ) )
+            {
+            // InternalGeneratorDSL.g:8164:2: ( ( 'abstract' ) )
+            // InternalGeneratorDSL.g:8165:3: ( 'abstract' )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            // InternalGeneratorDSL.g:8166:3: ( 'abstract' )
+            // InternalGeneratorDSL.g:8167:4: 'abstract'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            match(input,94,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalGeneratorDSL.g:8178:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:8182:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:8183:2: ( ruleStringOrId )
+            {
+            // InternalGeneratorDSL.g:8183:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:8184:3: ruleStringOrId
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalGeneratorDSL.g:8193:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:8197:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:8198:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalGeneratorDSL.g:8198:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8199:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            // InternalGeneratorDSL.g:8200:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8201:4: ruleQualifiedName
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalGeneratorDSL.g:8212:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalGeneratorDSL.g:8216:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalGeneratorDSL.g:8217:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalGeneratorDSL.g:8217:2: ( ruleAttributeDefinitionRule )
+            // InternalGeneratorDSL.g:8218:3: ruleAttributeDefinitionRule
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalGeneratorDSL.g:8034:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalGeneratorDSL.g:8227:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8038:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:8039:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:8231:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:8232:2: ( ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:8039:2: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:8040:3: ruleStringOrId
+            // InternalGeneratorDSL.g:8232:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:8233:3: ruleStringOrId
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -24490,17 +25040,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalGeneratorDSL.g:8049:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalGeneratorDSL.g:8242:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8053:1: ( ( ruleTypeRule ) )
-            // InternalGeneratorDSL.g:8054:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8246:1: ( ( ruleTypeRule ) )
+            // InternalGeneratorDSL.g:8247:2: ( ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:8054:2: ( ruleTypeRule )
-            // InternalGeneratorDSL.g:8055:3: ruleTypeRule
+            // InternalGeneratorDSL.g:8247:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8248:3: ruleTypeRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -24531,17 +25081,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalGeneratorDSL.g:8064:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalGeneratorDSL.g:8257:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8068:1: ( ( ruleExpressionRule ) )
-            // InternalGeneratorDSL.g:8069:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8261:1: ( ( ruleExpressionRule ) )
+            // InternalGeneratorDSL.g:8262:2: ( ruleExpressionRule )
             {
-            // InternalGeneratorDSL.g:8069:2: ( ruleExpressionRule )
-            // InternalGeneratorDSL.g:8070:3: ruleExpressionRule
+            // InternalGeneratorDSL.g:8262:2: ( ruleExpressionRule )
+            // InternalGeneratorDSL.g:8263:3: ruleExpressionRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24572,21 +25122,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalGeneratorDSL.g:8079:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalGeneratorDSL.g:8272:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8083:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalGeneratorDSL.g:8084:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8276:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:8277:2: ( ( ruleQualifiedName ) )
             {
-            // InternalGeneratorDSL.g:8084:2: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:8085:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8277:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8278:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
-            // InternalGeneratorDSL.g:8086:3: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:8087:4: ruleQualifiedName
+            // InternalGeneratorDSL.g:8279:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8280:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -24621,21 +25171,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalGeneratorDSL.g:8098:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalGeneratorDSL.g:8291:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8102:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalGeneratorDSL.g:8103:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8295:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:8296:2: ( ( ruleQualifiedName ) )
             {
-            // InternalGeneratorDSL.g:8103:2: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:8104:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8296:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8297:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
-            // InternalGeneratorDSL.g:8105:3: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:8106:4: ruleQualifiedName
+            // InternalGeneratorDSL.g:8298:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8299:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -24670,17 +25220,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalGeneratorDSL.g:8117:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalGeneratorDSL.g:8310:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8121:1: ( ( ruleTypeRule ) )
-            // InternalGeneratorDSL.g:8122:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8314:1: ( ( ruleTypeRule ) )
+            // InternalGeneratorDSL.g:8315:2: ( ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:8122:2: ( ruleTypeRule )
-            // InternalGeneratorDSL.g:8123:3: ruleTypeRule
+            // InternalGeneratorDSL.g:8315:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8316:3: ruleTypeRule
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24711,17 +25261,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalGeneratorDSL.g:8132:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalGeneratorDSL.g:8325:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8136:1: ( ( ruleTypeRule ) )
-            // InternalGeneratorDSL.g:8137:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8329:1: ( ( ruleTypeRule ) )
+            // InternalGeneratorDSL.g:8330:2: ( ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:8137:2: ( ruleTypeRule )
-            // InternalGeneratorDSL.g:8138:3: ruleTypeRule
+            // InternalGeneratorDSL.g:8330:2: ( ruleTypeRule )
+            // InternalGeneratorDSL.g:8331:3: ruleTypeRule
             {
              before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -24752,17 +25302,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalGeneratorDSL.g:8147:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalGeneratorDSL.g:8340:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8151:1: ( ( ruleStringOrId ) )
-            // InternalGeneratorDSL.g:8152:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:8344:1: ( ( ruleStringOrId ) )
+            // InternalGeneratorDSL.g:8345:2: ( ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:8152:2: ( ruleStringOrId )
-            // InternalGeneratorDSL.g:8153:3: ruleStringOrId
+            // InternalGeneratorDSL.g:8345:2: ( ruleStringOrId )
+            // InternalGeneratorDSL.g:8346:3: ruleStringOrId
             {
              before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -24793,21 +25343,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalGeneratorDSL.g:8162:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalGeneratorDSL.g:8355:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalGeneratorDSL.g:8166:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalGeneratorDSL.g:8167:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8359:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:8360:2: ( ( ruleQualifiedName ) )
             {
-            // InternalGeneratorDSL.g:8167:2: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:8168:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8360:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:8361:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
-            // InternalGeneratorDSL.g:8169:3: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:8170:4: ruleQualifiedName
+            // InternalGeneratorDSL.g:8362:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:8363:4: ruleQualifiedName
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
             pushFollow(FOLLOW_2);
@@ -24843,6 +25393,51 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     // Delegated rules
 
 
+    protected DFA5 dfa5 = new DFA5(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\135\2\133\2\uffff\1\5\2\uffff\2\133";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\74\uffff\1\4\20\uffff\1\3",
+            "\13\7\25\uffff\1\7\10\uffff\1\7\16\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\25\uffff\1\7\10\uffff\1\7\16\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\25\uffff\1\7\10\uffff\1\7\16\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\25\uffff\1\7\10\uffff\1\7\16\uffff\4\7\1\6\1\7\15\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA5 extends DFA {
+
+        public DFA5(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 5;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1662:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -24882,28 +25477,28 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0080000000000030L});
     public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000032L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x00040000000081F0L,0x0000000010000080L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x000C0000000081F0L,0x0000000010000080L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x00040000000081F0L,0x0000000020000080L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x000C0000000081F0L,0x0000000020000080L});
     public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
     public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000100L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0004000000C081F0L,0x000000001800A080L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0004000000C081F0L,0x0000000030001080L});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000200L});
     public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
     public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x00000000003F0000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x00000000003F0002L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000C00000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000C00002L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000007000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x00000000003F0000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x00000000003F0002L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000C00000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000C00002L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000007000000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
     public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0004000000C081F0L,0x000000001800E080L});
-    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0004000000C081F0L,0x0000000030003080L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0020000000000000L,0x0000000000008000L});
     public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
     public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000007F60080L});
     public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0001000000000000L,0x0000000000000040L});
@@ -24917,5 +25512,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalContentAssistPar
     public static final BitSet FOLLOW_70 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
     public static final BitSet FOLLOW_71 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
     public static final BitSet FOLLOW_72 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
+    public static final BitSet FOLLOW_73 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000002L,0x0000000008000000L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtextbin
index 7c294ef2c5cbaaa3139d51c7e2c56ec3abae4022..8ff38bba40a0aedad068ed7292b5680e67ce676d 100644
GIT binary patch
delta 5539
zcmZu#XMhw%7N%yVdp5AUENp@Wfh8x$1gFHQ>IKE~kbDB--LNz`-ZHb!&LW(8jX8Uq
zZNPM9%n_ASRLpt?L_Nb9&cvB8fQkvjeP4C;>@LUr*qQG4-uHd=s^06@`}o3bN8GW)
z68o+D*4kO&m09ux(KS-zWHYV#R3<;uUE=24Op`mat=Wyr6Gb$VoEMcRMWS7zRf)v^
zxrvxOS(IC)i`^yZOgf*=X6(p>xI9HvTJlsAd>VtR+k+bmzGAp7PZwoYa=qyMk!Of_
zBr?g0$}@#+MUD{iEI(0GJ^E}qpKW~QIdmEhr*k2pB-`TVQu%DI)sBvUgulX7t`-%M
z{{Hr&Dt}{5QBAO>zZqHQMPgl|eG>^|F74q9%ZkbKMK?=c5V5*MhZbx_{tq>!6&F&<
za3SPHbXnt1s~uR|m|mV<?Ar2T+7hr`LffUVjV!s0_Xbg{|7>mjjDqYdLfKdDM)p-)
z;Tiy44P&uhQ)aPQ(lxZ58m|6Ye_L&>eI1v%)-S6YRD8Wz*bV-;x<Px~DB{S>O$8KW
zMsLl{47kPrOI`2sTTQ@i%tW<+RnMv_?C0%BLtNg$b==7`^oOCk;lP}m%DcJQN2W5i
zybCLfPMiRh>*#hj-5TiT_wHF<br07)5ypFITu);?jrEg{Zc8=W@*lJ__&(b2r@asD
zJ?CWHz+(gP`_ttCx;*G#)^kwBLkt^_dmDN0VSjVafzuwL<9ImoBOk?L%UjzPO<vKG
zb6Z=(!}u7}wkq%m|H{Y1O?UzjF*&VK$R~X-UOPZOMfaR>luw6#|D@kxht3r88TvKI
zXX)1*`aKu=Jx@t=+eEjBe8Jz;t9IC0c}sFta!vA7xjK1v^1S4=GM~Ir9xqQwzL9(<
zxkVl#=g3l-mYe;q^>xKBnvHqMA5~xHy^NhKlK&Frtcc>&qSkya)s(lRlW@vk0bAh~
zQt&FSt^CRsSIF0p4J(sc=IU*KooYA0<KGm@%6bE?Med5ci}NMqoA54aZ9@&sMzjuj
zi$(ml*du5GF9}=zhakFE<vWOu94q9z{^kKSarquB@_ql;`aa$VM*J3*eN7@E^Z8tQ
zQCr^aQ1>zUUo6U&A9m9CQK<1_f{zvQ6Pmdit>;s6Y(=*!ro^C_KQm;XlPsP{%wFkX
z?J@ZU4sogck`dbwQ85b|GE3Xzwwt)G7+01^wA&H<wJx1+L=Q{u2>p<`Z=ouV<O7Ji
zF25uC_dxGDHIpwud-4Yp^CPiK5(#4k@J<c<6M=sYodEO;fMe-QUZegBRMiEj<x`ro
zsdii?f(R8MY}Z7hU=}eIC9sMCSb0|HCxo(rY%d`Wu~nSdMZoT+ve{-gl_{uJ#U`qR
z=;et-2M6GnYW%LmFAE)kR}T21MFEs1s1RkIrMi*fkTlvws=1w^(gb!l3>_T6&_gp+
zk)b+t1VarOngb}!P|GFMF+DPuORa2&?`fir>Sgj%uminbqxWVuQVbKS4~|x`+w3lL
zGx?yssy(=$Tgf6+U()mgP32VmU~F>Rnfe>124D2888QISmKsRmgF*uU27{|OZDNHQ
z;;-skJ!&W_N(~FVBnnCm2aPT$HNx}{H4=f5<AfT;2yahDBsxUw6-H>8dsF5<kXbf2
zn_k>5abKfkKjxw|kqE6w#b}+1G1U8;&`SulKWMGx0MWPy5O=KT>P33AH`8|baVBs)
z;VTn~&ORWSph+f@WK!r0k|an<-9mTPRFYJROK42xQ|%lM<GguM)o9ibngKsq!%rdn
zfd;-2@CR`Xi-AI5e$-Uc?9{<9MaNDM>bKbU3O%Z%n$xYRaAHx1Ft3L*=67(7j0@tu
zX}mZd7xI0%RdrMS<Tf={ey_TyBDIfFs!kmW>9teZGEIbPZ*jUksp)~b<UJ5Q1EP!6
zOaR6(EeSQNV{=op!Oz2|=J0mdwtK6&)P=sSeorMsg*q%;(mX%eQ02{M`W8S#`Ser{
z%^pP;P#+#ptA(Z<3T8+-Lg()fodo<b6p-pDKrJ%-%!g_U59wlx87Y*jH7p4<&|@hL
z!-P7L-%O%PGe6<nxNCln3Pj4&AnH#LWvgZc+D)8Bg<950V1@!W12Nl4V2e1=Wawyw
z>OIcE!CszfZqv^V)ygGsYlT{nygj)-xgohD`BQRR@>4lKxl!0Ll^3yyYV*%+7-KKz
z&tv>&8pe1l@H06-YAs5&x*{G|D|tx6b`T`_&(N>(QFSbm97COjRxIZ@o#W#nWtZVt
z{e?B{F>*yzcY#$D$j7QWA=uoQI#Jk2;ITrTgy(CmcQP}43U|5iGz|oB#-;$y*fBg5
z3T7xc9SSUU#%>gxNd;#a1zXUE^jwWoCe%4$5;;?cN%SVf73XQS8WKw8GP40aXKB)(
zNBSc48Ja-NQQA`HGvoq>=w2LzTxdcrG9lW8kTqKE#jNQ|LKo<{ln2RMAk<~yxxXC3
z;(B*Y-~M}`OsH_MR#!3z$MdRPU9UE-0KSGk3-zhEmUpj%&hG3nonL{}T8Qzu#_K7#
zTO!fP2f}ZF@R+)h!f!IduLu6kzz>>{x@9+8a4WaqHu^7*s@nl=bq}B$-PWdDx`o{Y
z8*>MwB{z7K3Cuew6c4Yv_`ME-E6qc+!<O7_G~7eE6^TSg52(EtTEYh^rz*9c3~vMk
zpwPp)>3;VyMQnb(ggQm7Ru`ysNRu5=_p?YgL_`-m;lI$(*S~yl^`r-wKh*h>^wKuG
zhe3X@-w#sH{ZaK0^w>yWCl?6XsMGhbzkP6(_XyYZD1b_*E^Eo=@&UqQ2H|lc6r;$r
z4WUoy&?liXo(}G*r?9;4!G*hc8v0>tOR6bo15b0Is4~S#K5X#MaH<||m9(T=+~(2g
zjBCymhkNxLl+;eA1%_Q)*YifzCjY)6y}cJ8#a5evT&$rGAk>QxQ)uPtCGxYAzf69d
zXg$#nx9rxu+hS;6A?>T6EuMv&!SY`-M6YxC7;$OA;xWhLal#?qYR!ANrQReiTE<)W
zE@{dlBN+@gLcI+cg;7NBIp=tsBca|2ipo~+BF4rm9$p31d&Ggh_rr?&004nezgnv;
z48IQH7~=H{xbi+^3@YxUU0gplu5kW@E(?YFl;1dEYHLXT8Scc7$zjR^`{y)+{fm(O
zOF$ZHK))@d-yYI`rJvcL|9V&7Z`%2H7=DiNn*Tfg;PHl*?*pU${eyqSuv+g&M()H`
zl+ViJ&6jgxupd8(;6VS({Xoktn6W9ppzlQ$M|g)LeC3pEu3*;D4ySmOgTpD_MtOGh
z5HW{?e326qwr9nbWOKr?u%f~la%>>?6T*o@ZZw?{PLa-cDzj9dai^HfC15U@$$J51
zsiEvjN;GM00#_NuI^_(hKuGuSr0b6C1+m>sY$an+y`6l3(VZpe^g#1-szO)jtA@Uy
zrdU$KsR=gIa%!391;VL=?$VrV{@E0qey1m;^n#R{>1lu85!J=@2C}z5V?=$oK3XrQ
zbf+(z`uVqxsILfQ_A`$C{k0<oc?}R1bq0W{y%?Q=U@Tm+3Y<Y`!Oq|yQf(5pGX&7A
zP=1`D<QYaWb5pr=YEiS>`N7}}H=HAw8vJjp;N~AZveX;NeQVBUTQt=uQtfF1BA`kD
z9UEyr&R*suJ9{%fBZafi?((xQCH11X{phA2Ucwp8yJH}<(#f`EIR9bmJ+t>5@p;_#
zH^;4m3!c-?0mzi?j5V7w4y5Qtsa#%*9uMH;Hn2^AJ(|x7XCfS8_<w;mPYTVP>Wvs`
zleo0vT)J=+N~xxg<G>ZQB%DUr2*7nalPP?Pf6l17Vovdtd60kGs5%c*yH)0JWVdx!
z5DuqyYe~8}IOUwx<$NHp?5$(c`6GohjoO=-04?s&P~3F56t$+7wKVe_&S1cjTy~jo
zIEa_HE8M2GJYVRYS-9rOoGm>3CnRj*=48&HRAk<n8*Y>y$FWg|fp=H$dB$5f^9j08
mI1BiVo)>=9qv|>Js@myvaY~#qPKDFU>FW%0rie&1CjJLiy~p4H

delta 5323
zcmZu#cbrpI7Ut&Vy-cPTrZIyI(iz6AT~XxSdjS_gs?I8i8fM-=b~8y#G77e51q;@v
zuB+_Yd#|Wi*0mSx6-Crl?1}|l#j@YI@4jTlpYz8|^3FNm_nmXkJvo`p2S2*#)-5L6
z;g0XktyONsH2CqX&g3UBBV-?FaF;QDBC|~E@OZM%Vf}viNh}fyO-8`Uu!jz2d<CmC
zE3%0tOY^fcPBxzEwnCF4d?l+e?NvIEpF%<75p*h?OVi|+PiJ$M(GJ(sO!)HCy>}Z%
zM^|Y9XLwbOqsz}^rWxjEv1*f_?eWI#s?H(K@ep?|J@dR{8z)qqN6%t-c0N730MABx
z8yZXI{+*tW@)ht4!5dY)scudCj{yoV3KU-a2MSk{>xJG|jV<jff|M>{m6TFhSGqS7
z&n9x|l%LI|l+0zUJk;jh)YMWnuP^Bs{BoVv72efNqqez{QNgb&NJ1%8&90`<YrIdI
zTBFzMfa|=<=GL0)QHKb>f%3aCWDYWhd-jleZ%%VX^-W09*lQB9znQGJc)iVI2j5DW
z?}cZ#(X-nrqD4hK*c=&r2N@~gPBPv_#-YmiWplLtZh{+5)-`0khpfY3ZEl!)SYJG8
z@p~zHPuTAx`&w_0AtS5qr=UF%L_hoiFEylL+=EoH<NQa#Z~jnF<9{O}%x6tu{9&)H
zrD@y$kat%5@kau;N6GDg+4C5GjNFDlPHxG-?TNtcN#ZB3r^w5Fn!I|nmwl++V<+vb
zeI&n(Ut=F<Uudu3r`xOSbL}g6-oB0>W3RV2+8^+le1BfX6Z{#RT-|=lGtLyJCy`3z
z6X}$HgwN^|Sr;+}88xxkKpz(7&*4-{`13CH#bh%YU!2Ql<6U{nn2a8O0U8UBP^A~~
z-pqrB@t4pCW-8w6s2+Hk)USodE0iAHvsd9-;w;NM=v>BMqxQ`8;RcZa74kZ(G5H&T
zyhdj6Hwk17m4L5Dbm%C?-|}X+Hd=4Pz&Ciw)}ih@I$$H^(-4dCd_J34+?Vf{IFfo7
zNm=~80TSO2B>tDMCo=v4nJF11=R@Mygfd1+p<ld@G}*^Q7NO#~NIlFyL1UNkPbuOv
zL{!a(hSZW`+~+#(3yQ0V#fo+Wf2pp~S2VXa2Y$%-Yp9B#_5e~9_=eEG1$z1PRK5W1
z^6zxa7Q!x##k3W`-z(rB2>5@26M%mNa5$05E7YF|bt_OSrzO+zA};?~NBlyt<*``7
z4B%fC@NWPX?x4VrF~NXr^$-qWix9Ad0qkm#PA8pss-Rkg{U~7)dSxuu&w+)7Mff5@
z_$7fO@S=b(S?oh8f>KuDnxc#tW+w6&#>pZ>xelz*4E-FyP^lQIh@m=g1VarmBz-8w
zP)jM)QF(Ya8(&_8AFQKh)a&{b>_Bf&=;&b6ic=U9O=zvClXQBWRNkN4qM0hciCCBz
zLNqPj>|qVjRt-GVOATvqw*itVhLO&;zySZ@fQ}|oxqLj;<uI`=(963E7hMyKz<m-U
z{V2YUSz;7e)O8Z0^~@1t02Df!iLrl(FwP~2@%<p$0|+I10?F<`bt*d3iSA-?w$oB$
zRGYF`EU=<9e^RB{o)X$2@M28t2p#6(08zL*5$?{w^-gH3kM5%VcJ(f8YjSr}0J{^w
z#J~W6JpfSVEX!n_Tn@8N!R$#elStl_cs^c~x0jBatmOq($g>qXCv*{b0bP>3Zh$as
z6zWGz(Q{2qh0T~aiHT{bVU?P-@nj+wr;$s8MC?s9I|xzY&u|Ux;m1#>*T>*B-@rGC
zGSR|66Fc*7`Bq_w4lzm8iG85Faav!hi;#jb?&>)%X87{#yP$d|RF{Z-ffz;?Ffj{C
z3WH3{20t~Lm_v_)2`%Q5EKF!IkCcpMVt$a(e()>9GJsi*OQpMMe=24tb8!{s1ST~U
z#b10S;sAXU3T7xfP}Ot606hx>JqHcYvq<Zq@`!_j20ettO<>|st!eK8qT;?NidamJ
z<Cy58zf@z<Y2RY6vDeyL?4Rw;_NRP-{SdRlqML<7!tqv)*rlw8UM>l-LFPDb)reu<
zM<Z&dF2yr@fnhF==NuL(5ee#_>H4bq3I7!di*7^w4GD+Q-hmbQCRM(@-issa+!S4&
zH2E$y)cwnl+QWcXI~Pkxq9@^W&q6vrXcmt4LL&;0oC3-F^$>kQDGsO1wqxRmeuZLU
znSW|wv7F3DF>$0`=)BI>s!8G~;yfChm4y#RpYIr*#IckF=6k^m0WJiX;y9JX@stJa
z)0D+VOpy}<dT|mMRp+0K!|_*a)$l8bb0s)SJ8A9q`A*S%rxITYW`f$t!{Ri2beiIH
z3Ry)VYL5CLXCTC-LZ7K)lnwgMQu@xOTY8R$J(DqUE>&P56P{lZL!1X)5w-g3CO+R+
z#>53dQPp;h{-VWtfGe%lNFq(0bP)kB!Yd{&rpK%43~6f2b9$VtgBk1#{-+l6FVb5b
ziw$sr?n|IMEG{M8mj$lCyd3cUbP-pmnqNsZzluD13~@EU%vv98ij(WgCNeY-a1z%*
z3*BHP>{=3*VB$LZdp!i!=uf<UXK;fiy^-`)#bW(EAnzvBfIj`E(<iAq$(xB`z0Uxl
zw@@AQ{8Gy~%`Ya77AwUnalKfL=C(rOHo8@}<5pQQb*rY2sb_b1hm2{A-bwto8R9O_
z9n<LEt*WucZ`YDUZzi1$J{#|$B<@8LWz*GTzr6S9@U@U{MRD(x4Z`nNNDn|=#D`(x
zLF7{FzwvKbE)(xki=B9gl3K&snV|hW$md~SM`<RJagvFYqdSIHdhv*7k8O1y)%1@M
zeSIu8M|%dN8D|m}k3)(jo&az(Kw{!ah$#-<r-+{h@6$w&etpKLwsLtVqiLTd+I1*E
zbUq%c^j-0s7Vta?!1hTdP`&`l5}`J6LSW)0!o?(b8GlRZdtEw(wS$RQAfvD~sPlc5
zXcCa}ntx?1@j7CxtP{tMF5b}k-c&{xE7^J=_*V5LQM^U*s}cWpaGy3%4DQoAzw_Lv
zJ>mN<xh!JhJ^G7o67L7(w1`KJ$YTEj`v+u3bw2d1hATD!Q=5JIj{^FS1Nu)W2=t%+
z-u1I0|L5cb{x9e+@qbA#R4X&_m2Xsiy;)CEtXX-d*DbDYUlZ6jIGxJ*$^?twq2DsU
z!M~#u!cZ-kaZFn<=nU~ah5kU-b6PrEF#FN8q|^2Ik)m-u`+KmkD}GW3y%h?>J?ShH
zKO@OvTm1s$He~ZF>_#HR#Bb^d;;AL7?d2fYB?EKmJbI=mWyq(L22o-vD-#RLFo~7)
z4-IJ{q!zvIb+%VWBig^jOSd=f9;JIHOEJ%6SzusHmP0}D9x++rpP(r#skjT7tnzrr
zV5^$YYrHqxTcWi(y3YHhy`_4vBCjWN1IXLF11IQzK*&bz*yPQdFv@KPzafVJwRqWN
z3(_vUr7oAP7^iZmA1NMVmfQx=!Qhm`h^Gxa4W0P^M|^S8893GDaLu_b)o3t%a%s02
z!SqMLM$lO#)9H+297&9$G$X!m$<ZLe;piVZM)#{6OBI>G<T$EG>v)n<11H%|&($Xm
zleA^a4)3szhA1u8=nxt6&hBV%X_vO-_PVG$&~c+xvw0<9M?~410ksqCMn28t&Tt6h
z+qW|B5}0=_G7<4^c&qYYa`yr4U+8{05uxaQ=1N++36av0v~5e;w(EE%lUzQqw<Yb|
zq?~qc3;%W)=z{{%=3OB<5G^$Um=sjfo<!1bUkP}=06bGj;Sq`aQkTi8lyg_QFXiVv
zEl6r__>|=0y_qB?iKMmL?8&BknWU||)LG_q_2ub%wcH2qsUv3qsMxY<y2zQ75Kcqx
z8=TfG^2TY+R^Iy#_@t0?v^$e?$!!snYO(e|E~!FH+$$at>%=$W2gziIv}BEJkZq`0
I$OyCl1D8>NVgLXD

diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.g b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.g
index 9daf3d3c..9b2e1210 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.g
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.g
@@ -1010,7 +1010,7 @@ ruleInstanceRule returns [EObject current=null]
 				{
 					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
 				}
-				ruleQualifiedNameRule
+				ruleQualifiedName
 				{
 					afterParserOrEnumRuleCall();
 				}
@@ -1326,52 +1326,6 @@ ruleDataReferenceRule returns [EObject current=null]
 	)
 ;
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule returns [String current=null]:
-	{ newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); }
-	iv_ruleQualifiedNameRule=ruleQualifiedNameRule
-	{ $current=$iv_ruleQualifiedNameRule.current.getText(); }
-	EOF;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		{
-			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-		}
-		this_StringOrId_0=ruleStringOrId
-		{
-			$current.merge(this_StringOrId_0);
-		}
-		{
-			afterParserOrEnumRuleCall();
-		}
-		(
-			kw='.'
-			{
-				$current.merge(kw);
-				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-			}
-			{
-				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-			}
-			this_StringOrId_2=ruleStringOrId
-			{
-				$current.merge(this_StringOrId_2);
-			}
-			{
-				afterParserOrEnumRuleCall();
-			}
-		)*
-	)
-;
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getExpressionRuleRule()); }
@@ -2232,21 +2186,49 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
 	(
 		(
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -2525,6 +2507,111 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.tokens b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.tokens
index 0ad7f2b5..189c541b 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.tokens
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSL.tokens
@@ -1,80 +1,82 @@
-'!'=44
-'!='=65
-'%'=72
-'('=46
-')'=47
-'*'=70
-'+'=68
+'!'=43
+'!='=67
+'%'=74
+'('=45
+')'=46
+'*'=72
+'+'=70
 ','=24
-'-'=69
-'.'=40
-'/'=71
-':'=51
+'-'=71
+'.'=63
+'/'=73
+':'=52
 ':='=38
 ';'=16
-'<'=66
-'<='=67
-'='=64
-'>'=63
-'>='=62
-'AND'=43
-'E'=75
-'G'=78
-'M'=79
-'OR'=41
-'P'=76
-'T'=77
-'XOR'=42
-'Y'=73
-'Z'=74
+'<'=68
+'<='=69
+'='=66
+'>'=65
+'>='=64
+'AND'=42
+'E'=77
+'G'=80
+'M'=81
+'OR'=40
+'P'=78
+'T'=79
+'XOR'=41
+'Y'=75
+'Z'=76
 '['=18
-'\u00B5'=86
+'\u00B5'=88
 ']'=19
-'^'=45
-'a'=90
-'array'=61
-'boolean'=59
-'c'=84
+'^'=44
+'a'=92
+'abstract'=49
+'array'=62
+'boolean'=60
+'c'=86
 'component'=22
-'d'=83
-'da'=82
+'d'=85
+'da'=84
 'data'=39
 'end'=30
 'executing'=37
-'expression'=56
-'f'=89
-'false'=50
-'float'=58
+'expression'=57
+'extends'=51
+'f'=91
+'false'=48
+'float'=59
 'for'=27
 'from'=36
-'h'=81
+'h'=83
 'import'=15
 'in'=28
-'instance'=53
-'int'=57
-'k'=80
-'literal'=52
+'instance'=54
+'int'=58
+'k'=82
+'literal'=53
 'loop'=29
-'m'=85
-'n'=87
-'p'=88
+'m'=87
+'n'=89
+'p'=90
 'pipeline'=17
 'pipelines'=32
 'reads'=23
 'samples'=35
 'step'=20
-'string'=55
+'string'=56
 'to'=31
-'true'=49
-'value'=48
-'void'=60
+'true'=47
+'type'=50
+'void'=61
 'with'=34
 'write'=33
 'writes'=25
-'y'=92
-'z'=91
+'y'=94
+'z'=93
 '{'=21
-'|'=54
+'|'=55
 '}'=26
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
@@ -165,3 +167,5 @@ T__89=89
 T__90=90
 T__91=91
 T__92=92
+T__93=93
+T__94=94
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLLexer.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLLexer.java
index 5853458e..0802c4d5 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLLexer.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLLexer.java
@@ -60,6 +60,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
     public static final int T__43=43;
     public static final int T__91=91;
     public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__94=94;
     public static final int T__90=90;
     public static final int T__19=19;
     public static final int T__15=15;
@@ -640,10 +642,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:36:7: ( '.' )
-            // InternalGeneratorDSL.g:36:9: '.'
+            // InternalGeneratorDSL.g:36:7: ( 'OR' )
+            // InternalGeneratorDSL.g:36:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -660,10 +663,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:37:7: ( 'OR' )
-            // InternalGeneratorDSL.g:37:9: 'OR'
+            // InternalGeneratorDSL.g:37:7: ( 'XOR' )
+            // InternalGeneratorDSL.g:37:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -681,10 +684,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:38:7: ( 'XOR' )
-            // InternalGeneratorDSL.g:38:9: 'XOR'
+            // InternalGeneratorDSL.g:38:7: ( 'AND' )
+            // InternalGeneratorDSL.g:38:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -702,11 +705,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:39:7: ( 'AND' )
-            // InternalGeneratorDSL.g:39:9: 'AND'
+            // InternalGeneratorDSL.g:39:7: ( '!' )
+            // InternalGeneratorDSL.g:39:9: '!'
             {
-            match("AND"); 
-
+            match('!'); 
 
             }
 
@@ -723,10 +725,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:40:7: ( '!' )
-            // InternalGeneratorDSL.g:40:9: '!'
+            // InternalGeneratorDSL.g:40:7: ( '^' )
+            // InternalGeneratorDSL.g:40:9: '^'
             {
-            match('!'); 
+            match('^'); 
 
             }
 
@@ -743,10 +745,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:41:7: ( '^' )
-            // InternalGeneratorDSL.g:41:9: '^'
+            // InternalGeneratorDSL.g:41:7: ( '(' )
+            // InternalGeneratorDSL.g:41:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -763,10 +765,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:42:7: ( '(' )
-            // InternalGeneratorDSL.g:42:9: '('
+            // InternalGeneratorDSL.g:42:7: ( ')' )
+            // InternalGeneratorDSL.g:42:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -783,10 +785,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:43:7: ( ')' )
-            // InternalGeneratorDSL.g:43:9: ')'
+            // InternalGeneratorDSL.g:43:7: ( 'true' )
+            // InternalGeneratorDSL.g:43:9: 'true'
             {
-            match(')'); 
+            match("true"); 
+
 
             }
 
@@ -803,10 +806,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:44:7: ( 'value' )
-            // InternalGeneratorDSL.g:44:9: 'value'
+            // InternalGeneratorDSL.g:44:7: ( 'false' )
+            // InternalGeneratorDSL.g:44:9: 'false'
             {
-            match("value"); 
+            match("false"); 
 
 
             }
@@ -824,10 +827,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:45:7: ( 'true' )
-            // InternalGeneratorDSL.g:45:9: 'true'
+            // InternalGeneratorDSL.g:45:7: ( 'abstract' )
+            // InternalGeneratorDSL.g:45:9: 'abstract'
             {
-            match("true"); 
+            match("abstract"); 
 
 
             }
@@ -845,10 +848,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:46:7: ( 'false' )
-            // InternalGeneratorDSL.g:46:9: 'false'
+            // InternalGeneratorDSL.g:46:7: ( 'type' )
+            // InternalGeneratorDSL.g:46:9: 'type'
             {
-            match("false"); 
+            match("type"); 
 
 
             }
@@ -866,10 +869,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:47:7: ( ':' )
-            // InternalGeneratorDSL.g:47:9: ':'
+            // InternalGeneratorDSL.g:47:7: ( 'extends' )
+            // InternalGeneratorDSL.g:47:9: 'extends'
             {
-            match(':'); 
+            match("extends"); 
+
 
             }
 
@@ -886,11 +890,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:48:7: ( 'literal' )
-            // InternalGeneratorDSL.g:48:9: 'literal'
+            // InternalGeneratorDSL.g:48:7: ( ':' )
+            // InternalGeneratorDSL.g:48:9: ':'
             {
-            match("literal"); 
-
+            match(':'); 
 
             }
 
@@ -907,10 +910,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:49:7: ( 'instance' )
-            // InternalGeneratorDSL.g:49:9: 'instance'
+            // InternalGeneratorDSL.g:49:7: ( 'literal' )
+            // InternalGeneratorDSL.g:49:9: 'literal'
             {
-            match("instance"); 
+            match("literal"); 
 
 
             }
@@ -928,10 +931,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:50:7: ( '|' )
-            // InternalGeneratorDSL.g:50:9: '|'
+            // InternalGeneratorDSL.g:50:7: ( 'instance' )
+            // InternalGeneratorDSL.g:50:9: 'instance'
             {
-            match('|'); 
+            match("instance"); 
+
 
             }
 
@@ -948,11 +952,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:51:7: ( 'string' )
-            // InternalGeneratorDSL.g:51:9: 'string'
+            // InternalGeneratorDSL.g:51:7: ( '|' )
+            // InternalGeneratorDSL.g:51:9: '|'
             {
-            match("string"); 
-
+            match('|'); 
 
             }
 
@@ -969,10 +972,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:52:7: ( 'expression' )
-            // InternalGeneratorDSL.g:52:9: 'expression'
+            // InternalGeneratorDSL.g:52:7: ( 'string' )
+            // InternalGeneratorDSL.g:52:9: 'string'
             {
-            match("expression"); 
+            match("string"); 
 
 
             }
@@ -990,10 +993,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:53:7: ( 'int' )
-            // InternalGeneratorDSL.g:53:9: 'int'
+            // InternalGeneratorDSL.g:53:7: ( 'expression' )
+            // InternalGeneratorDSL.g:53:9: 'expression'
             {
-            match("int"); 
+            match("expression"); 
 
 
             }
@@ -1011,10 +1014,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:54:7: ( 'float' )
-            // InternalGeneratorDSL.g:54:9: 'float'
+            // InternalGeneratorDSL.g:54:7: ( 'int' )
+            // InternalGeneratorDSL.g:54:9: 'int'
             {
-            match("float"); 
+            match("int"); 
 
 
             }
@@ -1032,10 +1035,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:55:7: ( 'boolean' )
-            // InternalGeneratorDSL.g:55:9: 'boolean'
+            // InternalGeneratorDSL.g:55:7: ( 'float' )
+            // InternalGeneratorDSL.g:55:9: 'float'
             {
-            match("boolean"); 
+            match("float"); 
 
 
             }
@@ -1053,10 +1056,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:56:7: ( 'void' )
-            // InternalGeneratorDSL.g:56:9: 'void'
+            // InternalGeneratorDSL.g:56:7: ( 'boolean' )
+            // InternalGeneratorDSL.g:56:9: 'boolean'
             {
-            match("void"); 
+            match("boolean"); 
 
 
             }
@@ -1074,10 +1077,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:57:7: ( 'array' )
-            // InternalGeneratorDSL.g:57:9: 'array'
+            // InternalGeneratorDSL.g:57:7: ( 'void' )
+            // InternalGeneratorDSL.g:57:9: 'void'
             {
-            match("array"); 
+            match("void"); 
 
 
             }
@@ -1095,10 +1098,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:58:7: ( '>=' )
-            // InternalGeneratorDSL.g:58:9: '>='
+            // InternalGeneratorDSL.g:58:7: ( 'array' )
+            // InternalGeneratorDSL.g:58:9: 'array'
             {
-            match(">="); 
+            match("array"); 
 
 
             }
@@ -1116,10 +1119,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:59:7: ( '>' )
-            // InternalGeneratorDSL.g:59:9: '>'
+            // InternalGeneratorDSL.g:59:7: ( '.' )
+            // InternalGeneratorDSL.g:59:9: '.'
             {
-            match('>'); 
+            match('.'); 
 
             }
 
@@ -1136,10 +1139,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:60:7: ( '=' )
-            // InternalGeneratorDSL.g:60:9: '='
+            // InternalGeneratorDSL.g:60:7: ( '>=' )
+            // InternalGeneratorDSL.g:60:9: '>='
             {
-            match('='); 
+            match(">="); 
+
 
             }
 
@@ -1156,11 +1160,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:61:7: ( '!=' )
-            // InternalGeneratorDSL.g:61:9: '!='
+            // InternalGeneratorDSL.g:61:7: ( '>' )
+            // InternalGeneratorDSL.g:61:9: '>'
             {
-            match("!="); 
-
+            match('>'); 
 
             }
 
@@ -1177,10 +1180,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:62:7: ( '<' )
-            // InternalGeneratorDSL.g:62:9: '<'
+            // InternalGeneratorDSL.g:62:7: ( '=' )
+            // InternalGeneratorDSL.g:62:9: '='
             {
-            match('<'); 
+            match('='); 
 
             }
 
@@ -1197,10 +1200,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:63:7: ( '<=' )
-            // InternalGeneratorDSL.g:63:9: '<='
+            // InternalGeneratorDSL.g:63:7: ( '!=' )
+            // InternalGeneratorDSL.g:63:9: '!='
             {
-            match("<="); 
+            match("!="); 
 
 
             }
@@ -1218,10 +1221,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:64:7: ( '+' )
-            // InternalGeneratorDSL.g:64:9: '+'
+            // InternalGeneratorDSL.g:64:7: ( '<' )
+            // InternalGeneratorDSL.g:64:9: '<'
             {
-            match('+'); 
+            match('<'); 
 
             }
 
@@ -1238,10 +1241,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:65:7: ( '-' )
-            // InternalGeneratorDSL.g:65:9: '-'
+            // InternalGeneratorDSL.g:65:7: ( '<=' )
+            // InternalGeneratorDSL.g:65:9: '<='
             {
-            match('-'); 
+            match("<="); 
+
 
             }
 
@@ -1258,10 +1262,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:66:7: ( '*' )
-            // InternalGeneratorDSL.g:66:9: '*'
+            // InternalGeneratorDSL.g:66:7: ( '+' )
+            // InternalGeneratorDSL.g:66:9: '+'
             {
-            match('*'); 
+            match('+'); 
 
             }
 
@@ -1278,10 +1282,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:67:7: ( '/' )
-            // InternalGeneratorDSL.g:67:9: '/'
+            // InternalGeneratorDSL.g:67:7: ( '-' )
+            // InternalGeneratorDSL.g:67:9: '-'
             {
-            match('/'); 
+            match('-'); 
 
             }
 
@@ -1298,10 +1302,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:68:7: ( '%' )
-            // InternalGeneratorDSL.g:68:9: '%'
+            // InternalGeneratorDSL.g:68:7: ( '*' )
+            // InternalGeneratorDSL.g:68:9: '*'
             {
-            match('%'); 
+            match('*'); 
 
             }
 
@@ -1318,10 +1322,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:69:7: ( 'Y' )
-            // InternalGeneratorDSL.g:69:9: 'Y'
+            // InternalGeneratorDSL.g:69:7: ( '/' )
+            // InternalGeneratorDSL.g:69:9: '/'
             {
-            match('Y'); 
+            match('/'); 
 
             }
 
@@ -1338,10 +1342,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:70:7: ( 'Z' )
-            // InternalGeneratorDSL.g:70:9: 'Z'
+            // InternalGeneratorDSL.g:70:7: ( '%' )
+            // InternalGeneratorDSL.g:70:9: '%'
             {
-            match('Z'); 
+            match('%'); 
 
             }
 
@@ -1358,10 +1362,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:71:7: ( 'E' )
-            // InternalGeneratorDSL.g:71:9: 'E'
+            // InternalGeneratorDSL.g:71:7: ( 'Y' )
+            // InternalGeneratorDSL.g:71:9: 'Y'
             {
-            match('E'); 
+            match('Y'); 
 
             }
 
@@ -1378,10 +1382,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:72:7: ( 'P' )
-            // InternalGeneratorDSL.g:72:9: 'P'
+            // InternalGeneratorDSL.g:72:7: ( 'Z' )
+            // InternalGeneratorDSL.g:72:9: 'Z'
             {
-            match('P'); 
+            match('Z'); 
 
             }
 
@@ -1398,10 +1402,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:73:7: ( 'T' )
-            // InternalGeneratorDSL.g:73:9: 'T'
+            // InternalGeneratorDSL.g:73:7: ( 'E' )
+            // InternalGeneratorDSL.g:73:9: 'E'
             {
-            match('T'); 
+            match('E'); 
 
             }
 
@@ -1418,10 +1422,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:74:7: ( 'G' )
-            // InternalGeneratorDSL.g:74:9: 'G'
+            // InternalGeneratorDSL.g:74:7: ( 'P' )
+            // InternalGeneratorDSL.g:74:9: 'P'
             {
-            match('G'); 
+            match('P'); 
 
             }
 
@@ -1438,10 +1442,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:75:7: ( 'M' )
-            // InternalGeneratorDSL.g:75:9: 'M'
+            // InternalGeneratorDSL.g:75:7: ( 'T' )
+            // InternalGeneratorDSL.g:75:9: 'T'
             {
-            match('M'); 
+            match('T'); 
 
             }
 
@@ -1458,10 +1462,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:76:7: ( 'k' )
-            // InternalGeneratorDSL.g:76:9: 'k'
+            // InternalGeneratorDSL.g:76:7: ( 'G' )
+            // InternalGeneratorDSL.g:76:9: 'G'
             {
-            match('k'); 
+            match('G'); 
 
             }
 
@@ -1478,10 +1482,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:77:7: ( 'h' )
-            // InternalGeneratorDSL.g:77:9: 'h'
+            // InternalGeneratorDSL.g:77:7: ( 'M' )
+            // InternalGeneratorDSL.g:77:9: 'M'
             {
-            match('h'); 
+            match('M'); 
 
             }
 
@@ -1498,11 +1502,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:78:7: ( 'da' )
-            // InternalGeneratorDSL.g:78:9: 'da'
+            // InternalGeneratorDSL.g:78:7: ( 'k' )
+            // InternalGeneratorDSL.g:78:9: 'k'
             {
-            match("da"); 
-
+            match('k'); 
 
             }
 
@@ -1519,10 +1522,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:79:7: ( 'd' )
-            // InternalGeneratorDSL.g:79:9: 'd'
+            // InternalGeneratorDSL.g:79:7: ( 'h' )
+            // InternalGeneratorDSL.g:79:9: 'h'
             {
-            match('d'); 
+            match('h'); 
 
             }
 
@@ -1539,10 +1542,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:80:7: ( 'c' )
-            // InternalGeneratorDSL.g:80:9: 'c'
+            // InternalGeneratorDSL.g:80:7: ( 'da' )
+            // InternalGeneratorDSL.g:80:9: 'da'
             {
-            match('c'); 
+            match("da"); 
+
 
             }
 
@@ -1559,10 +1563,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:81:7: ( 'm' )
-            // InternalGeneratorDSL.g:81:9: 'm'
+            // InternalGeneratorDSL.g:81:7: ( 'd' )
+            // InternalGeneratorDSL.g:81:9: 'd'
             {
-            match('m'); 
+            match('d'); 
 
             }
 
@@ -1579,10 +1583,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:82:7: ( '\\u00B5' )
-            // InternalGeneratorDSL.g:82:9: '\\u00B5'
+            // InternalGeneratorDSL.g:82:7: ( 'c' )
+            // InternalGeneratorDSL.g:82:9: 'c'
             {
-            match('\u00B5'); 
+            match('c'); 
 
             }
 
@@ -1599,10 +1603,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:83:7: ( 'n' )
-            // InternalGeneratorDSL.g:83:9: 'n'
+            // InternalGeneratorDSL.g:83:7: ( 'm' )
+            // InternalGeneratorDSL.g:83:9: 'm'
             {
-            match('n'); 
+            match('m'); 
 
             }
 
@@ -1619,10 +1623,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:84:7: ( 'p' )
-            // InternalGeneratorDSL.g:84:9: 'p'
+            // InternalGeneratorDSL.g:84:7: ( '\\u00B5' )
+            // InternalGeneratorDSL.g:84:9: '\\u00B5'
             {
-            match('p'); 
+            match('\u00B5'); 
 
             }
 
@@ -1639,10 +1643,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:85:7: ( 'f' )
-            // InternalGeneratorDSL.g:85:9: 'f'
+            // InternalGeneratorDSL.g:85:7: ( 'n' )
+            // InternalGeneratorDSL.g:85:9: 'n'
             {
-            match('f'); 
+            match('n'); 
 
             }
 
@@ -1659,10 +1663,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:86:7: ( 'a' )
-            // InternalGeneratorDSL.g:86:9: 'a'
+            // InternalGeneratorDSL.g:86:7: ( 'p' )
+            // InternalGeneratorDSL.g:86:9: 'p'
             {
-            match('a'); 
+            match('p'); 
 
             }
 
@@ -1679,10 +1683,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:87:7: ( 'z' )
-            // InternalGeneratorDSL.g:87:9: 'z'
+            // InternalGeneratorDSL.g:87:7: ( 'f' )
+            // InternalGeneratorDSL.g:87:9: 'f'
             {
-            match('z'); 
+            match('f'); 
 
             }
 
@@ -1699,10 +1703,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:88:7: ( 'y' )
-            // InternalGeneratorDSL.g:88:9: 'y'
+            // InternalGeneratorDSL.g:88:7: ( 'a' )
+            // InternalGeneratorDSL.g:88:9: 'a'
             {
-            match('y'); 
+            match('a'); 
 
             }
 
@@ -1714,11 +1718,51 @@ public class InternalGeneratorDSLLexer extends Lexer {
     }
     // $ANTLR end "T__92"
 
+    // $ANTLR start "T__93"
+    public final void mT__93() throws RecognitionException {
+        try {
+            int _type = T__93;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalGeneratorDSL.g:89:7: ( 'z' )
+            // InternalGeneratorDSL.g:89:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__93"
+
+    // $ANTLR start "T__94"
+    public final void mT__94() throws RecognitionException {
+        try {
+            int _type = T__94;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalGeneratorDSL.g:90:7: ( 'y' )
+            // InternalGeneratorDSL.g:90:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:3538:21: ( '0' .. '9' )
-            // InternalGeneratorDSL.g:3538:23: '0' .. '9'
+            // InternalGeneratorDSL.g:3625:21: ( '0' .. '9' )
+            // InternalGeneratorDSL.g:3625:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1733,11 +1777,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalGeneratorDSL.g:3540:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalGeneratorDSL.g:3540:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:3627:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalGeneratorDSL.g:3627:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalGeneratorDSL.g:3540:30: ( '+' | '-' )?
+            // InternalGeneratorDSL.g:3627:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1763,7 +1807,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
             }
 
-            // InternalGeneratorDSL.g:3540:41: ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:3627:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1777,7 +1821,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3540:41: RULE_DIGIT
+            	    // InternalGeneratorDSL.g:3627:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1807,10 +1851,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3542:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalGeneratorDSL.g:3542:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:3629:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalGeneratorDSL.g:3629:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalGeneratorDSL.g:3542:12: ( '-' )?
+            // InternalGeneratorDSL.g:3629:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1819,7 +1863,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3542:12: '-'
+                    // InternalGeneratorDSL.g:3629:12: '-'
                     {
                     match('-'); 
 
@@ -1828,7 +1872,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
             }
 
-            // InternalGeneratorDSL.g:3542:17: ( RULE_DIGIT )+
+            // InternalGeneratorDSL.g:3629:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1842,7 +1886,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3542:17: RULE_DIGIT
+            	    // InternalGeneratorDSL.g:3629:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1874,15 +1918,15 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3544:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalGeneratorDSL.g:3544:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalGeneratorDSL.g:3631:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalGeneratorDSL.g:3631:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalGeneratorDSL.g:3544:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalGeneratorDSL.g:3631:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3544:16: RULE_INT RULE_EXPONENT
+                    // InternalGeneratorDSL.g:3631:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1890,11 +1934,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3544:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalGeneratorDSL.g:3631:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalGeneratorDSL.g:3544:52: ( RULE_DIGIT )*
+                    // InternalGeneratorDSL.g:3631:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1907,7 +1951,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalGeneratorDSL.g:3544:52: RULE_DIGIT
+                    	    // InternalGeneratorDSL.g:3631:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1919,7 +1963,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalGeneratorDSL.g:3544:64: ( RULE_EXPONENT )?
+                    // InternalGeneratorDSL.g:3631:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1928,7 +1972,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalGeneratorDSL.g:3544:64: RULE_EXPONENT
+                            // InternalGeneratorDSL.g:3631:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1959,11 +2003,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3546:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalGeneratorDSL.g:3546:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalGeneratorDSL.g:3633:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalGeneratorDSL.g:3633:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalGeneratorDSL.g:3546:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalGeneratorDSL.g:3633:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1979,7 +2023,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3546:20: '\\\\' .
+            	    // InternalGeneratorDSL.g:3633:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1987,7 +2031,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalGeneratorDSL.g:3546:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalGeneratorDSL.g:3633:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2024,11 +2068,11 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3548:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalGeneratorDSL.g:3548:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalGeneratorDSL.g:3635:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalGeneratorDSL.g:3635:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalGeneratorDSL.g:3548:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalGeneratorDSL.g:3635:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -2044,7 +2088,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3548:24: '\\\\' .
+            	    // InternalGeneratorDSL.g:3635:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2052,7 +2096,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalGeneratorDSL.g:3548:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalGeneratorDSL.g:3635:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2089,10 +2133,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3550:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalGeneratorDSL.g:3550:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalGeneratorDSL.g:3637:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalGeneratorDSL.g:3637:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalGeneratorDSL.g:3550:11: ( '^' )?
+            // InternalGeneratorDSL.g:3637:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -2101,7 +2145,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3550:11: '^'
+                    // InternalGeneratorDSL.g:3637:11: '^'
                     {
                     match('^'); 
 
@@ -2119,7 +2163,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalGeneratorDSL.g:3550:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalGeneratorDSL.g:3637:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -2168,12 +2212,12 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3552:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalGeneratorDSL.g:3552:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalGeneratorDSL.g:3639:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalGeneratorDSL.g:3639:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalGeneratorDSL.g:3552:24: ( options {greedy=false; } : . )*
+            // InternalGeneratorDSL.g:3639:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2198,7 +2242,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3552:52: .
+            	    // InternalGeneratorDSL.g:3639:52: .
             	    {
             	    matchAny(); 
 
@@ -2228,12 +2272,12 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3554:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalGeneratorDSL.g:3554:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalGeneratorDSL.g:3641:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalGeneratorDSL.g:3641:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalGeneratorDSL.g:3554:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalGeneratorDSL.g:3641:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2246,7 +2290,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3554:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalGeneratorDSL.g:3641: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();
@@ -2266,7 +2310,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalGeneratorDSL.g:3554:40: ( ( '\\r' )? '\\n' )?
+            // InternalGeneratorDSL.g:3641:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2275,9 +2319,9 @@ public class InternalGeneratorDSLLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3554:41: ( '\\r' )? '\\n'
+                    // InternalGeneratorDSL.g:3641:41: ( '\\r' )? '\\n'
                     {
-                    // InternalGeneratorDSL.g:3554:41: ( '\\r' )?
+                    // InternalGeneratorDSL.g:3641:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2286,7 +2330,7 @@ public class InternalGeneratorDSLLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalGeneratorDSL.g:3554:41: '\\r'
+                            // InternalGeneratorDSL.g:3641:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2318,10 +2362,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3556:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalGeneratorDSL.g:3556:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalGeneratorDSL.g:3643:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalGeneratorDSL.g:3643:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalGeneratorDSL.g:3556:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalGeneratorDSL.g:3643:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2375,8 +2419,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalGeneratorDSL.g:3558:16: ( . )
-            // InternalGeneratorDSL.g:3558:18: .
+            // InternalGeneratorDSL.g:3645:16: ( . )
+            // InternalGeneratorDSL.g:3645:18: .
             {
             matchAny(); 
 
@@ -2391,8 +2435,8 @@ public class InternalGeneratorDSLLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalGeneratorDSL.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=87;
+        // InternalGeneratorDSL.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=89;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2942,63 +2986,77 @@ public class InternalGeneratorDSLLexer extends Lexer {
                 }
                 break;
             case 79 :
-                // InternalGeneratorDSL.g:1:478: RULE_INT
+                // InternalGeneratorDSL.g:1:478: T__93
                 {
-                mRULE_INT(); 
+                mT__93(); 
 
                 }
                 break;
             case 80 :
-                // InternalGeneratorDSL.g:1:487: RULE_DOUBLE
+                // InternalGeneratorDSL.g:1:484: T__94
                 {
-                mRULE_DOUBLE(); 
+                mT__94(); 
 
                 }
                 break;
             case 81 :
-                // InternalGeneratorDSL.g:1:499: RULE_STRING
+                // InternalGeneratorDSL.g:1:490: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 82 :
-                // InternalGeneratorDSL.g:1:511: RULE_QUOTED_ID
+                // InternalGeneratorDSL.g:1:499: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 83 :
-                // InternalGeneratorDSL.g:1:526: RULE_ID
+                // InternalGeneratorDSL.g:1:511: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 84 :
-                // InternalGeneratorDSL.g:1:534: RULE_ML_COMMENT
+                // InternalGeneratorDSL.g:1:523: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 85 :
-                // InternalGeneratorDSL.g:1:550: RULE_SL_COMMENT
+                // InternalGeneratorDSL.g:1:538: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 86 :
-                // InternalGeneratorDSL.g:1:566: RULE_WS
+                // InternalGeneratorDSL.g:1:546: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 87 :
-                // InternalGeneratorDSL.g:1:574: RULE_ANY_OTHER
+                // InternalGeneratorDSL.g:1:562: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 88 :
+                // InternalGeneratorDSL.g:1:578: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 89 :
+                // InternalGeneratorDSL.g:1:586: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3021,13 +3079,13 @@ public class InternalGeneratorDSLLexer extends Lexer {
     static final String DFA7_maxS =
         "\2\71\1\145\2\uffff";
     static final String DFA7_acceptS =
-        "\3\uffff\1\1\1\2";
+        "\3\uffff\1\2\1\1";
     static final String DFA7_specialS =
         "\5\uffff}>";
     static final String[] DFA7_transitionS = {
             "\1\1\2\uffff\12\2",
             "\12\2",
-            "\1\4\1\uffff\12\2\53\uffff\1\3",
+            "\1\3\1\uffff\12\2\53\uffff\1\4",
             "",
             ""
     };
@@ -3062,23 +3120,23 @@ public class InternalGeneratorDSLLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "3544:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "3631:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\75\1\uffff\1\100\2\uffff\1\75\1\uffff\1\107\1\75\1\uffff\1\75\1\uffff\1\121\3\75\1\131\1\133\1\uffff\3\75\1\141\1\142\2\uffff\1\75\1\uffff\1\75\1\152\1\154\1\uffff\1\157\1\uffff\1\162\1\uffff\1\166\1\uffff\1\170\1\171\1\172\1\173\1\174\1\175\1\176\1\177\1\u0080\1\u0081\1\uffff\1\u0083\1\u0084\1\u0085\1\u0086\2\72\3\uffff\1\75\1\u008e\2\uffff\1\75\3\uffff\2\75\1\uffff\1\75\1\uffff\1\75\1\uffff\2\75\1\uffff\4\75\1\uffff\4\75\1\u00a0\1\75\2\uffff\1\u00a3\2\uffff\1\u00a4\2\75\5\uffff\2\75\1\uffff\2\75\7\uffff\1\u0086\31\uffff\2\75\1\u00ad\1\uffff\10\75\1\u00b6\5\75\1\u00bc\2\75\1\uffff\2\75\2\uffff\1\u00c1\1\u00c2\6\75\1\uffff\1\75\1\u00ca\5\75\1\u00d0\1\uffff\1\u00d1\2\75\1\u00d4\1\75\1\uffff\2\75\1\u00d8\1\u00d9\2\uffff\1\75\1\u00db\5\75\1\uffff\3\75\1\u00e4\1\u00e6\2\uffff\1\u00e7\1\u00e8\1\uffff\3\75\2\uffff\1\u00ec\1\uffff\1\75\1\u00ee\1\u00ef\2\75\1\u00f2\2\75\1\uffff\1\u00f5\3\uffff\3\75\1\uffff\1\75\2\uffff\2\75\1\uffff\1\u00fc\1\75\1\uffff\1\u00fe\2\75\1\u0101\1\u0102\1\u0104\1\uffff\1\75\1\uffff\2\75\2\uffff\1\u0108\1\uffff\1\u0109\1\u010a\1\75\3\uffff\1\u010c\1\uffff";
+        "\1\uffff\1\75\1\uffff\1\100\2\uffff\1\75\1\uffff\1\107\1\75\1\uffff\1\75\1\uffff\1\121\3\75\1\132\1\134\3\75\1\141\1\142\2\uffff\1\147\1\uffff\2\75\1\uffff\1\155\1\uffff\1\160\1\uffff\1\163\1\uffff\1\167\1\uffff\1\171\1\172\1\173\1\174\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\1\uffff\1\u0084\1\u0085\1\u0086\1\u0087\2\72\3\uffff\1\75\1\u008f\2\uffff\1\75\3\uffff\2\75\1\uffff\1\75\1\uffff\1\75\1\uffff\2\75\1\uffff\4\75\1\uffff\4\75\1\u00a2\2\75\2\uffff\1\u00a6\1\uffff\1\u00a7\2\75\5\uffff\2\75\2\uffff\2\75\7\uffff\1\u0087\31\uffff\2\75\1\u00b0\1\uffff\10\75\1\u00b9\5\75\1\u00bf\3\75\1\uffff\3\75\2\uffff\1\u00c6\1\u00c7\6\75\1\uffff\1\75\1\u00cf\5\75\1\u00d5\1\uffff\1\u00d6\2\75\1\u00d9\1\75\1\uffff\3\75\1\u00de\1\u00df\1\u00e0\2\uffff\3\75\1\u00e4\3\75\1\uffff\3\75\1\u00eb\1\u00ed\2\uffff\1\u00ee\1\u00ef\1\uffff\4\75\3\uffff\1\75\1\u00f5\1\75\1\uffff\1\u00f7\2\75\1\u00fa\2\75\1\uffff\1\u00fd\3\uffff\5\75\1\uffff\1\75\1\uffff\2\75\1\uffff\1\u0106\1\75\1\uffff\1\u0108\1\75\1\u010a\2\75\1\u010d\1\u010e\1\u0110\1\uffff\1\75\1\uffff\1\75\1\uffff\1\75\1\u0114\2\uffff\1\u0115\1\uffff\1\u0116\1\u0117\1\75\4\uffff\1\u0119\1\uffff";
     static final String DFA17_eofS =
-        "\u010d\uffff";
+        "\u011a\uffff";
     static final String DFA17_minS =
-        "\1\0\1\155\1\uffff\1\60\2\uffff\1\141\1\uffff\1\60\1\145\1\uffff\1\151\1\uffff\1\60\1\151\1\156\1\157\1\75\1\60\1\uffff\1\122\1\117\1\116\1\75\1\101\2\uffff\1\141\1\uffff\1\157\1\60\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\160\1\60\2\uffff\1\160\3\uffff\1\145\1\155\1\uffff\1\155\1\uffff\1\141\1\uffff\1\151\1\164\1\uffff\1\162\1\157\1\154\1\157\1\uffff\1\157\1\164\1\144\1\145\1\60\1\165\2\uffff\1\60\2\uffff\1\60\1\122\1\104\5\uffff\1\154\1\151\1\uffff\1\157\1\162\7\uffff\1\56\31\uffff\1\157\1\164\1\60\1\uffff\1\145\1\160\1\151\2\160\1\144\1\164\1\150\1\60\1\155\1\163\1\141\1\160\1\145\1\60\1\143\1\162\1\uffff\1\145\1\141\2\uffff\2\60\1\165\1\144\1\154\1\141\1\162\1\141\1\uffff\1\154\1\60\1\156\1\154\1\157\1\163\1\145\1\60\1\uffff\1\60\1\145\1\164\1\60\1\162\1\uffff\1\165\1\145\2\60\2\uffff\1\145\1\60\1\145\1\171\1\164\1\156\1\151\1\uffff\1\147\1\145\1\156\2\60\2\uffff\2\60\1\uffff\1\141\1\164\1\163\2\uffff\1\60\1\uffff\1\141\2\60\1\143\1\156\1\60\1\163\1\145\1\uffff\1\60\3\uffff\1\154\1\151\1\163\1\uffff\1\156\2\uffff\2\145\1\uffff\1\60\1\156\1\uffff\1\60\1\156\1\151\3\60\1\uffff\1\164\1\uffff\1\147\1\157\2\uffff\1\60\1\uffff\2\60\1\156\3\uffff\1\60\1\uffff";
+        "\1\0\1\155\1\uffff\1\60\2\uffff\1\141\1\uffff\1\60\1\145\1\uffff\1\151\1\uffff\1\60\1\151\1\156\1\157\1\75\1\60\1\122\1\117\1\116\1\75\1\101\2\uffff\1\60\1\uffff\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\160\1\60\2\uffff\1\160\3\uffff\1\145\1\155\1\uffff\1\155\1\uffff\1\141\1\uffff\1\151\1\164\1\uffff\1\162\1\157\1\154\1\157\1\uffff\1\157\1\164\1\144\1\145\1\60\1\165\1\160\2\uffff\1\60\1\uffff\1\60\1\122\1\104\5\uffff\1\163\1\162\2\uffff\1\157\1\151\7\uffff\1\56\31\uffff\1\157\1\164\1\60\1\uffff\1\145\1\160\1\151\2\160\1\144\1\164\1\150\1\60\1\155\1\163\1\141\1\160\1\145\1\60\1\143\1\145\1\162\1\uffff\2\145\1\141\2\uffff\2\60\1\164\1\141\1\154\1\144\1\162\1\141\1\uffff\1\154\1\60\1\156\1\154\1\157\1\163\1\145\1\60\1\uffff\1\60\1\145\1\164\1\60\1\162\1\uffff\1\165\1\156\1\145\3\60\2\uffff\1\162\1\171\1\145\1\60\1\164\1\156\1\151\1\uffff\1\147\1\145\1\156\2\60\2\uffff\2\60\1\uffff\1\141\1\164\1\144\1\163\3\uffff\1\141\1\60\1\141\1\uffff\1\60\1\143\1\156\1\60\1\163\1\145\1\uffff\1\60\3\uffff\1\154\1\151\2\163\1\143\1\uffff\1\156\1\uffff\2\145\1\uffff\1\60\1\156\1\uffff\1\60\1\156\1\60\1\151\1\164\3\60\1\uffff\1\164\1\uffff\1\147\1\uffff\1\157\1\60\2\uffff\1\60\1\uffff\2\60\1\156\4\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\156\1\uffff\1\172\2\uffff\1\164\1\uffff\1\172\1\145\1\uffff\1\162\1\uffff\1\172\1\157\1\170\1\162\1\75\1\172\1\uffff\1\122\1\117\1\116\1\75\1\172\2\uffff\1\157\1\uffff\1\157\1\172\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\160\1\172\2\uffff\1\160\3\uffff\1\162\1\155\1\uffff\1\155\1\uffff\1\141\1\uffff\1\151\1\164\1\uffff\1\162\1\157\1\154\1\157\1\uffff\1\157\1\164\1\144\1\160\1\172\1\165\2\uffff\1\172\2\uffff\1\172\1\122\1\104\5\uffff\1\154\1\151\1\uffff\1\157\1\162\7\uffff\1\145\31\uffff\1\157\1\164\1\172\1\uffff\1\145\1\160\1\151\2\160\1\144\1\164\1\150\1\172\1\155\1\163\1\141\1\160\1\145\1\172\1\143\1\162\1\uffff\1\145\1\141\2\uffff\2\172\1\165\1\144\1\154\1\141\1\162\1\141\1\uffff\1\154\1\172\1\156\1\154\1\157\1\163\1\145\1\172\1\uffff\1\172\1\145\1\164\1\172\1\162\1\uffff\1\165\1\145\2\172\2\uffff\1\145\1\172\1\145\1\171\1\164\1\156\1\151\1\uffff\1\147\1\145\1\156\2\172\2\uffff\2\172\1\uffff\1\141\1\164\1\163\2\uffff\1\172\1\uffff\1\141\2\172\1\143\1\156\1\172\1\163\1\145\1\uffff\1\172\3\uffff\1\154\1\151\1\163\1\uffff\1\156\2\uffff\2\145\1\uffff\1\172\1\156\1\uffff\1\172\1\156\1\151\3\172\1\uffff\1\164\1\uffff\1\147\1\157\2\uffff\1\172\1\uffff\2\172\1\156\3\uffff\1\172\1\uffff";
+        "\1\uffff\1\156\1\uffff\1\172\2\uffff\1\164\1\uffff\1\172\1\145\1\uffff\1\162\1\uffff\1\172\1\157\1\170\1\171\1\75\1\172\1\122\1\117\1\116\1\75\1\172\2\uffff\1\172\1\uffff\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\160\1\172\2\uffff\1\160\3\uffff\1\162\1\155\1\uffff\1\155\1\uffff\1\141\1\uffff\1\151\1\164\1\uffff\1\162\1\157\1\154\1\157\1\uffff\1\157\1\164\1\144\1\164\1\172\1\165\1\160\2\uffff\1\172\1\uffff\1\172\1\122\1\104\5\uffff\1\163\1\162\2\uffff\1\157\1\151\7\uffff\1\145\31\uffff\1\157\1\164\1\172\1\uffff\1\145\1\160\1\151\2\160\1\144\1\164\1\150\1\172\1\155\1\163\1\141\1\160\1\145\1\172\1\143\1\145\1\162\1\uffff\2\145\1\141\2\uffff\2\172\1\164\1\141\1\154\1\144\1\162\1\141\1\uffff\1\154\1\172\1\156\1\154\1\157\1\163\1\145\1\172\1\uffff\1\172\1\145\1\164\1\172\1\162\1\uffff\1\165\1\156\1\145\3\172\2\uffff\1\162\1\171\1\145\1\172\1\164\1\156\1\151\1\uffff\1\147\1\145\1\156\2\172\2\uffff\2\172\1\uffff\1\141\1\164\1\144\1\163\3\uffff\1\141\1\172\1\141\1\uffff\1\172\1\143\1\156\1\172\1\163\1\145\1\uffff\1\172\3\uffff\1\154\1\151\2\163\1\143\1\uffff\1\156\1\uffff\2\145\1\uffff\1\172\1\156\1\uffff\1\172\1\156\1\172\1\151\1\164\3\172\1\uffff\1\164\1\uffff\1\147\1\uffff\1\157\1\172\2\uffff\1\172\1\uffff\2\172\1\156\4\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\2\uffff\1\2\1\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\12\1\uffff\1\14\6\uffff\1\32\5\uffff\1\40\1\41\1\uffff\1\50\3\uffff\1\62\1\uffff\1\66\1\uffff\1\70\1\uffff\1\72\12\uffff\1\110\6\uffff\1\123\1\126\1\127\2\uffff\1\123\1\2\1\uffff\1\112\1\4\1\5\2\uffff\1\7\1\uffff\1\106\1\uffff\1\12\2\uffff\1\14\4\uffff\1\113\6\uffff\1\30\1\45\1\uffff\1\105\1\32\3\uffff\1\63\1\36\1\37\1\40\1\41\2\uffff\1\50\2\uffff\1\114\1\60\1\61\1\62\1\65\1\64\1\66\1\uffff\1\67\1\70\1\124\1\125\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\107\1\110\1\111\1\115\1\116\1\117\1\120\1\121\1\122\1\126\3\uffff\1\16\21\uffff\1\21\2\uffff\1\104\1\33\10\uffff\1\53\10\uffff\1\15\5\uffff\1\20\4\uffff\1\34\1\35\7\uffff\1\6\5\uffff\1\24\1\26\2\uffff\1\17\3\uffff\1\43\1\31\1\uffff\1\56\10\uffff\1\11\1\uffff\1\23\1\44\1\54\3\uffff\1\42\1\uffff\1\57\1\1\2\uffff\1\51\2\uffff\1\13\6\uffff\1\25\1\uffff\1\46\2\uffff\1\55\1\47\1\uffff\1\3\3\uffff\1\22\1\10\1\27\1\uffff\1\52";
+        "\2\uffff\1\2\1\uffff\1\4\1\5\1\uffff\1\7\2\uffff\1\12\1\uffff\1\14\13\uffff\1\37\1\40\1\uffff\1\51\2\uffff\1\61\1\uffff\1\64\1\uffff\1\70\1\uffff\1\72\1\uffff\1\74\12\uffff\1\112\6\uffff\1\125\1\130\1\131\2\uffff\1\125\1\2\1\uffff\1\114\1\4\1\5\2\uffff\1\7\1\uffff\1\110\1\uffff\1\12\2\uffff\1\14\4\uffff\1\115\7\uffff\1\30\1\46\1\uffff\1\107\3\uffff\1\65\1\35\1\36\1\37\1\40\2\uffff\1\116\1\51\2\uffff\1\61\1\62\1\63\1\64\1\67\1\66\1\70\1\uffff\1\71\1\72\1\126\1\127\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\111\1\112\1\113\1\117\1\120\1\121\1\122\1\123\1\124\1\130\3\uffff\1\16\22\uffff\1\21\3\uffff\1\106\1\32\10\uffff\1\54\10\uffff\1\15\5\uffff\1\20\6\uffff\1\33\1\34\7\uffff\1\6\5\uffff\1\24\1\26\2\uffff\1\17\4\uffff\1\41\1\44\1\31\3\uffff\1\57\6\uffff\1\11\1\uffff\1\23\1\42\1\55\5\uffff\1\60\1\uffff\1\1\2\uffff\1\52\2\uffff\1\13\10\uffff\1\25\1\uffff\1\47\1\uffff\1\45\2\uffff\1\56\1\50\1\uffff\1\3\3\uffff\1\43\1\22\1\10\1\27\1\uffff\1\53";
     static final String DFA17_specialS =
-        "\1\1\65\uffff\1\0\1\2\u00d5\uffff}>";
+        "\1\1\65\uffff\1\2\1\0\u00e2\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\72\2\71\2\72\1\71\22\72\1\71\1\27\1\66\2\72\1\46\1\72\1\67\1\31\1\32\1\44\1\42\1\12\1\43\1\23\1\45\12\65\1\21\1\2\1\41\1\40\1\37\2\72\1\26\3\70\1\51\1\70\1\54\5\70\1\55\1\70\1\24\1\52\3\70\1\53\3\70\1\25\1\47\1\50\1\4\1\72\1\5\1\30\1\70\1\72\1\36\1\35\1\10\1\22\1\17\1\15\1\70\1\57\1\1\1\70\1\56\1\16\1\60\1\62\1\70\1\3\1\70\1\11\1\6\1\20\1\70\1\33\1\13\1\70\1\64\1\63\1\7\1\34\1\14\67\72\1\61\uff4a\72",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\26\1\66\2\72\1\46\1\72\1\67\1\30\1\31\1\44\1\42\1\12\1\43\1\36\1\45\12\65\1\21\1\2\1\41\1\40\1\37\2\72\1\25\3\70\1\51\1\70\1\54\5\70\1\55\1\70\1\23\1\52\3\70\1\53\3\70\1\24\1\47\1\50\1\4\1\72\1\5\1\27\1\70\1\72\1\32\1\34\1\10\1\22\1\17\1\15\1\70\1\57\1\1\1\70\1\56\1\16\1\60\1\62\1\70\1\3\1\70\1\11\1\6\1\20\1\70\1\35\1\13\1\70\1\64\1\63\1\7\1\33\1\14\67\72\1\61\uff4a\72",
             "\1\73\1\74",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\10\75\1\77\21\75",
@@ -3094,10 +3152,9 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\117\12\75\1\120\2\75\1\115\2\75\1\116\10\75",
             "\1\123\5\uffff\1\122",
             "\1\124\11\uffff\1\125",
-            "\1\126\2\uffff\1\127",
-            "\1\130",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\132\31\75",
-            "",
+            "\1\126\2\uffff\1\127\6\uffff\1\130",
+            "\1\131",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\133\31\75",
             "\1\135",
             "\1\136",
             "\1\137",
@@ -3105,17 +3162,18 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "",
-            "\1\145\15\uffff\1\146",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\75\1\145\17\75\1\146\10\75",
+            "",
+            "\1\151",
+            "\1\152",
             "",
-            "\1\150",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\21\75\1\151\10\75",
-            "\1\153",
+            "\1\154",
             "",
-            "\1\156",
+            "\1\157",
             "",
-            "\12\161",
+            "\12\162",
             "",
-            "\1\164\4\uffff\1\165",
+            "\1\165\4\uffff\1\166",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
@@ -3131,69 +3189,69 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u0087\1\uffff\12\161\53\uffff\1\u0087",
-            "\0\u0088",
+            "\1\u0088\1\uffff\12\162\53\uffff\1\u0088",
             "\0\u0089",
+            "\0\u008a",
             "",
             "",
             "",
-            "\1\u008b",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u008c\1\u008d\6\75",
+            "\1\u008c",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u008d\1\u008e\6\75",
             "",
             "",
-            "\1\u008f",
+            "\1\u0090",
             "",
             "",
             "",
-            "\1\u0090\14\uffff\1\u0091",
-            "\1\u0092",
-            "",
+            "\1\u0091\14\uffff\1\u0092",
             "\1\u0093",
             "",
             "\1\u0094",
             "",
             "\1\u0095",
-            "\1\u0096",
             "",
+            "\1\u0096",
             "\1\u0097",
+            "",
             "\1\u0098",
             "\1\u0099",
             "\1\u009a",
-            "",
             "\1\u009b",
+            "",
             "\1\u009c",
             "\1\u009d",
-            "\1\u009e\12\uffff\1\u009f",
+            "\1\u009e",
+            "\1\u009f\12\uffff\1\u00a1\3\uffff\1\u00a0",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00a1",
+            "\1\u00a3",
+            "\1\u00a4",
             "",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\23\75\1\u00a2\6\75",
-            "",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\23\75\1\u00a5\6\75",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00a5",
-            "\1\u00a6",
-            "",
+            "\1\u00a8",
+            "\1\u00a9",
             "",
             "",
             "",
             "",
-            "\1\u00a7",
-            "\1\u00a8",
             "",
-            "\1\u00a9",
             "\1\u00aa",
+            "\1\u00ab",
             "",
             "",
+            "\1\u00ac",
+            "\1\u00ad",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0087\1\uffff\12\161\53\uffff\1\u0087",
             "",
             "",
+            "\1\u0088\1\uffff\12\162\53\uffff\1\u0088",
+            "",
             "",
             "",
             "",
@@ -3217,131 +3275,144 @@ public class InternalGeneratorDSLLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u00ab",
-            "\1\u00ac",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u00ae",
             "\1\u00af",
-            "\1\u00b0",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "",
             "\1\u00b1",
             "\1\u00b2",
             "\1\u00b3",
             "\1\u00b4",
             "\1\u00b5",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00b6",
             "\1\u00b7",
             "\1\u00b8",
-            "\1\u00b9",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00ba",
             "\1\u00bb",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00bc",
             "\1\u00bd",
             "\1\u00be",
-            "",
-            "\1\u00bf",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00c0",
+            "\1\u00c1",
+            "\1\u00c2",
             "",
-            "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
-            "\1\u00c6",
-            "\1\u00c7",
-            "\1\u00c8",
             "",
-            "\1\u00c9",
+            "",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00c8",
+            "\1\u00c9",
+            "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
             "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
+            "\1\u00ce",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00d0",
+            "\1\u00d1",
             "\1\u00d2",
             "\1\u00d3",
+            "\1\u00d4",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00d5",
             "",
-            "\1\u00d6",
-            "\1\u00d7",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00d7",
+            "\1\u00d8",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "",
-            "",
             "\1\u00da",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "",
+            "\1\u00db",
             "\1\u00dc",
             "\1\u00dd",
-            "\1\u00de",
-            "\1\u00df",
-            "\1\u00e0",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "",
             "",
             "\1\u00e1",
             "\1\u00e2",
             "\1\u00e3",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u00e5\7\75",
-            "",
-            "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00e5",
+            "\1\u00e6",
+            "\1\u00e7",
             "",
+            "\1\u00e8",
             "\1\u00e9",
             "\1\u00ea",
-            "\1\u00eb",
-            "",
-            "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u00ec\7\75",
+            "",
             "",
-            "\1\u00ed",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "",
             "\1\u00f0",
             "\1\u00f1",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00f2",
             "\1\u00f3",
+            "",
+            "",
+            "",
             "\1\u00f4",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00f6",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00f8",
+            "\1\u00f9",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00fb",
+            "\1\u00fc",
             "",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "",
-            "\1\u00f6",
-            "\1\u00f7",
-            "\1\u00f8",
             "",
-            "\1\u00f9",
+            "\1\u00fe",
+            "\1\u00ff",
+            "\1\u0100",
+            "\1\u0101",
+            "\1\u0102",
             "",
+            "\1\u0103",
             "",
-            "\1\u00fa",
-            "\1\u00fb",
+            "\1\u0104",
+            "\1\u0105",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00fd",
+            "\1\u0107",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00ff",
-            "\1\u0100",
+            "\1\u0109",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u010b",
+            "\1\u010c",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u0103\7\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\22\75\1\u010f\7\75",
             "",
-            "\1\u0105",
+            "\1\u0111",
             "",
-            "\1\u0106",
-            "\1\u0107",
+            "\1\u0112",
+            "",
+            "\1\u0113",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u010b",
+            "\1\u0118",
+            "",
             "",
             "",
             "",
@@ -3379,17 +3450,17 @@ public class InternalGeneratorDSLLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_54 = input.LA(1);
+                        int LA17_55 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 136;}
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 138;}
 
                         else s = 58;
 
@@ -3435,29 +3506,29 @@ public class InternalGeneratorDSLLexer extends Lexer {
 
                         else if ( (LA17_0=='d') ) {s = 18;}
 
-                        else if ( (LA17_0=='.') ) {s = 19;}
+                        else if ( (LA17_0=='O') ) {s = 19;}
 
-                        else if ( (LA17_0=='O') ) {s = 20;}
+                        else if ( (LA17_0=='X') ) {s = 20;}
 
-                        else if ( (LA17_0=='X') ) {s = 21;}
+                        else if ( (LA17_0=='A') ) {s = 21;}
 
-                        else if ( (LA17_0=='A') ) {s = 22;}
+                        else if ( (LA17_0=='!') ) {s = 22;}
 
-                        else if ( (LA17_0=='!') ) {s = 23;}
+                        else if ( (LA17_0=='^') ) {s = 23;}
 
-                        else if ( (LA17_0=='^') ) {s = 24;}
+                        else if ( (LA17_0=='(') ) {s = 24;}
 
-                        else if ( (LA17_0=='(') ) {s = 25;}
+                        else if ( (LA17_0==')') ) {s = 25;}
 
-                        else if ( (LA17_0==')') ) {s = 26;}
+                        else if ( (LA17_0=='a') ) {s = 26;}
 
-                        else if ( (LA17_0=='v') ) {s = 27;}
+                        else if ( (LA17_0=='|') ) {s = 27;}
 
-                        else if ( (LA17_0=='|') ) {s = 28;}
+                        else if ( (LA17_0=='b') ) {s = 28;}
 
-                        else if ( (LA17_0=='b') ) {s = 29;}
+                        else if ( (LA17_0=='v') ) {s = 29;}
 
-                        else if ( (LA17_0=='a') ) {s = 30;}
+                        else if ( (LA17_0=='.') ) {s = 30;}
 
                         else if ( (LA17_0=='>') ) {s = 31;}
 
@@ -3518,10 +3589,10 @@ public class InternalGeneratorDSLLexer extends Lexer {
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA17_55 = input.LA(1);
+                        int LA17_54 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 137;}
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 137;}
 
                         else s = 58;
 
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLParser.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLParser.java
index 2a80623f..a8098089 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLParser.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/parser/antlr/internal/InternalGeneratorDSLParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_DOUBLE", "RULE_QUOTED_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'import'", "';'", "'pipeline'", "'['", "']'", "'step'", "'{'", "'component'", "'reads'", "','", "'writes'", "'}'", "'for'", "'in'", "'loop'", "'end'", "'to'", "'pipelines'", "'write'", "'with'", "'samples'", "'from'", "'executing'", "':='", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'value'", "'true'", "'false'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_DOUBLE", "RULE_QUOTED_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'import'", "';'", "'pipeline'", "'['", "']'", "'step'", "'{'", "'component'", "'reads'", "','", "'writes'", "'}'", "'for'", "'in'", "'loop'", "'end'", "'to'", "'pipelines'", "'write'", "'with'", "'samples'", "'from'", "'executing'", "':='", "'data'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__59=59;
@@ -72,6 +72,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     public static final int T__43=43;
     public static final int T__91=91;
     public static final int T__92=92;
+    public static final int T__93=93;
+    public static final int T__94=94;
     public static final int T__90=90;
     public static final int T__19=19;
     public static final int T__15=15;
@@ -2537,7 +2539,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleInstanceRule"
-    // InternalGeneratorDSL.g:995:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
+    // InternalGeneratorDSL.g:995:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
     public final EObject ruleInstanceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2550,17 +2552,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1001:2: ( ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
-            // InternalGeneratorDSL.g:1002:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalGeneratorDSL.g:1001:2: ( ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
+            // InternalGeneratorDSL.g:1002:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
             {
-            // InternalGeneratorDSL.g:1002:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
-            // InternalGeneratorDSL.g:1003:3: ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
+            // InternalGeneratorDSL.g:1002:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalGeneratorDSL.g:1003:3: ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
             {
-            // InternalGeneratorDSL.g:1003:3: ( ( ruleQualifiedNameRule ) )
-            // InternalGeneratorDSL.g:1004:4: ( ruleQualifiedNameRule )
+            // InternalGeneratorDSL.g:1003:3: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:1004:4: ( ruleQualifiedName )
             {
-            // InternalGeneratorDSL.g:1004:4: ( ruleQualifiedNameRule )
-            // InternalGeneratorDSL.g:1005:5: ruleQualifiedNameRule
+            // InternalGeneratorDSL.g:1004:4: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:1005:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -2571,7 +2573,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
             				
             pushFollow(FOLLOW_33);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
@@ -2904,8 +2906,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             case RULE_INT:
             case RULE_STRING:
             case RULE_DOUBLE:
-            case 49:
-            case 50:
+            case 47:
+            case 48:
                 {
                 alt20=4;
                 }
@@ -3090,7 +3092,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             int alt22=2;
             int LA22_0 = input.LA(1);
 
-            if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_QUOTED_ID)||LA22_0==18||LA22_0==39||(LA22_0>=49 && LA22_0<=50)) ) {
+            if ( ((LA22_0>=RULE_ID && LA22_0<=RULE_QUOTED_ID)||LA22_0==18||LA22_0==39||(LA22_0>=47 && LA22_0<=48)) ) {
                 alt22=1;
             }
             switch (alt22) {
@@ -3438,144 +3440,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalGeneratorDSL.g:1330:1: entryRuleQualifiedNameRule returns [String current=null] : iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF ;
-    public final String entryRuleQualifiedNameRule() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleQualifiedNameRule = null;
-
-
-        try {
-            // InternalGeneratorDSL.g:1330:57: (iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF )
-            // InternalGeneratorDSL.g:1331:2: iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF
-            {
-             newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            iv_ruleQualifiedNameRule=ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             current =iv_ruleQualifiedNameRule.getText(); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalGeneratorDSL.g:1337:1: ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
-    public final AntlrDatatypeRuleToken ruleQualifiedNameRule() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-        AntlrDatatypeRuleToken this_StringOrId_0 = null;
-
-        AntlrDatatypeRuleToken this_StringOrId_2 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalGeneratorDSL.g:1343:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalGeneratorDSL.g:1344:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            {
-            // InternalGeneratorDSL.g:1344:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalGeneratorDSL.g:1345:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            {
-
-            			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-            		
-            pushFollow(FOLLOW_38);
-            this_StringOrId_0=ruleStringOrId();
-
-            state._fsp--;
-
-
-            			current.merge(this_StringOrId_0);
-            		
-
-            			afterParserOrEnumRuleCall();
-            		
-            // InternalGeneratorDSL.g:1355:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop23:
-            do {
-                int alt23=2;
-                int LA23_0 = input.LA(1);
-
-                if ( (LA23_0==40) ) {
-                    alt23=1;
-                }
-
-
-                switch (alt23) {
-            	case 1 :
-            	    // InternalGeneratorDSL.g:1356:4: kw= '.' this_StringOrId_2= ruleStringOrId
-            	    {
-            	    kw=(Token)match(input,40,FOLLOW_6); 
-
-            	    				current.merge(kw);
-            	    				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-            	    			
-
-            	    				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-            	    			
-            	    pushFollow(FOLLOW_38);
-            	    this_StringOrId_2=ruleStringOrId();
-
-            	    state._fsp--;
-
-
-            	    				current.merge(this_StringOrId_2);
-            	    			
-
-            	    				afterParserOrEnumRuleCall();
-            	    			
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop23;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-
-            	leaveRule();
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalGeneratorDSL.g:1376:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1330:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3583,8 +3449,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1376:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalGeneratorDSL.g:1377:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalGeneratorDSL.g:1330:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalGeneratorDSL.g:1331:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3611,7 +3477,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalGeneratorDSL.g:1383:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalGeneratorDSL.g:1337:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3622,8 +3488,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1389:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalGeneratorDSL.g:1390:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalGeneratorDSL.g:1343:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalGeneratorDSL.g:1344:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
 
             		newCompositeNode(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall());
@@ -3657,7 +3523,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalGeneratorDSL.g:1401:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1355:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3665,8 +3531,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1401:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalGeneratorDSL.g:1402:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalGeneratorDSL.g:1355:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalGeneratorDSL.g:1356:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3693,7 +3559,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalGeneratorDSL.g:1408:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalGeneratorDSL.g:1362:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3707,22 +3573,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1414:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalGeneratorDSL.g:1415:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1368:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalGeneratorDSL.g:1369:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalGeneratorDSL.g:1415:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalGeneratorDSL.g:1416:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalGeneratorDSL.g:1369:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1370:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalGeneratorDSL.g:1416:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalGeneratorDSL.g:1417:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:1370:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalGeneratorDSL.g:1371:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalGeneratorDSL.g:1417:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalGeneratorDSL.g:1418:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalGeneratorDSL.g:1371:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalGeneratorDSL.g:1372:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_39);
+            pushFollow(FOLLOW_38);
             lv_subExpressions_0_0=ruleXorExpressionRule();
 
             state._fsp--;
@@ -3744,35 +3610,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1435:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
-            loop24:
+            // InternalGeneratorDSL.g:1389:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            loop23:
             do {
-                int alt24=2;
-                int LA24_0 = input.LA(1);
+                int alt23=2;
+                int LA23_0 = input.LA(1);
 
-                if ( (LA24_0==41) ) {
-                    alt24=1;
+                if ( (LA23_0==40) ) {
+                    alt23=1;
                 }
 
 
-                switch (alt24) {
+                switch (alt23) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1436:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1390:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,41,FOLLOW_40); 
+            	    otherlv_1=(Token)match(input,40,FOLLOW_39); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	    			
-            	    // InternalGeneratorDSL.g:1440:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalGeneratorDSL.g:1441:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalGeneratorDSL.g:1394:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1395:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1441:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalGeneratorDSL.g:1442:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalGeneratorDSL.g:1395:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalGeneratorDSL.g:1396:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_39);
+            	    pushFollow(FOLLOW_38);
             	    lv_subExpressions_2_0=ruleXorExpressionRule();
 
             	    state._fsp--;
@@ -3799,7 +3665,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop24;
+            	    break loop23;
                 }
             } while (true);
 
@@ -3826,7 +3692,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalGeneratorDSL.g:1464:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1418:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3834,8 +3700,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1464:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalGeneratorDSL.g:1465:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalGeneratorDSL.g:1418:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalGeneratorDSL.g:1419:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3862,7 +3728,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalGeneratorDSL.g:1471:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalGeneratorDSL.g:1425:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3876,22 +3742,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1477:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalGeneratorDSL.g:1478:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1431:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalGeneratorDSL.g:1432:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalGeneratorDSL.g:1478:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalGeneratorDSL.g:1479:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalGeneratorDSL.g:1432:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1433:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalGeneratorDSL.g:1479:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalGeneratorDSL.g:1480:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:1433:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalGeneratorDSL.g:1434:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalGeneratorDSL.g:1480:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalGeneratorDSL.g:1481:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalGeneratorDSL.g:1434:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalGeneratorDSL.g:1435:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             lv_subExpressions_0_0=ruleAndExpressionRule();
 
             state._fsp--;
@@ -3913,35 +3779,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1498:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
-            loop25:
+            // InternalGeneratorDSL.g:1452:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            loop24:
             do {
-                int alt25=2;
-                int LA25_0 = input.LA(1);
+                int alt24=2;
+                int LA24_0 = input.LA(1);
 
-                if ( (LA25_0==42) ) {
-                    alt25=1;
+                if ( (LA24_0==41) ) {
+                    alt24=1;
                 }
 
 
-                switch (alt25) {
+                switch (alt24) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1499:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1453:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,42,FOLLOW_40); 
+            	    otherlv_1=(Token)match(input,41,FOLLOW_39); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	    			
-            	    // InternalGeneratorDSL.g:1503:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalGeneratorDSL.g:1504:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalGeneratorDSL.g:1457:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1458:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1504:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalGeneratorDSL.g:1505:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalGeneratorDSL.g:1458:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalGeneratorDSL.g:1459:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_41);
+            	    pushFollow(FOLLOW_40);
             	    lv_subExpressions_2_0=ruleAndExpressionRule();
 
             	    state._fsp--;
@@ -3968,7 +3834,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop25;
+            	    break loop24;
                 }
             } while (true);
 
@@ -3995,7 +3861,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalGeneratorDSL.g:1527:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1481:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4003,8 +3869,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1527:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalGeneratorDSL.g:1528:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalGeneratorDSL.g:1481:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalGeneratorDSL.g:1482:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4031,7 +3897,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalGeneratorDSL.g:1534:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalGeneratorDSL.g:1488:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4045,22 +3911,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1540:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalGeneratorDSL.g:1541:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1494:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalGeneratorDSL.g:1495:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalGeneratorDSL.g:1541:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalGeneratorDSL.g:1542:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalGeneratorDSL.g:1495:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1496:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalGeneratorDSL.g:1542:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalGeneratorDSL.g:1543:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:1496:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalGeneratorDSL.g:1497:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalGeneratorDSL.g:1543:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalGeneratorDSL.g:1544:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalGeneratorDSL.g:1497:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalGeneratorDSL.g:1498:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             lv_subExpressions_0_0=ruleNotExpressionRule();
 
             state._fsp--;
@@ -4082,35 +3948,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1561:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
-            loop26:
+            // InternalGeneratorDSL.g:1515:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            loop25:
             do {
-                int alt26=2;
-                int LA26_0 = input.LA(1);
+                int alt25=2;
+                int LA25_0 = input.LA(1);
 
-                if ( (LA26_0==43) ) {
-                    alt26=1;
+                if ( (LA25_0==42) ) {
+                    alt25=1;
                 }
 
 
-                switch (alt26) {
+                switch (alt25) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1562:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1516:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,43,FOLLOW_40); 
+            	    otherlv_1=(Token)match(input,42,FOLLOW_39); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	    			
-            	    // InternalGeneratorDSL.g:1566:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalGeneratorDSL.g:1567:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalGeneratorDSL.g:1520:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1521:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1567:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalGeneratorDSL.g:1568:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalGeneratorDSL.g:1521:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalGeneratorDSL.g:1522:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_41);
             	    lv_subExpressions_2_0=ruleNotExpressionRule();
 
             	    state._fsp--;
@@ -4137,7 +4003,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop26;
+            	    break loop25;
                 }
             } while (true);
 
@@ -4164,7 +4030,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalGeneratorDSL.g:1590:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1544:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4172,8 +4038,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1590:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalGeneratorDSL.g:1591:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalGeneratorDSL.g:1544:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalGeneratorDSL.g:1545:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4200,7 +4066,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalGeneratorDSL.g:1597:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalGeneratorDSL.g:1551:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4212,27 +4078,27 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1603:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalGeneratorDSL.g:1604:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalGeneratorDSL.g:1557:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalGeneratorDSL.g:1558:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalGeneratorDSL.g:1604:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalGeneratorDSL.g:1605:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalGeneratorDSL.g:1558:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalGeneratorDSL.g:1559:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalGeneratorDSL.g:1605:3: ( (lv_negated_0_0= '!' ) )?
-            int alt27=2;
-            int LA27_0 = input.LA(1);
+            // InternalGeneratorDSL.g:1559:3: ( (lv_negated_0_0= '!' ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA27_0==44) ) {
-                alt27=1;
+            if ( (LA26_0==43) ) {
+                alt26=1;
             }
-            switch (alt27) {
+            switch (alt26) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1606:4: (lv_negated_0_0= '!' )
+                    // InternalGeneratorDSL.g:1560:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalGeneratorDSL.g:1606:4: (lv_negated_0_0= '!' )
-                    // InternalGeneratorDSL.g:1607:5: lv_negated_0_0= '!'
+                    // InternalGeneratorDSL.g:1560:4: (lv_negated_0_0= '!' )
+                    // InternalGeneratorDSL.g:1561:5: lv_negated_0_0= '!'
                     {
-                    lv_negated_0_0=(Token)match(input,44,FOLLOW_40); 
+                    lv_negated_0_0=(Token)match(input,43,FOLLOW_39); 
 
                     					newLeafNode(lv_negated_0_0, grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0());
                     				
@@ -4251,11 +4117,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1619:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalGeneratorDSL.g:1620:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalGeneratorDSL.g:1573:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalGeneratorDSL.g:1574:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalGeneratorDSL.g:1620:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalGeneratorDSL.g:1621:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalGeneratorDSL.g:1574:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalGeneratorDSL.g:1575:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0());
@@ -4305,7 +4171,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalGeneratorDSL.g:1642:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1596:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4313,8 +4179,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1642:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalGeneratorDSL.g:1643:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalGeneratorDSL.g:1596:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalGeneratorDSL.g:1597:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4341,7 +4207,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalGeneratorDSL.g:1649:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalGeneratorDSL.g:1603:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4354,22 +4220,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1655:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalGeneratorDSL.g:1656:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalGeneratorDSL.g:1609:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalGeneratorDSL.g:1610:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalGeneratorDSL.g:1656:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalGeneratorDSL.g:1657:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalGeneratorDSL.g:1610:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalGeneratorDSL.g:1611:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalGeneratorDSL.g:1657:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:1658:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1611:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:1612:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:1658:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:1659:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:1612:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1613:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_42);
             lv_leftOperand_0_0=ruleAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -4391,28 +4257,28 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1676:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
-            loop28:
+            // InternalGeneratorDSL.g:1630:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            loop27:
             do {
-                int alt28=2;
-                int LA28_0 = input.LA(1);
+                int alt27=2;
+                int LA27_0 = input.LA(1);
 
-                if ( ((LA28_0>=62 && LA28_0<=67)) ) {
-                    alt28=1;
+                if ( ((LA27_0>=64 && LA27_0<=69)) ) {
+                    alt27=1;
                 }
 
 
-                switch (alt28) {
+                switch (alt27) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1677:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalGeneratorDSL.g:1631:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1677:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalGeneratorDSL.g:1678:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalGeneratorDSL.g:1631:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalGeneratorDSL.g:1632:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0());
             	    				
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_42);
             	    lv_comparison_1_0=rulePartialComparisonExpressionRule();
 
             	    state._fsp--;
@@ -4436,7 +4302,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop28;
+            	    break loop27;
                 }
             } while (true);
 
@@ -4463,7 +4329,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalGeneratorDSL.g:1699:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1653:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4471,8 +4337,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1699:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalGeneratorDSL.g:1700:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalGeneratorDSL.g:1653:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalGeneratorDSL.g:1654:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4499,7 +4365,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalGeneratorDSL.g:1706:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalGeneratorDSL.g:1660:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4512,22 +4378,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1712:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalGeneratorDSL.g:1713:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalGeneratorDSL.g:1666:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalGeneratorDSL.g:1667:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalGeneratorDSL.g:1713:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalGeneratorDSL.g:1714:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:1667:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalGeneratorDSL.g:1668:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalGeneratorDSL.g:1714:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalGeneratorDSL.g:1715:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalGeneratorDSL.g:1668:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalGeneratorDSL.g:1669:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalGeneratorDSL.g:1715:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalGeneratorDSL.g:1716:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalGeneratorDSL.g:1669:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalGeneratorDSL.g:1670:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0());
             				
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_39);
             lv_operator_0_0=ruleComparisonOperatorRule();
 
             state._fsp--;
@@ -4549,11 +4415,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1733:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:1734:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1687:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:1688:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:1734:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:1735:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:1688:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1689:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0());
@@ -4603,7 +4469,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:1756:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1710:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4611,8 +4477,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1756:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalGeneratorDSL.g:1757:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalGeneratorDSL.g:1710:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalGeneratorDSL.g:1711:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4639,7 +4505,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:1763:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalGeneratorDSL.g:1717:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4654,22 +4520,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1769:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalGeneratorDSL.g:1770:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1723:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalGeneratorDSL.g:1724:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalGeneratorDSL.g:1770:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalGeneratorDSL.g:1771:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalGeneratorDSL.g:1724:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1725:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalGeneratorDSL.g:1771:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalGeneratorDSL.g:1772:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:1725:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalGeneratorDSL.g:1726:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalGeneratorDSL.g:1772:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalGeneratorDSL.g:1773:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalGeneratorDSL.g:1726:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalGeneratorDSL.g:1727:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_43);
             lv_leftOperand_0_0=ruleMultiplyDivideModuloExpressionRule();
 
             state._fsp--;
@@ -4691,31 +4557,31 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1790:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
-            loop29:
+            // InternalGeneratorDSL.g:1744:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            loop28:
             do {
-                int alt29=2;
-                int LA29_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( ((LA29_0>=68 && LA29_0<=69)) ) {
-                    alt29=1;
+                if ( ((LA28_0>=70 && LA28_0<=71)) ) {
+                    alt28=1;
                 }
 
 
-                switch (alt29) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1791:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1745:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalGeneratorDSL.g:1791:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalGeneratorDSL.g:1792:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalGeneratorDSL.g:1745:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalGeneratorDSL.g:1746:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalGeneratorDSL.g:1792:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalGeneratorDSL.g:1793:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalGeneratorDSL.g:1746:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalGeneratorDSL.g:1747:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_40);
+            	    pushFollow(FOLLOW_39);
             	    lv_operators_1_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -4737,16 +4603,16 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             	    }
 
-            	    // InternalGeneratorDSL.g:1810:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalGeneratorDSL.g:1811:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalGeneratorDSL.g:1764:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1765:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1811:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalGeneratorDSL.g:1812:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalGeneratorDSL.g:1765:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalGeneratorDSL.g:1766:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_44);
+            	    pushFollow(FOLLOW_43);
             	    lv_operands_2_0=ruleMultiplyDivideModuloExpressionRule();
 
             	    state._fsp--;
@@ -4773,7 +4639,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop29;
+            	    break loop28;
                 }
             } while (true);
 
@@ -4800,7 +4666,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalGeneratorDSL.g:1834:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1788:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4808,8 +4674,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1834:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalGeneratorDSL.g:1835:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalGeneratorDSL.g:1788:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalGeneratorDSL.g:1789:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4836,7 +4702,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalGeneratorDSL.g:1841:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalGeneratorDSL.g:1795:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4851,22 +4717,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1847:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalGeneratorDSL.g:1848:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1801:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalGeneratorDSL.g:1802:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalGeneratorDSL.g:1848:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalGeneratorDSL.g:1849:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalGeneratorDSL.g:1802:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalGeneratorDSL.g:1803:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalGeneratorDSL.g:1849:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalGeneratorDSL.g:1850:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:1803:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalGeneratorDSL.g:1804:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalGeneratorDSL.g:1850:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalGeneratorDSL.g:1851:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalGeneratorDSL.g:1804:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalGeneratorDSL.g:1805:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             lv_leftOperand_0_0=rulePowerOfExpressionRule();
 
             state._fsp--;
@@ -4888,31 +4754,31 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1868:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
-            loop30:
+            // InternalGeneratorDSL.g:1822:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            loop29:
             do {
-                int alt30=2;
-                int LA30_0 = input.LA(1);
+                int alt29=2;
+                int LA29_0 = input.LA(1);
 
-                if ( ((LA30_0>=70 && LA30_0<=72)) ) {
-                    alt30=1;
+                if ( ((LA29_0>=72 && LA29_0<=74)) ) {
+                    alt29=1;
                 }
 
 
-                switch (alt30) {
+                switch (alt29) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1869:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1823:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalGeneratorDSL.g:1869:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalGeneratorDSL.g:1870:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalGeneratorDSL.g:1823:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalGeneratorDSL.g:1824:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalGeneratorDSL.g:1870:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalGeneratorDSL.g:1871:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalGeneratorDSL.g:1824:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalGeneratorDSL.g:1825:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_40);
+            	    pushFollow(FOLLOW_39);
             	    lv_operators_1_0=ruleMultiplyDivideModuloOperatorRule();
 
             	    state._fsp--;
@@ -4934,16 +4800,16 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             	    }
 
-            	    // InternalGeneratorDSL.g:1888:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalGeneratorDSL.g:1889:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalGeneratorDSL.g:1842:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalGeneratorDSL.g:1843:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalGeneratorDSL.g:1889:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalGeneratorDSL.g:1890:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalGeneratorDSL.g:1843:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalGeneratorDSL.g:1844:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_45);
+            	    pushFollow(FOLLOW_44);
             	    lv_operands_2_0=rulePowerOfExpressionRule();
 
             	    state._fsp--;
@@ -4970,7 +4836,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop30;
+            	    break loop29;
                 }
             } while (true);
 
@@ -4997,7 +4863,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalGeneratorDSL.g:1912:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1866:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5005,8 +4871,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1912:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalGeneratorDSL.g:1913:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalGeneratorDSL.g:1866:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalGeneratorDSL.g:1867:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5033,7 +4899,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalGeneratorDSL.g:1919:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalGeneratorDSL.g:1873:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5047,22 +4913,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1925:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalGeneratorDSL.g:1926:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalGeneratorDSL.g:1879:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalGeneratorDSL.g:1880:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalGeneratorDSL.g:1926:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalGeneratorDSL.g:1927:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalGeneratorDSL.g:1880:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalGeneratorDSL.g:1881:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalGeneratorDSL.g:1927:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalGeneratorDSL.g:1928:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1881:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalGeneratorDSL.g:1882:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalGeneratorDSL.g:1928:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalGeneratorDSL.g:1929:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalGeneratorDSL.g:1882:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalGeneratorDSL.g:1883:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             lv_leftOperand_0_0=ruleUnaryAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -5084,26 +4950,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:1946:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            // InternalGeneratorDSL.g:1900:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            if ( (LA31_0==45) ) {
-                alt31=1;
+            if ( (LA30_0==44) ) {
+                alt30=1;
             }
-            switch (alt31) {
+            switch (alt30) {
                 case 1 :
-                    // InternalGeneratorDSL.g:1947:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalGeneratorDSL.g:1901:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
-                    otherlv_1=(Token)match(input,45,FOLLOW_40); 
+                    otherlv_1=(Token)match(input,44,FOLLOW_39); 
 
                     				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                     			
-                    // InternalGeneratorDSL.g:1951:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalGeneratorDSL.g:1952:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalGeneratorDSL.g:1905:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalGeneratorDSL.g:1906:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalGeneratorDSL.g:1952:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalGeneratorDSL.g:1953:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalGeneratorDSL.g:1906:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalGeneratorDSL.g:1907:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0());
@@ -5159,7 +5025,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:1975:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalGeneratorDSL.g:1929:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5167,8 +5033,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:1975:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalGeneratorDSL.g:1976:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalGeneratorDSL.g:1929:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalGeneratorDSL.g:1930:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5195,7 +5061,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalGeneratorDSL.g:1982:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalGeneratorDSL.g:1936:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5208,34 +5074,34 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:1988:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalGeneratorDSL.g:1989:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalGeneratorDSL.g:1942:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalGeneratorDSL.g:1943:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalGeneratorDSL.g:1989:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalGeneratorDSL.g:1990:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalGeneratorDSL.g:1943:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalGeneratorDSL.g:1944:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalGeneratorDSL.g:1990:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
-            loop32:
+            // InternalGeneratorDSL.g:1944:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            loop31:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
+                int alt31=2;
+                int LA31_0 = input.LA(1);
 
-                if ( ((LA32_0>=68 && LA32_0<=69)) ) {
-                    alt32=1;
+                if ( ((LA31_0>=70 && LA31_0<=71)) ) {
+                    alt31=1;
                 }
 
 
-                switch (alt32) {
+                switch (alt31) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:1991:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalGeneratorDSL.g:1945:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalGeneratorDSL.g:1991:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalGeneratorDSL.g:1992:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalGeneratorDSL.g:1945:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalGeneratorDSL.g:1946:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0());
             	    				
-            	    pushFollow(FOLLOW_40);
+            	    pushFollow(FOLLOW_39);
             	    lv_operators_0_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -5259,15 +5125,15 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop31;
                 }
             } while (true);
 
-            // InternalGeneratorDSL.g:2009:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalGeneratorDSL.g:2010:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalGeneratorDSL.g:1963:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalGeneratorDSL.g:1964:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalGeneratorDSL.g:2010:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalGeneratorDSL.g:2011:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalGeneratorDSL.g:1964:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalGeneratorDSL.g:1965:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
 
             					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0());
@@ -5317,7 +5183,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalGeneratorDSL.g:2032:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalGeneratorDSL.g:1986:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -5325,8 +5191,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2032:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalGeneratorDSL.g:2033:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalGeneratorDSL.g:1986:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalGeneratorDSL.g:1987:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5353,7 +5219,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalGeneratorDSL.g:2039:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalGeneratorDSL.g:1993:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -5370,47 +5236,15 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2045:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalGeneratorDSL.g:2046:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalGeneratorDSL.g:1999:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalGeneratorDSL.g:2000:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalGeneratorDSL.g:2046:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
-            int alt33=4;
-            switch ( input.LA(1) ) {
-            case RULE_ID:
-            case RULE_QUOTED_ID:
-                {
-                alt33=1;
-                }
-                break;
-            case RULE_INT:
-            case RULE_STRING:
-            case RULE_DOUBLE:
-            case 49:
-            case 50:
-                {
-                alt33=2;
-                }
-                break;
-            case 46:
-                {
-                alt33=3;
-                }
-                break;
-            case 48:
-                {
-                alt33=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt33) {
+            // InternalGeneratorDSL.g:2000:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            int alt32=4;
+            alt32 = dfa32.predict(input);
+            switch (alt32) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2047:3: this_CallRule_0= ruleCallRule
+                    // InternalGeneratorDSL.g:2001:3: this_CallRule_0= ruleCallRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0());
@@ -5428,7 +5262,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:2056:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalGeneratorDSL.g:2010:3: this_LiteralRule_1= ruleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1());
@@ -5446,7 +5280,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:2065:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalGeneratorDSL.g:2019:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2());
@@ -5464,7 +5298,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:2074:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalGeneratorDSL.g:2028:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3());
@@ -5504,7 +5338,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalGeneratorDSL.g:2086:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalGeneratorDSL.g:2040:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -5512,8 +5346,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2086:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalGeneratorDSL.g:2087:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalGeneratorDSL.g:2040:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalGeneratorDSL.g:2041:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
              newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5540,7 +5374,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalGeneratorDSL.g:2093:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalGeneratorDSL.g:2047:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -5553,26 +5387,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2099:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalGeneratorDSL.g:2100:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalGeneratorDSL.g:2053:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalGeneratorDSL.g:2054:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalGeneratorDSL.g:2100:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalGeneratorDSL.g:2101:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalGeneratorDSL.g:2054:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalGeneratorDSL.g:2055:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,46,FOLLOW_40); 
+            otherlv_0=(Token)match(input,45,FOLLOW_39); 
 
             			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalGeneratorDSL.g:2105:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalGeneratorDSL.g:2106:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalGeneratorDSL.g:2059:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalGeneratorDSL.g:2060:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalGeneratorDSL.g:2106:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalGeneratorDSL.g:2107:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalGeneratorDSL.g:2060:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalGeneratorDSL.g:2061:5: lv_subExpression_1_0= ruleExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0());
             				
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_46);
             lv_subExpression_1_0=ruleExpressionRule();
 
             state._fsp--;
@@ -5594,7 +5428,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_2=(Token)match(input,47,FOLLOW_2); 
+            otherlv_2=(Token)match(input,46,FOLLOW_2); 
 
             			newLeafNode(otherlv_2, grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2());
             		
@@ -5621,7 +5455,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalGeneratorDSL.g:2132:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalGeneratorDSL.g:2086:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -5629,8 +5463,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2132:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalGeneratorDSL.g:2133:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalGeneratorDSL.g:2086:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalGeneratorDSL.g:2087:2: iv_ruleCallRule= ruleCallRule EOF
             {
              newCompositeNode(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5657,7 +5491,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalGeneratorDSL.g:2139:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalGeneratorDSL.g:2093:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -5675,22 +5509,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2145:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalGeneratorDSL.g:2146:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalGeneratorDSL.g:2099:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalGeneratorDSL.g:2100:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalGeneratorDSL.g:2146:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalGeneratorDSL.g:2147:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalGeneratorDSL.g:2100:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalGeneratorDSL.g:2101:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalGeneratorDSL.g:2147:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalGeneratorDSL.g:2148:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalGeneratorDSL.g:2101:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalGeneratorDSL.g:2102:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalGeneratorDSL.g:2148:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalGeneratorDSL.g:2149:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalGeneratorDSL.g:2102:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalGeneratorDSL.g:2103:5: lv_function_0_0= ruleFunctionNameRule
             {
 
             					newCompositeNode(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_47);
             lv_function_0_0=ruleFunctionNameRule();
 
             state._fsp--;
@@ -5712,31 +5546,31 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,46,FOLLOW_49); 
+            otherlv_1=(Token)match(input,45,FOLLOW_48); 
 
             			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalGeneratorDSL.g:2170:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2124:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
 
-            if ( ((LA35_0>=RULE_ID && LA35_0<=RULE_QUOTED_ID)||LA35_0==44||LA35_0==46||(LA35_0>=48 && LA35_0<=50)||(LA35_0>=68 && LA35_0<=69)) ) {
-                alt35=1;
+            if ( ((LA34_0>=RULE_ID && LA34_0<=RULE_QUOTED_ID)||LA34_0==43||LA34_0==45||(LA34_0>=47 && LA34_0<=48)||(LA34_0>=70 && LA34_0<=71)) ) {
+                alt34=1;
             }
-            switch (alt35) {
+            switch (alt34) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2171:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalGeneratorDSL.g:2125:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalGeneratorDSL.g:2171:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalGeneratorDSL.g:2172:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalGeneratorDSL.g:2125:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalGeneratorDSL.g:2126:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalGeneratorDSL.g:2172:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalGeneratorDSL.g:2173:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalGeneratorDSL.g:2126:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalGeneratorDSL.g:2127:6: lv_parameters_2_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0());
                     					
-                    pushFollow(FOLLOW_50);
+                    pushFollow(FOLLOW_49);
                     lv_parameters_2_0=ruleExpressionRule();
 
                     state._fsp--;
@@ -5758,35 +5592,35 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
                     }
 
-                    // InternalGeneratorDSL.g:2190:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
-                    loop34:
+                    // InternalGeneratorDSL.g:2144:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    loop33:
                     do {
-                        int alt34=2;
-                        int LA34_0 = input.LA(1);
+                        int alt33=2;
+                        int LA33_0 = input.LA(1);
 
-                        if ( (LA34_0==24) ) {
-                            alt34=1;
+                        if ( (LA33_0==24) ) {
+                            alt33=1;
                         }
 
 
-                        switch (alt34) {
+                        switch (alt33) {
                     	case 1 :
-                    	    // InternalGeneratorDSL.g:2191:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalGeneratorDSL.g:2145:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,24,FOLLOW_40); 
+                    	    otherlv_3=(Token)match(input,24,FOLLOW_39); 
 
                     	    					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	    				
-                    	    // InternalGeneratorDSL.g:2195:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalGeneratorDSL.g:2196:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalGeneratorDSL.g:2149:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalGeneratorDSL.g:2150:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalGeneratorDSL.g:2196:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalGeneratorDSL.g:2197:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalGeneratorDSL.g:2150:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalGeneratorDSL.g:2151:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
 
                     	    							newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0());
                     	    						
-                    	    pushFollow(FOLLOW_50);
+                    	    pushFollow(FOLLOW_49);
                     	    lv_parameters_4_0=ruleExpressionRule();
 
                     	    state._fsp--;
@@ -5813,7 +5647,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     	    break;
 
                     	default :
-                    	    break loop34;
+                    	    break loop33;
                         }
                     } while (true);
 
@@ -5823,7 +5657,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_5=(Token)match(input,47,FOLLOW_2); 
+            otherlv_5=(Token)match(input,46,FOLLOW_2); 
 
             			newLeafNode(otherlv_5, grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3());
             		
@@ -5850,7 +5684,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalGeneratorDSL.g:2224:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
+    // InternalGeneratorDSL.g:2178:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
     public final EObject entryRuleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -5858,8 +5692,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2224:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
-            // InternalGeneratorDSL.g:2225:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
+            // InternalGeneratorDSL.g:2178:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
+            // InternalGeneratorDSL.g:2179:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5886,40 +5720,32 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalGeneratorDSL.g:2231:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalGeneratorDSL.g:2185:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2237:2: ( ( () otherlv_1= 'value' ) )
-            // InternalGeneratorDSL.g:2238:2: ( () otherlv_1= 'value' )
-            {
-            // InternalGeneratorDSL.g:2238:2: ( () otherlv_1= 'value' )
-            // InternalGeneratorDSL.g:2239:3: () otherlv_1= 'value'
-            {
-            // InternalGeneratorDSL.g:2239:3: ()
-            // InternalGeneratorDSL.g:2240:4: 
+            // InternalGeneratorDSL.g:2191:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalGeneratorDSL.g:2192:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
             {
 
-            				current = forceCreateModelElement(
-            					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-            					current);
-            			
-
-            }
-
-            otherlv_1=(Token)match(input,48,FOLLOW_2); 
+            		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+            	
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
 
-            			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-            		
+            state._fsp--;
 
-            }
 
+            		current = this_ConstantReferenceRule_0;
+            		afterParserOrEnumRuleCall();
+            	
 
             }
 
@@ -5939,17 +5765,112 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleValueReferenceRule"
 
 
-    // $ANTLR start "entryRuleLiteralRule"
-    // InternalGeneratorDSL.g:2254:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
-    public final EObject entryRuleLiteralRule() throws RecognitionException {
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalGeneratorDSL.g:2203:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleLiteralRule = null;
+        EObject iv_ruleConstantReferenceRule = null;
 
 
         try {
-            // InternalGeneratorDSL.g:2254:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalGeneratorDSL.g:2255:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalGeneratorDSL.g:2203:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalGeneratorDSL.g:2204:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
+            {
+             newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantReferenceRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalGeneratorDSL.g:2210:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalGeneratorDSL.g:2216:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:2217:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalGeneratorDSL.g:2217:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:2218:3: ( ruleQualifiedName )
+            {
+            // InternalGeneratorDSL.g:2218:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:2219:4: ruleQualifiedName
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+            				}
+            			
+
+            				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+            			
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+
+            				afterParserOrEnumRuleCall();
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConstantReferenceRule"
+
+
+    // $ANTLR start "entryRuleLiteralRule"
+    // InternalGeneratorDSL.g:2236:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    public final EObject entryRuleLiteralRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLiteralRule = null;
+
+
+        try {
+            // InternalGeneratorDSL.g:2236:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalGeneratorDSL.g:2237:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5976,7 +5897,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalGeneratorDSL.g:2261:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalGeneratorDSL.g:2243:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5991,39 +5912,39 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2267:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalGeneratorDSL.g:2268:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalGeneratorDSL.g:2249:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalGeneratorDSL.g:2250:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalGeneratorDSL.g:2268:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
-            int alt36=3;
+            // InternalGeneratorDSL.g:2250:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            int alt35=3;
             switch ( input.LA(1) ) {
             case RULE_INT:
             case RULE_DOUBLE:
                 {
-                alt36=1;
+                alt35=1;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt36=2;
+                alt35=2;
                 }
                 break;
-            case 49:
-            case 50:
+            case 47:
+            case 48:
                 {
-                alt36=3;
+                alt35=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt35) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2269:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalGeneratorDSL.g:2251:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0());
@@ -6041,7 +5962,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:2278:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalGeneratorDSL.g:2260:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1());
@@ -6059,7 +5980,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:2287:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalGeneratorDSL.g:2269:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2());
@@ -6099,7 +6020,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalGeneratorDSL.g:2299:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalGeneratorDSL.g:2281:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6107,8 +6028,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2299:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalGeneratorDSL.g:2300:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalGeneratorDSL.g:2281:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalGeneratorDSL.g:2282:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6135,7 +6056,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalGeneratorDSL.g:2306:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalGeneratorDSL.g:2288:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6148,28 +6069,28 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2312:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalGeneratorDSL.g:2313:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalGeneratorDSL.g:2294:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalGeneratorDSL.g:2295:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalGeneratorDSL.g:2313:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
-            int alt37=2;
-            int LA37_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2295:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA37_0==RULE_DOUBLE) ) {
-                alt37=1;
+            if ( (LA36_0==RULE_DOUBLE) ) {
+                alt36=1;
             }
-            else if ( (LA37_0==RULE_INT) ) {
-                alt37=2;
+            else if ( (LA36_0==RULE_INT) ) {
+                alt36=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
-            switch (alt37) {
+            switch (alt36) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2314:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalGeneratorDSL.g:2296:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0());
@@ -6187,7 +6108,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:2323:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalGeneratorDSL.g:2305:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1());
@@ -6227,7 +6148,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalGeneratorDSL.g:2335:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalGeneratorDSL.g:2317:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6235,8 +6156,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2335:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalGeneratorDSL.g:2336:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalGeneratorDSL.g:2317:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalGeneratorDSL.g:2318:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6263,7 +6184,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalGeneratorDSL.g:2342:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalGeneratorDSL.g:2324:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6275,19 +6196,19 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2348:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalGeneratorDSL.g:2349:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalGeneratorDSL.g:2330:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalGeneratorDSL.g:2331:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalGeneratorDSL.g:2349:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalGeneratorDSL.g:2350:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalGeneratorDSL.g:2331:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalGeneratorDSL.g:2332:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalGeneratorDSL.g:2350:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalGeneratorDSL.g:2351:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalGeneratorDSL.g:2332:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalGeneratorDSL.g:2333:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalGeneratorDSL.g:2351:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalGeneratorDSL.g:2352:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalGeneratorDSL.g:2333:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalGeneratorDSL.g:2334:5: lv_literal_0_0= RULE_DOUBLE
             {
-            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_51); 
+            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_50); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0());
             				
@@ -6307,19 +6228,19 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:2368:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt38=2;
-            int LA38_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2350:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( ((LA38_0>=73 && LA38_0<=92)) ) {
-                alt38=1;
+            if ( ((LA37_0>=75 && LA37_0<=94)) ) {
+                alt37=1;
             }
-            switch (alt38) {
+            switch (alt37) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2369:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalGeneratorDSL.g:2351:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalGeneratorDSL.g:2369:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalGeneratorDSL.g:2370:5: lv_factor_1_0= ruleFactorRule
+                    // InternalGeneratorDSL.g:2351:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalGeneratorDSL.g:2352:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -6372,7 +6293,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalGeneratorDSL.g:2391:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalGeneratorDSL.g:2373:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6380,8 +6301,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2391:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalGeneratorDSL.g:2392:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalGeneratorDSL.g:2373:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalGeneratorDSL.g:2374:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6408,7 +6329,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalGeneratorDSL.g:2398:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalGeneratorDSL.g:2380:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6420,19 +6341,19 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2404:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalGeneratorDSL.g:2405:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalGeneratorDSL.g:2386:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalGeneratorDSL.g:2387:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalGeneratorDSL.g:2405:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalGeneratorDSL.g:2406:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalGeneratorDSL.g:2387:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalGeneratorDSL.g:2388:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalGeneratorDSL.g:2406:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalGeneratorDSL.g:2407:4: (lv_literal_0_0= RULE_INT )
+            // InternalGeneratorDSL.g:2388:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalGeneratorDSL.g:2389:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalGeneratorDSL.g:2407:4: (lv_literal_0_0= RULE_INT )
-            // InternalGeneratorDSL.g:2408:5: lv_literal_0_0= RULE_INT
+            // InternalGeneratorDSL.g:2389:4: (lv_literal_0_0= RULE_INT )
+            // InternalGeneratorDSL.g:2390:5: lv_literal_0_0= RULE_INT
             {
-            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_51); 
+            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_50); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0());
             				
@@ -6452,19 +6373,19 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:2424:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2406:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
 
-            if ( ((LA39_0>=73 && LA39_0<=92)) ) {
-                alt39=1;
+            if ( ((LA38_0>=75 && LA38_0<=94)) ) {
+                alt38=1;
             }
-            switch (alt39) {
+            switch (alt38) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2425:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalGeneratorDSL.g:2407:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalGeneratorDSL.g:2425:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalGeneratorDSL.g:2426:5: lv_factor_1_0= ruleFactorRule
+                    // InternalGeneratorDSL.g:2407:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalGeneratorDSL.g:2408:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -6517,7 +6438,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalGeneratorDSL.g:2447:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalGeneratorDSL.g:2429:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6525,8 +6446,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2447:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalGeneratorDSL.g:2448:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalGeneratorDSL.g:2429:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalGeneratorDSL.g:2430:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6553,7 +6474,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalGeneratorDSL.g:2454:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalGeneratorDSL.g:2436:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6563,14 +6484,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2460:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalGeneratorDSL.g:2461:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalGeneratorDSL.g:2442:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalGeneratorDSL.g:2443:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalGeneratorDSL.g:2461:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalGeneratorDSL.g:2462:3: (lv_value_0_0= RULE_STRING )
+            // InternalGeneratorDSL.g:2443:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalGeneratorDSL.g:2444:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalGeneratorDSL.g:2462:3: (lv_value_0_0= RULE_STRING )
-            // InternalGeneratorDSL.g:2463:4: lv_value_0_0= RULE_STRING
+            // InternalGeneratorDSL.g:2444:3: (lv_value_0_0= RULE_STRING )
+            // InternalGeneratorDSL.g:2445:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
 
@@ -6612,7 +6533,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalGeneratorDSL.g:2482:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalGeneratorDSL.g:2464:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6620,8 +6541,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2482:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalGeneratorDSL.g:2483:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalGeneratorDSL.g:2464:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalGeneratorDSL.g:2465:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6648,7 +6569,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalGeneratorDSL.g:2489:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalGeneratorDSL.g:2471:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6659,14 +6580,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2495:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalGeneratorDSL.g:2496:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalGeneratorDSL.g:2477:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalGeneratorDSL.g:2478:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalGeneratorDSL.g:2496:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalGeneratorDSL.g:2497:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalGeneratorDSL.g:2478:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalGeneratorDSL.g:2479:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalGeneratorDSL.g:2497:3: ()
-            // InternalGeneratorDSL.g:2498:4: 
+            // InternalGeneratorDSL.g:2479:3: ()
+            // InternalGeneratorDSL.g:2480:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6676,33 +6597,33 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:2504:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2486:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
 
-            if ( (LA40_0==49) ) {
-                alt40=1;
+            if ( (LA39_0==47) ) {
+                alt39=1;
             }
-            else if ( (LA40_0==50) ) {
-                alt40=2;
+            else if ( (LA39_0==48) ) {
+                alt39=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt39) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2505:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalGeneratorDSL.g:2487:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalGeneratorDSL.g:2505:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalGeneratorDSL.g:2506:5: (lv_value_1_0= 'true' )
+                    // InternalGeneratorDSL.g:2487:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalGeneratorDSL.g:2488:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalGeneratorDSL.g:2506:5: (lv_value_1_0= 'true' )
-                    // InternalGeneratorDSL.g:2507:6: lv_value_1_0= 'true'
+                    // InternalGeneratorDSL.g:2488:5: (lv_value_1_0= 'true' )
+                    // InternalGeneratorDSL.g:2489:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,49,FOLLOW_2); 
+                    lv_value_1_0=(Token)match(input,47,FOLLOW_2); 
 
                     						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
                     					
@@ -6722,9 +6643,9 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:2520:4: otherlv_2= 'false'
+                    // InternalGeneratorDSL.g:2502:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,50,FOLLOW_2); 
+                    otherlv_2=(Token)match(input,48,FOLLOW_2); 
 
                     				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
                     			
@@ -6756,8 +6677,265 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalGeneratorDSL.g:2511:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTypeDefinitionRule = null;
+
+
+        try {
+            // InternalGeneratorDSL.g:2511:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalGeneratorDSL.g:2512:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            {
+             newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             current =iv_ruleTypeDefinitionRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalGeneratorDSL.g:2518:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_abstract_0_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_attributes_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalGeneratorDSL.g:2524:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalGeneratorDSL.g:2525:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            {
+            // InternalGeneratorDSL.g:2525:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalGeneratorDSL.g:2526:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            {
+            // InternalGeneratorDSL.g:2526:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==49) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalGeneratorDSL.g:2527:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalGeneratorDSL.g:2527:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalGeneratorDSL.g:2528:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,49,FOLLOW_51); 
+
+                    					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                    				
+
+                    					if (current==null) {
+                    						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    					}
+                    					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                    				
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,50,FOLLOW_6); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+            		
+            // InternalGeneratorDSL.g:2544:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalGeneratorDSL.g:2545:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalGeneratorDSL.g:2545:4: (lv_name_2_0= ruleStringOrId )
+            // InternalGeneratorDSL.g:2546:5: lv_name_2_0= ruleStringOrId
+            {
+
+            					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_52);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"name",
+            						lv_name_2_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalGeneratorDSL.g:2563:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==51) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // InternalGeneratorDSL.g:2564:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,51,FOLLOW_6); 
+
+                    				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                    			
+                    // InternalGeneratorDSL.g:2568:4: ( ( ruleQualifiedName ) )
+                    // InternalGeneratorDSL.g:2569:5: ( ruleQualifiedName )
+                    {
+                    // InternalGeneratorDSL.g:2569:5: ( ruleQualifiedName )
+                    // InternalGeneratorDSL.g:2570:6: ruleQualifiedName
+                    {
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    						}
+                    					
+
+                    						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                    					
+                    pushFollow(FOLLOW_10);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+
+
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,21,FOLLOW_34); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+            		
+            // InternalGeneratorDSL.g:2589:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop42:
+            do {
+                int alt42=2;
+                int LA42_0 = input.LA(1);
+
+                if ( (LA42_0==RULE_ID||LA42_0==RULE_QUOTED_ID) ) {
+                    alt42=1;
+                }
+
+
+                switch (alt42) {
+            	case 1 :
+            	    // InternalGeneratorDSL.g:2590:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalGeneratorDSL.g:2590:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalGeneratorDSL.g:2591:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+
+            	    					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	    				
+            	    pushFollow(FOLLOW_34);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+
+
+            	    					if (current==null) {
+            	    						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	    					}
+            	    					add(
+            	    						current,
+            	    						"attributes",
+            	    						lv_attributes_6_0,
+            	    						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	    					afterParserOrEnumRuleCall();
+            	    				
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop42;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,26,FOLLOW_2); 
+
+            			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalGeneratorDSL.g:2529:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalGeneratorDSL.g:2616:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -6765,8 +6943,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2529:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalGeneratorDSL.g:2530:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalGeneratorDSL.g:2616:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalGeneratorDSL.g:2617:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6793,7 +6971,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalGeneratorDSL.g:2536:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalGeneratorDSL.g:2623:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -6811,22 +6989,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2542:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalGeneratorDSL.g:2543:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalGeneratorDSL.g:2629:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalGeneratorDSL.g:2630:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalGeneratorDSL.g:2543:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalGeneratorDSL.g:2544:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalGeneratorDSL.g:2630:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalGeneratorDSL.g:2631:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalGeneratorDSL.g:2544:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalGeneratorDSL.g:2545:4: (lv_name_0_0= ruleStringOrId )
+            // InternalGeneratorDSL.g:2631:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalGeneratorDSL.g:2632:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:2545:4: (lv_name_0_0= ruleStringOrId )
-            // InternalGeneratorDSL.g:2546:5: lv_name_0_0= ruleStringOrId
+            // InternalGeneratorDSL.g:2632:4: (lv_name_0_0= ruleStringOrId )
+            // InternalGeneratorDSL.g:2633:5: lv_name_0_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_52);
+            pushFollow(FOLLOW_53);
             lv_name_0_0=ruleStringOrId();
 
             state._fsp--;
@@ -6848,20 +7026,20 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,51,FOLLOW_53); 
+            otherlv_1=(Token)match(input,52,FOLLOW_54); 
 
             			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
             		
-            // InternalGeneratorDSL.g:2567:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalGeneratorDSL.g:2568:4: (lv_type_2_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:2654:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalGeneratorDSL.g:2655:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:2568:4: (lv_type_2_0= ruleTypeRule )
-            // InternalGeneratorDSL.g:2569:5: lv_type_2_0= ruleTypeRule
+            // InternalGeneratorDSL.g:2655:4: (lv_type_2_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:2656:5: lv_type_2_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
             				
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_55);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -6883,26 +7061,26 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:2586:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalGeneratorDSL.g:2673:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA41_0==38) ) {
-                alt41=1;
+            if ( (LA43_0==38) ) {
+                alt43=1;
             }
-            switch (alt41) {
+            switch (alt43) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2587:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalGeneratorDSL.g:2674:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,38,FOLLOW_40); 
+                    otherlv_3=(Token)match(input,38,FOLLOW_39); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                     			
-                    // InternalGeneratorDSL.g:2591:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalGeneratorDSL.g:2592:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalGeneratorDSL.g:2678:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalGeneratorDSL.g:2679:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalGeneratorDSL.g:2592:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalGeneratorDSL.g:2593:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalGeneratorDSL.g:2679:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalGeneratorDSL.g:2680:6: lv_initialisation_4_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0());
@@ -6962,7 +7140,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalGeneratorDSL.g:2619:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalGeneratorDSL.g:2706:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6970,8 +7148,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2619:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalGeneratorDSL.g:2620:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalGeneratorDSL.g:2706:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalGeneratorDSL.g:2707:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
              newCompositeNode(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6998,7 +7176,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalGeneratorDSL.g:2626:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalGeneratorDSL.g:2713:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7027,72 +7205,72 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2632:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalGeneratorDSL.g:2633:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalGeneratorDSL.g:2719:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalGeneratorDSL.g:2720:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalGeneratorDSL.g:2633:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt42=10;
+            // InternalGeneratorDSL.g:2720:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt44=10;
             switch ( input.LA(1) ) {
-            case 55:
+            case 56:
                 {
-                alt42=1;
+                alt44=1;
                 }
                 break;
-            case 57:
+            case 58:
                 {
-                alt42=2;
+                alt44=2;
                 }
                 break;
-            case 58:
+            case 59:
                 {
-                alt42=3;
+                alt44=3;
                 }
                 break;
-            case 59:
+            case 60:
                 {
-                alt42=4;
+                alt44=4;
                 }
                 break;
-            case 52:
+            case 53:
                 {
-                alt42=5;
+                alt44=5;
                 }
                 break;
-            case 61:
+            case 62:
                 {
-                alt42=6;
+                alt44=6;
                 }
                 break;
-            case 53:
+            case 54:
                 {
-                alt42=7;
+                alt44=7;
                 }
                 break;
-            case 60:
+            case 61:
                 {
-                alt42=8;
+                alt44=8;
                 }
                 break;
-            case 56:
+            case 57:
                 {
-                alt42=9;
+                alt44=9;
                 }
                 break;
             case 39:
                 {
-                alt42=10;
+                alt44=10;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt42) {
+            switch (alt44) {
                 case 1 :
-                    // InternalGeneratorDSL.g:2634:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalGeneratorDSL.g:2721:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0());
@@ -7110,7 +7288,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:2643:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalGeneratorDSL.g:2730:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1());
@@ -7128,7 +7306,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:2652:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalGeneratorDSL.g:2739:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2());
@@ -7146,7 +7324,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:2661:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalGeneratorDSL.g:2748:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3());
@@ -7164,7 +7342,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:2670:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalGeneratorDSL.g:2757:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4());
@@ -7182,7 +7360,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:2679:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalGeneratorDSL.g:2766:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5());
@@ -7200,7 +7378,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 7 :
-                    // InternalGeneratorDSL.g:2688:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalGeneratorDSL.g:2775:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6());
@@ -7218,7 +7396,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 8 :
-                    // InternalGeneratorDSL.g:2697:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalGeneratorDSL.g:2784:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7());
@@ -7236,7 +7414,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 9 :
-                    // InternalGeneratorDSL.g:2706:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalGeneratorDSL.g:2793:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8());
@@ -7254,7 +7432,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 10 :
-                    // InternalGeneratorDSL.g:2715:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalGeneratorDSL.g:2802:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9());
@@ -7294,7 +7472,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalGeneratorDSL.g:2727:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalGeneratorDSL.g:2814:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7302,8 +7480,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2727:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalGeneratorDSL.g:2728:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalGeneratorDSL.g:2814:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalGeneratorDSL.g:2815:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7330,7 +7508,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalGeneratorDSL.g:2734:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalGeneratorDSL.g:2821:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7340,14 +7518,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2740:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalGeneratorDSL.g:2741:2: ( () otherlv_1= 'literal' )
+            // InternalGeneratorDSL.g:2827:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalGeneratorDSL.g:2828:2: ( () otherlv_1= 'literal' )
             {
-            // InternalGeneratorDSL.g:2741:2: ( () otherlv_1= 'literal' )
-            // InternalGeneratorDSL.g:2742:3: () otherlv_1= 'literal'
+            // InternalGeneratorDSL.g:2828:2: ( () otherlv_1= 'literal' )
+            // InternalGeneratorDSL.g:2829:3: () otherlv_1= 'literal'
             {
-            // InternalGeneratorDSL.g:2742:3: ()
-            // InternalGeneratorDSL.g:2743:4: 
+            // InternalGeneratorDSL.g:2829:3: ()
+            // InternalGeneratorDSL.g:2830:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7357,7 +7535,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,52,FOLLOW_2); 
+            otherlv_1=(Token)match(input,53,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
             		
@@ -7384,7 +7562,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalGeneratorDSL.g:2757:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalGeneratorDSL.g:2844:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7392,8 +7570,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2757:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalGeneratorDSL.g:2758:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalGeneratorDSL.g:2844:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalGeneratorDSL.g:2845:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
              newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7420,7 +7598,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalGeneratorDSL.g:2764:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalGeneratorDSL.g:2851:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7431,14 +7609,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2770:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalGeneratorDSL.g:2771:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalGeneratorDSL.g:2857:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalGeneratorDSL.g:2858:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalGeneratorDSL.g:2771:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalGeneratorDSL.g:2772:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalGeneratorDSL.g:2858:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalGeneratorDSL.g:2859:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalGeneratorDSL.g:2772:3: ()
-            // InternalGeneratorDSL.g:2773:4: 
+            // InternalGeneratorDSL.g:2859:3: ()
+            // InternalGeneratorDSL.g:2860:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7448,15 +7626,15 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,53,FOLLOW_6); 
+            otherlv_1=(Token)match(input,54,FOLLOW_6); 
 
             			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
             		
-            // InternalGeneratorDSL.g:2783:3: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:2784:4: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:2870:3: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:2871:4: ( ruleQualifiedName )
             {
-            // InternalGeneratorDSL.g:2784:4: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:2785:5: ruleQualifiedName
+            // InternalGeneratorDSL.g:2871:4: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:2872:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -7466,7 +7644,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
             				
-            pushFollow(FOLLOW_55);
+            pushFollow(FOLLOW_56);
             ruleQualifiedName();
 
             state._fsp--;
@@ -7480,30 +7658,30 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:2799:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop43:
+            // InternalGeneratorDSL.g:2886:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop45:
             do {
-                int alt43=2;
-                int LA43_0 = input.LA(1);
+                int alt45=2;
+                int LA45_0 = input.LA(1);
 
-                if ( (LA43_0==54) ) {
-                    alt43=1;
+                if ( (LA45_0==55) ) {
+                    alt45=1;
                 }
 
 
-                switch (alt43) {
+                switch (alt45) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:2800:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalGeneratorDSL.g:2887:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,54,FOLLOW_6); 
+            	    otherlv_3=(Token)match(input,55,FOLLOW_6); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	    			
-            	    // InternalGeneratorDSL.g:2804:4: ( ( ruleQualifiedName ) )
-            	    // InternalGeneratorDSL.g:2805:5: ( ruleQualifiedName )
+            	    // InternalGeneratorDSL.g:2891:4: ( ( ruleQualifiedName ) )
+            	    // InternalGeneratorDSL.g:2892:5: ( ruleQualifiedName )
             	    {
-            	    // InternalGeneratorDSL.g:2805:5: ( ruleQualifiedName )
-            	    // InternalGeneratorDSL.g:2806:6: ruleQualifiedName
+            	    // InternalGeneratorDSL.g:2892:5: ( ruleQualifiedName )
+            	    // InternalGeneratorDSL.g:2893:6: ruleQualifiedName
             	    {
 
             	    						if (current==null) {
@@ -7513,7 +7691,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             	    						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	    					
-            	    pushFollow(FOLLOW_55);
+            	    pushFollow(FOLLOW_56);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -7532,7 +7710,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop43;
+            	    break loop45;
                 }
             } while (true);
 
@@ -7559,7 +7737,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalGeneratorDSL.g:2825:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalGeneratorDSL.g:2912:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7567,8 +7745,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2825:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalGeneratorDSL.g:2826:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalGeneratorDSL.g:2912:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalGeneratorDSL.g:2913:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
              newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7595,7 +7773,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalGeneratorDSL.g:2832:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalGeneratorDSL.g:2919:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7605,14 +7783,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2838:2: ( ( () otherlv_1= 'string' ) )
-            // InternalGeneratorDSL.g:2839:2: ( () otherlv_1= 'string' )
+            // InternalGeneratorDSL.g:2925:2: ( ( () otherlv_1= 'string' ) )
+            // InternalGeneratorDSL.g:2926:2: ( () otherlv_1= 'string' )
             {
-            // InternalGeneratorDSL.g:2839:2: ( () otherlv_1= 'string' )
-            // InternalGeneratorDSL.g:2840:3: () otherlv_1= 'string'
+            // InternalGeneratorDSL.g:2926:2: ( () otherlv_1= 'string' )
+            // InternalGeneratorDSL.g:2927:3: () otherlv_1= 'string'
             {
-            // InternalGeneratorDSL.g:2840:3: ()
-            // InternalGeneratorDSL.g:2841:4: 
+            // InternalGeneratorDSL.g:2927:3: ()
+            // InternalGeneratorDSL.g:2928:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7622,7 +7800,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,55,FOLLOW_2); 
+            otherlv_1=(Token)match(input,56,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
             		
@@ -7649,7 +7827,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalGeneratorDSL.g:2855:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalGeneratorDSL.g:2942:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7657,8 +7835,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2855:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalGeneratorDSL.g:2856:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalGeneratorDSL.g:2942:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalGeneratorDSL.g:2943:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7685,7 +7863,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalGeneratorDSL.g:2862:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalGeneratorDSL.g:2949:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7695,14 +7873,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2868:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalGeneratorDSL.g:2869:2: ( () otherlv_1= 'expression' )
+            // InternalGeneratorDSL.g:2955:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalGeneratorDSL.g:2956:2: ( () otherlv_1= 'expression' )
             {
-            // InternalGeneratorDSL.g:2869:2: ( () otherlv_1= 'expression' )
-            // InternalGeneratorDSL.g:2870:3: () otherlv_1= 'expression'
+            // InternalGeneratorDSL.g:2956:2: ( () otherlv_1= 'expression' )
+            // InternalGeneratorDSL.g:2957:3: () otherlv_1= 'expression'
             {
-            // InternalGeneratorDSL.g:2870:3: ()
-            // InternalGeneratorDSL.g:2871:4: 
+            // InternalGeneratorDSL.g:2957:3: ()
+            // InternalGeneratorDSL.g:2958:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7712,7 +7890,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,56,FOLLOW_2); 
+            otherlv_1=(Token)match(input,57,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
             		
@@ -7739,7 +7917,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalGeneratorDSL.g:2885:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalGeneratorDSL.g:2972:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7747,8 +7925,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2885:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalGeneratorDSL.g:2886:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalGeneratorDSL.g:2972:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalGeneratorDSL.g:2973:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
              newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7775,7 +7953,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalGeneratorDSL.g:2892:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalGeneratorDSL.g:2979:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7785,14 +7963,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2898:2: ( ( () otherlv_1= 'int' ) )
-            // InternalGeneratorDSL.g:2899:2: ( () otherlv_1= 'int' )
+            // InternalGeneratorDSL.g:2985:2: ( ( () otherlv_1= 'int' ) )
+            // InternalGeneratorDSL.g:2986:2: ( () otherlv_1= 'int' )
             {
-            // InternalGeneratorDSL.g:2899:2: ( () otherlv_1= 'int' )
-            // InternalGeneratorDSL.g:2900:3: () otherlv_1= 'int'
+            // InternalGeneratorDSL.g:2986:2: ( () otherlv_1= 'int' )
+            // InternalGeneratorDSL.g:2987:3: () otherlv_1= 'int'
             {
-            // InternalGeneratorDSL.g:2900:3: ()
-            // InternalGeneratorDSL.g:2901:4: 
+            // InternalGeneratorDSL.g:2987:3: ()
+            // InternalGeneratorDSL.g:2988:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7802,7 +7980,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,57,FOLLOW_2); 
+            otherlv_1=(Token)match(input,58,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
             		
@@ -7829,7 +8007,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalGeneratorDSL.g:2915:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalGeneratorDSL.g:3002:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7837,8 +8015,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2915:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalGeneratorDSL.g:2916:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalGeneratorDSL.g:3002:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalGeneratorDSL.g:3003:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
              newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7865,7 +8043,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalGeneratorDSL.g:2922:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalGeneratorDSL.g:3009:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7875,14 +8053,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2928:2: ( ( () otherlv_1= 'float' ) )
-            // InternalGeneratorDSL.g:2929:2: ( () otherlv_1= 'float' )
+            // InternalGeneratorDSL.g:3015:2: ( ( () otherlv_1= 'float' ) )
+            // InternalGeneratorDSL.g:3016:2: ( () otherlv_1= 'float' )
             {
-            // InternalGeneratorDSL.g:2929:2: ( () otherlv_1= 'float' )
-            // InternalGeneratorDSL.g:2930:3: () otherlv_1= 'float'
+            // InternalGeneratorDSL.g:3016:2: ( () otherlv_1= 'float' )
+            // InternalGeneratorDSL.g:3017:3: () otherlv_1= 'float'
             {
-            // InternalGeneratorDSL.g:2930:3: ()
-            // InternalGeneratorDSL.g:2931:4: 
+            // InternalGeneratorDSL.g:3017:3: ()
+            // InternalGeneratorDSL.g:3018:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7892,7 +8070,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,58,FOLLOW_2); 
+            otherlv_1=(Token)match(input,59,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
             		
@@ -7919,7 +8097,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalGeneratorDSL.g:2945:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalGeneratorDSL.g:3032:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7927,8 +8105,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2945:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalGeneratorDSL.g:2946:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalGeneratorDSL.g:3032:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalGeneratorDSL.g:3033:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -7955,7 +8133,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalGeneratorDSL.g:2952:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalGeneratorDSL.g:3039:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -7965,14 +8143,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2958:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalGeneratorDSL.g:2959:2: ( () otherlv_1= 'boolean' )
+            // InternalGeneratorDSL.g:3045:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalGeneratorDSL.g:3046:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalGeneratorDSL.g:2959:2: ( () otherlv_1= 'boolean' )
-            // InternalGeneratorDSL.g:2960:3: () otherlv_1= 'boolean'
+            // InternalGeneratorDSL.g:3046:2: ( () otherlv_1= 'boolean' )
+            // InternalGeneratorDSL.g:3047:3: () otherlv_1= 'boolean'
             {
-            // InternalGeneratorDSL.g:2960:3: ()
-            // InternalGeneratorDSL.g:2961:4: 
+            // InternalGeneratorDSL.g:3047:3: ()
+            // InternalGeneratorDSL.g:3048:4: 
             {
 
             				current = forceCreateModelElement(
@@ -7982,7 +8160,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,59,FOLLOW_2); 
+            otherlv_1=(Token)match(input,60,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
             		
@@ -8009,7 +8187,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalGeneratorDSL.g:2975:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalGeneratorDSL.g:3062:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8017,8 +8195,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:2975:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalGeneratorDSL.g:2976:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalGeneratorDSL.g:3062:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalGeneratorDSL.g:3063:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
              newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -8045,7 +8223,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalGeneratorDSL.g:2982:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalGeneratorDSL.g:3069:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8055,14 +8233,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:2988:2: ( ( () otherlv_1= 'void' ) )
-            // InternalGeneratorDSL.g:2989:2: ( () otherlv_1= 'void' )
+            // InternalGeneratorDSL.g:3075:2: ( ( () otherlv_1= 'void' ) )
+            // InternalGeneratorDSL.g:3076:2: ( () otherlv_1= 'void' )
             {
-            // InternalGeneratorDSL.g:2989:2: ( () otherlv_1= 'void' )
-            // InternalGeneratorDSL.g:2990:3: () otherlv_1= 'void'
+            // InternalGeneratorDSL.g:3076:2: ( () otherlv_1= 'void' )
+            // InternalGeneratorDSL.g:3077:3: () otherlv_1= 'void'
             {
-            // InternalGeneratorDSL.g:2990:3: ()
-            // InternalGeneratorDSL.g:2991:4: 
+            // InternalGeneratorDSL.g:3077:3: ()
+            // InternalGeneratorDSL.g:3078:4: 
             {
 
             				current = forceCreateModelElement(
@@ -8072,7 +8250,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            otherlv_1=(Token)match(input,60,FOLLOW_2); 
+            otherlv_1=(Token)match(input,61,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
             		
@@ -8099,7 +8277,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalGeneratorDSL.g:3005:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalGeneratorDSL.g:3092:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8107,8 +8285,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3005:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalGeneratorDSL.g:3006:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalGeneratorDSL.g:3092:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalGeneratorDSL.g:3093:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
              newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -8135,7 +8313,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalGeneratorDSL.g:3012:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalGeneratorDSL.g:3099:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8145,14 +8323,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3018:2: ( ( () otherlv_1= 'data' ) )
-            // InternalGeneratorDSL.g:3019:2: ( () otherlv_1= 'data' )
+            // InternalGeneratorDSL.g:3105:2: ( ( () otherlv_1= 'data' ) )
+            // InternalGeneratorDSL.g:3106:2: ( () otherlv_1= 'data' )
             {
-            // InternalGeneratorDSL.g:3019:2: ( () otherlv_1= 'data' )
-            // InternalGeneratorDSL.g:3020:3: () otherlv_1= 'data'
+            // InternalGeneratorDSL.g:3106:2: ( () otherlv_1= 'data' )
+            // InternalGeneratorDSL.g:3107:3: () otherlv_1= 'data'
             {
-            // InternalGeneratorDSL.g:3020:3: ()
-            // InternalGeneratorDSL.g:3021:4: 
+            // InternalGeneratorDSL.g:3107:3: ()
+            // InternalGeneratorDSL.g:3108:4: 
             {
 
             				current = forceCreateModelElement(
@@ -8189,7 +8367,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalGeneratorDSL.g:3035:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalGeneratorDSL.g:3122:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8197,8 +8375,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3035:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalGeneratorDSL.g:3036:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalGeneratorDSL.g:3122:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalGeneratorDSL.g:3123:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
              newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -8225,7 +8403,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalGeneratorDSL.g:3042:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalGeneratorDSL.g:3129:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8237,21 +8415,21 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3048:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalGeneratorDSL.g:3049:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalGeneratorDSL.g:3135:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalGeneratorDSL.g:3136:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalGeneratorDSL.g:3049:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalGeneratorDSL.g:3050:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalGeneratorDSL.g:3136:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalGeneratorDSL.g:3137:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,61,FOLLOW_53); 
+            otherlv_0=(Token)match(input,62,FOLLOW_54); 
 
             			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
             		
-            // InternalGeneratorDSL.g:3054:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalGeneratorDSL.g:3055:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:3141:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalGeneratorDSL.g:3142:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:3055:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalGeneratorDSL.g:3056:5: lv_elements_1_0= ruleTypeRule
+            // InternalGeneratorDSL.g:3142:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:3143:5: lv_elements_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0());
@@ -8301,7 +8479,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalGeneratorDSL.g:3077:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalGeneratorDSL.g:3164:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -8309,8 +8487,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3077:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalGeneratorDSL.g:3078:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalGeneratorDSL.g:3164:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalGeneratorDSL.g:3165:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
              newCompositeNode(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -8337,7 +8515,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalGeneratorDSL.g:3084:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalGeneratorDSL.g:3171:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -8350,17 +8528,17 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3090:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalGeneratorDSL.g:3091:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalGeneratorDSL.g:3177:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalGeneratorDSL.g:3178:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalGeneratorDSL.g:3091:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalGeneratorDSL.g:3092:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalGeneratorDSL.g:3178:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalGeneratorDSL.g:3179:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalGeneratorDSL.g:3092:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalGeneratorDSL.g:3093:4: (lv_type_0_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:3179:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalGeneratorDSL.g:3180:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalGeneratorDSL.g:3093:4: (lv_type_0_0= ruleTypeRule )
-            // InternalGeneratorDSL.g:3094:5: lv_type_0_0= ruleTypeRule
+            // InternalGeneratorDSL.g:3180:4: (lv_type_0_0= ruleTypeRule )
+            // InternalGeneratorDSL.g:3181:5: lv_type_0_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0());
@@ -8387,11 +8565,11 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             }
 
-            // InternalGeneratorDSL.g:3111:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalGeneratorDSL.g:3112:4: (lv_name_1_0= ruleStringOrId )
+            // InternalGeneratorDSL.g:3198:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalGeneratorDSL.g:3199:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalGeneratorDSL.g:3112:4: (lv_name_1_0= ruleStringOrId )
-            // InternalGeneratorDSL.g:3113:5: lv_name_1_0= ruleStringOrId
+            // InternalGeneratorDSL.g:3199:4: (lv_name_1_0= ruleStringOrId )
+            // InternalGeneratorDSL.g:3200:5: lv_name_1_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0());
@@ -8441,7 +8619,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalGeneratorDSL.g:3134:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalGeneratorDSL.g:3221:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -8449,8 +8627,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3134:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalGeneratorDSL.g:3135:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalGeneratorDSL.g:3221:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalGeneratorDSL.g:3222:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -8477,7 +8655,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalGeneratorDSL.g:3141:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalGeneratorDSL.g:3228:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -8485,14 +8663,14 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3147:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalGeneratorDSL.g:3148:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:3234:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalGeneratorDSL.g:3235:2: ( ( ruleQualifiedName ) )
             {
-            // InternalGeneratorDSL.g:3148:2: ( ( ruleQualifiedName ) )
-            // InternalGeneratorDSL.g:3149:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:3235:2: ( ( ruleQualifiedName ) )
+            // InternalGeneratorDSL.g:3236:3: ( ruleQualifiedName )
             {
-            // InternalGeneratorDSL.g:3149:3: ( ruleQualifiedName )
-            // InternalGeneratorDSL.g:3150:4: ruleQualifiedName
+            // InternalGeneratorDSL.g:3236:3: ( ruleQualifiedName )
+            // InternalGeneratorDSL.g:3237:4: ruleQualifiedName
             {
 
             				if (current==null) {
@@ -8536,7 +8714,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalGeneratorDSL.g:3167:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalGeneratorDSL.g:3254:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -8544,8 +8722,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3167:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalGeneratorDSL.g:3168:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalGeneratorDSL.g:3254:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalGeneratorDSL.g:3255:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
              newCompositeNode(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -8572,7 +8750,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalGeneratorDSL.g:3174:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalGeneratorDSL.g:3261:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8586,16 +8764,16 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3180:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalGeneratorDSL.g:3181:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalGeneratorDSL.g:3267:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalGeneratorDSL.g:3268:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalGeneratorDSL.g:3181:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalGeneratorDSL.g:3182:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalGeneratorDSL.g:3268:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalGeneratorDSL.g:3269:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
 
             			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
             		
-            pushFollow(FOLLOW_38);
+            pushFollow(FOLLOW_57);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -8606,22 +8784,22 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             			afterParserOrEnumRuleCall();
             		
-            // InternalGeneratorDSL.g:3192:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop44:
+            // InternalGeneratorDSL.g:3279:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop46:
             do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
+                int alt46=2;
+                int LA46_0 = input.LA(1);
 
-                if ( (LA44_0==40) ) {
-                    alt44=1;
+                if ( (LA46_0==63) ) {
+                    alt46=1;
                 }
 
 
-                switch (alt44) {
+                switch (alt46) {
             	case 1 :
-            	    // InternalGeneratorDSL.g:3193:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalGeneratorDSL.g:3280:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,40,FOLLOW_6); 
+            	    kw=(Token)match(input,63,FOLLOW_6); 
 
             	    				current.merge(kw);
             	    				newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
@@ -8629,7 +8807,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
             	    				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	    			
-            	    pushFollow(FOLLOW_38);
+            	    pushFollow(FOLLOW_57);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -8645,7 +8823,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
             	    break;
 
             	default :
-            	    break loop44;
+            	    break loop46;
                 }
             } while (true);
 
@@ -8672,7 +8850,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalGeneratorDSL.g:3213:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalGeneratorDSL.g:3300:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -8680,8 +8858,8 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
         try {
-            // InternalGeneratorDSL.g:3213:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalGeneratorDSL.g:3214:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalGeneratorDSL.g:3300:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalGeneratorDSL.g:3301:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
              newCompositeNode(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -8708,7 +8886,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalGeneratorDSL.g:3220:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalGeneratorDSL.g:3307:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -8719,28 +8897,28 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3226:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalGeneratorDSL.g:3227:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalGeneratorDSL.g:3313:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalGeneratorDSL.g:3314:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalGeneratorDSL.g:3227:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalGeneratorDSL.g:3314:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA45_0==RULE_QUOTED_ID) ) {
-                alt45=1;
+            if ( (LA47_0==RULE_QUOTED_ID) ) {
+                alt47=1;
             }
-            else if ( (LA45_0==RULE_ID) ) {
-                alt45=2;
+            else if ( (LA47_0==RULE_ID) ) {
+                alt47=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt47) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3228:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalGeneratorDSL.g:3315:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 
 
@@ -8753,7 +8931,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3236:3: this_ID_1= RULE_ID
+                    // InternalGeneratorDSL.g:3323:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -8788,7 +8966,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalGeneratorDSL.g:3247:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalGeneratorDSL.g:3334:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8803,57 +8981,57 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3253:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalGeneratorDSL.g:3254:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalGeneratorDSL.g:3340:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalGeneratorDSL.g:3341:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalGeneratorDSL.g:3254:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt46=6;
+            // InternalGeneratorDSL.g:3341:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt48=6;
             switch ( input.LA(1) ) {
-            case 62:
+            case 64:
                 {
-                alt46=1;
+                alt48=1;
                 }
                 break;
-            case 63:
+            case 65:
                 {
-                alt46=2;
+                alt48=2;
                 }
                 break;
-            case 64:
+            case 66:
                 {
-                alt46=3;
+                alt48=3;
                 }
                 break;
-            case 65:
+            case 67:
                 {
-                alt46=4;
+                alt48=4;
                 }
                 break;
-            case 66:
+            case 68:
                 {
-                alt46=5;
+                alt48=5;
                 }
                 break;
-            case 67:
+            case 69:
                 {
-                alt46=6;
+                alt48=6;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt46) {
+            switch (alt48) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3255:3: (enumLiteral_0= '>=' )
+                    // InternalGeneratorDSL.g:3342:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalGeneratorDSL.g:3255:3: (enumLiteral_0= '>=' )
-                    // InternalGeneratorDSL.g:3256:4: enumLiteral_0= '>='
+                    // InternalGeneratorDSL.g:3342:3: (enumLiteral_0= '>=' )
+                    // InternalGeneratorDSL.g:3343:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,64,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0());
@@ -8865,12 +9043,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3263:3: (enumLiteral_1= '>' )
+                    // InternalGeneratorDSL.g:3350:3: (enumLiteral_1= '>' )
                     {
-                    // InternalGeneratorDSL.g:3263:3: (enumLiteral_1= '>' )
-                    // InternalGeneratorDSL.g:3264:4: enumLiteral_1= '>'
+                    // InternalGeneratorDSL.g:3350:3: (enumLiteral_1= '>' )
+                    // InternalGeneratorDSL.g:3351:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,65,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1());
@@ -8882,12 +9060,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:3271:3: (enumLiteral_2= '=' )
+                    // InternalGeneratorDSL.g:3358:3: (enumLiteral_2= '=' )
                     {
-                    // InternalGeneratorDSL.g:3271:3: (enumLiteral_2= '=' )
-                    // InternalGeneratorDSL.g:3272:4: enumLiteral_2= '='
+                    // InternalGeneratorDSL.g:3358:3: (enumLiteral_2= '=' )
+                    // InternalGeneratorDSL.g:3359:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,64,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,66,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2());
@@ -8899,12 +9077,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:3279:3: (enumLiteral_3= '!=' )
+                    // InternalGeneratorDSL.g:3366:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalGeneratorDSL.g:3279:3: (enumLiteral_3= '!=' )
-                    // InternalGeneratorDSL.g:3280:4: enumLiteral_3= '!='
+                    // InternalGeneratorDSL.g:3366:3: (enumLiteral_3= '!=' )
+                    // InternalGeneratorDSL.g:3367:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,65,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,67,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3());
@@ -8916,12 +9094,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:3287:3: (enumLiteral_4= '<' )
+                    // InternalGeneratorDSL.g:3374:3: (enumLiteral_4= '<' )
                     {
-                    // InternalGeneratorDSL.g:3287:3: (enumLiteral_4= '<' )
-                    // InternalGeneratorDSL.g:3288:4: enumLiteral_4= '<'
+                    // InternalGeneratorDSL.g:3374:3: (enumLiteral_4= '<' )
+                    // InternalGeneratorDSL.g:3375:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,66,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,68,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4());
@@ -8933,12 +9111,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:3295:3: (enumLiteral_5= '<=' )
+                    // InternalGeneratorDSL.g:3382:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalGeneratorDSL.g:3295:3: (enumLiteral_5= '<=' )
-                    // InternalGeneratorDSL.g:3296:4: enumLiteral_5= '<='
+                    // InternalGeneratorDSL.g:3382:3: (enumLiteral_5= '<=' )
+                    // InternalGeneratorDSL.g:3383:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,67,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,69,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5());
@@ -8972,7 +9150,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalGeneratorDSL.g:3306:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalGeneratorDSL.g:3393:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -8983,33 +9161,33 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3312:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalGeneratorDSL.g:3313:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalGeneratorDSL.g:3399:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalGeneratorDSL.g:3400:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalGeneratorDSL.g:3313:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalGeneratorDSL.g:3400:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA47_0==68) ) {
-                alt47=1;
+            if ( (LA49_0==70) ) {
+                alt49=1;
             }
-            else if ( (LA47_0==69) ) {
-                alt47=2;
+            else if ( (LA49_0==71) ) {
+                alt49=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 47, 0, input);
+                    new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
-            switch (alt47) {
+            switch (alt49) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3314:3: (enumLiteral_0= '+' )
+                    // InternalGeneratorDSL.g:3401:3: (enumLiteral_0= '+' )
                     {
-                    // InternalGeneratorDSL.g:3314:3: (enumLiteral_0= '+' )
-                    // InternalGeneratorDSL.g:3315:4: enumLiteral_0= '+'
+                    // InternalGeneratorDSL.g:3401:3: (enumLiteral_0= '+' )
+                    // InternalGeneratorDSL.g:3402:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,68,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,70,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0());
@@ -9021,12 +9199,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3322:3: (enumLiteral_1= '-' )
+                    // InternalGeneratorDSL.g:3409:3: (enumLiteral_1= '-' )
                     {
-                    // InternalGeneratorDSL.g:3322:3: (enumLiteral_1= '-' )
-                    // InternalGeneratorDSL.g:3323:4: enumLiteral_1= '-'
+                    // InternalGeneratorDSL.g:3409:3: (enumLiteral_1= '-' )
+                    // InternalGeneratorDSL.g:3410:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,69,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,71,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1());
@@ -9060,7 +9238,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalGeneratorDSL.g:3333:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalGeneratorDSL.g:3420:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -9072,42 +9250,42 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3339:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalGeneratorDSL.g:3340:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalGeneratorDSL.g:3426:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalGeneratorDSL.g:3427:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalGeneratorDSL.g:3340:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt48=3;
+            // InternalGeneratorDSL.g:3427:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt50=3;
             switch ( input.LA(1) ) {
-            case 70:
+            case 72:
                 {
-                alt48=1;
+                alt50=1;
                 }
                 break;
-            case 71:
+            case 73:
                 {
-                alt48=2;
+                alt50=2;
                 }
                 break;
-            case 72:
+            case 74:
                 {
-                alt48=3;
+                alt50=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
+                    new NoViableAltException("", 50, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt48) {
+            switch (alt50) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3341:3: (enumLiteral_0= '*' )
+                    // InternalGeneratorDSL.g:3428:3: (enumLiteral_0= '*' )
                     {
-                    // InternalGeneratorDSL.g:3341:3: (enumLiteral_0= '*' )
-                    // InternalGeneratorDSL.g:3342:4: enumLiteral_0= '*'
+                    // InternalGeneratorDSL.g:3428:3: (enumLiteral_0= '*' )
+                    // InternalGeneratorDSL.g:3429:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,70,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,72,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0());
@@ -9119,12 +9297,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3349:3: (enumLiteral_1= '/' )
+                    // InternalGeneratorDSL.g:3436:3: (enumLiteral_1= '/' )
                     {
-                    // InternalGeneratorDSL.g:3349:3: (enumLiteral_1= '/' )
-                    // InternalGeneratorDSL.g:3350:4: enumLiteral_1= '/'
+                    // InternalGeneratorDSL.g:3436:3: (enumLiteral_1= '/' )
+                    // InternalGeneratorDSL.g:3437:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,71,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,73,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1());
@@ -9136,12 +9314,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:3357:3: (enumLiteral_2= '%' )
+                    // InternalGeneratorDSL.g:3444:3: (enumLiteral_2= '%' )
                     {
-                    // InternalGeneratorDSL.g:3357:3: (enumLiteral_2= '%' )
-                    // InternalGeneratorDSL.g:3358:4: enumLiteral_2= '%'
+                    // InternalGeneratorDSL.g:3444:3: (enumLiteral_2= '%' )
+                    // InternalGeneratorDSL.g:3445:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,72,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,74,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2());
@@ -9175,7 +9353,7 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalGeneratorDSL.g:3368:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalGeneratorDSL.g:3455:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -9204,127 +9382,127 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
         	enterRule();
 
         try {
-            // InternalGeneratorDSL.g:3374:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalGeneratorDSL.g:3375:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalGeneratorDSL.g:3461:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalGeneratorDSL.g:3462:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalGeneratorDSL.g:3375:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt49=20;
+            // InternalGeneratorDSL.g:3462:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt51=20;
             switch ( input.LA(1) ) {
-            case 73:
-                {
-                alt49=1;
-                }
-                break;
-            case 74:
-                {
-                alt49=2;
-                }
-                break;
             case 75:
                 {
-                alt49=3;
+                alt51=1;
                 }
                 break;
             case 76:
                 {
-                alt49=4;
+                alt51=2;
                 }
                 break;
             case 77:
                 {
-                alt49=5;
+                alt51=3;
                 }
                 break;
             case 78:
                 {
-                alt49=6;
+                alt51=4;
                 }
                 break;
             case 79:
                 {
-                alt49=7;
+                alt51=5;
                 }
                 break;
             case 80:
                 {
-                alt49=8;
+                alt51=6;
                 }
                 break;
             case 81:
                 {
-                alt49=9;
+                alt51=7;
                 }
                 break;
             case 82:
                 {
-                alt49=10;
+                alt51=8;
                 }
                 break;
             case 83:
                 {
-                alt49=11;
+                alt51=9;
                 }
                 break;
             case 84:
                 {
-                alt49=12;
+                alt51=10;
                 }
                 break;
             case 85:
                 {
-                alt49=13;
+                alt51=11;
                 }
                 break;
             case 86:
                 {
-                alt49=14;
+                alt51=12;
                 }
                 break;
             case 87:
                 {
-                alt49=15;
+                alt51=13;
                 }
                 break;
             case 88:
                 {
-                alt49=16;
+                alt51=14;
                 }
                 break;
             case 89:
                 {
-                alt49=17;
+                alt51=15;
                 }
                 break;
             case 90:
                 {
-                alt49=18;
+                alt51=16;
                 }
                 break;
             case 91:
                 {
-                alt49=19;
+                alt51=17;
                 }
                 break;
             case 92:
                 {
-                alt49=20;
+                alt51=18;
+                }
+                break;
+            case 93:
+                {
+                alt51=19;
+                }
+                break;
+            case 94:
+                {
+                alt51=20;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                    new NoViableAltException("", 51, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt49) {
+            switch (alt51) {
                 case 1 :
-                    // InternalGeneratorDSL.g:3376:3: (enumLiteral_0= 'Y' )
+                    // InternalGeneratorDSL.g:3463:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalGeneratorDSL.g:3376:3: (enumLiteral_0= 'Y' )
-                    // InternalGeneratorDSL.g:3377:4: enumLiteral_0= 'Y'
+                    // InternalGeneratorDSL.g:3463:3: (enumLiteral_0= 'Y' )
+                    // InternalGeneratorDSL.g:3464:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,73,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,75,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0());
@@ -9336,12 +9514,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 2 :
-                    // InternalGeneratorDSL.g:3384:3: (enumLiteral_1= 'Z' )
+                    // InternalGeneratorDSL.g:3471:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalGeneratorDSL.g:3384:3: (enumLiteral_1= 'Z' )
-                    // InternalGeneratorDSL.g:3385:4: enumLiteral_1= 'Z'
+                    // InternalGeneratorDSL.g:3471:3: (enumLiteral_1= 'Z' )
+                    // InternalGeneratorDSL.g:3472:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,74,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,76,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1());
@@ -9353,12 +9531,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 3 :
-                    // InternalGeneratorDSL.g:3392:3: (enumLiteral_2= 'E' )
+                    // InternalGeneratorDSL.g:3479:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalGeneratorDSL.g:3392:3: (enumLiteral_2= 'E' )
-                    // InternalGeneratorDSL.g:3393:4: enumLiteral_2= 'E'
+                    // InternalGeneratorDSL.g:3479:3: (enumLiteral_2= 'E' )
+                    // InternalGeneratorDSL.g:3480:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,75,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,77,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2());
@@ -9370,12 +9548,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 4 :
-                    // InternalGeneratorDSL.g:3400:3: (enumLiteral_3= 'P' )
+                    // InternalGeneratorDSL.g:3487:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalGeneratorDSL.g:3400:3: (enumLiteral_3= 'P' )
-                    // InternalGeneratorDSL.g:3401:4: enumLiteral_3= 'P'
+                    // InternalGeneratorDSL.g:3487:3: (enumLiteral_3= 'P' )
+                    // InternalGeneratorDSL.g:3488:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,76,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,78,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3());
@@ -9387,12 +9565,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 5 :
-                    // InternalGeneratorDSL.g:3408:3: (enumLiteral_4= 'T' )
+                    // InternalGeneratorDSL.g:3495:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalGeneratorDSL.g:3408:3: (enumLiteral_4= 'T' )
-                    // InternalGeneratorDSL.g:3409:4: enumLiteral_4= 'T'
+                    // InternalGeneratorDSL.g:3495:3: (enumLiteral_4= 'T' )
+                    // InternalGeneratorDSL.g:3496:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,77,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,79,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4());
@@ -9404,12 +9582,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 6 :
-                    // InternalGeneratorDSL.g:3416:3: (enumLiteral_5= 'G' )
+                    // InternalGeneratorDSL.g:3503:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalGeneratorDSL.g:3416:3: (enumLiteral_5= 'G' )
-                    // InternalGeneratorDSL.g:3417:4: enumLiteral_5= 'G'
+                    // InternalGeneratorDSL.g:3503:3: (enumLiteral_5= 'G' )
+                    // InternalGeneratorDSL.g:3504:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,78,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,80,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5());
@@ -9421,12 +9599,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 7 :
-                    // InternalGeneratorDSL.g:3424:3: (enumLiteral_6= 'M' )
+                    // InternalGeneratorDSL.g:3511:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalGeneratorDSL.g:3424:3: (enumLiteral_6= 'M' )
-                    // InternalGeneratorDSL.g:3425:4: enumLiteral_6= 'M'
+                    // InternalGeneratorDSL.g:3511:3: (enumLiteral_6= 'M' )
+                    // InternalGeneratorDSL.g:3512:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,79,FOLLOW_2); 
+                    enumLiteral_6=(Token)match(input,81,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_6, grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6());
@@ -9438,12 +9616,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 8 :
-                    // InternalGeneratorDSL.g:3432:3: (enumLiteral_7= 'k' )
+                    // InternalGeneratorDSL.g:3519:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalGeneratorDSL.g:3432:3: (enumLiteral_7= 'k' )
-                    // InternalGeneratorDSL.g:3433:4: enumLiteral_7= 'k'
+                    // InternalGeneratorDSL.g:3519:3: (enumLiteral_7= 'k' )
+                    // InternalGeneratorDSL.g:3520:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,80,FOLLOW_2); 
+                    enumLiteral_7=(Token)match(input,82,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_7, grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7());
@@ -9455,12 +9633,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 9 :
-                    // InternalGeneratorDSL.g:3440:3: (enumLiteral_8= 'h' )
+                    // InternalGeneratorDSL.g:3527:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalGeneratorDSL.g:3440:3: (enumLiteral_8= 'h' )
-                    // InternalGeneratorDSL.g:3441:4: enumLiteral_8= 'h'
+                    // InternalGeneratorDSL.g:3527:3: (enumLiteral_8= 'h' )
+                    // InternalGeneratorDSL.g:3528:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,81,FOLLOW_2); 
+                    enumLiteral_8=(Token)match(input,83,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_8, grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8());
@@ -9472,12 +9650,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 10 :
-                    // InternalGeneratorDSL.g:3448:3: (enumLiteral_9= 'da' )
+                    // InternalGeneratorDSL.g:3535:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalGeneratorDSL.g:3448:3: (enumLiteral_9= 'da' )
-                    // InternalGeneratorDSL.g:3449:4: enumLiteral_9= 'da'
+                    // InternalGeneratorDSL.g:3535:3: (enumLiteral_9= 'da' )
+                    // InternalGeneratorDSL.g:3536:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,82,FOLLOW_2); 
+                    enumLiteral_9=(Token)match(input,84,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_9, grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9());
@@ -9489,12 +9667,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 11 :
-                    // InternalGeneratorDSL.g:3456:3: (enumLiteral_10= 'd' )
+                    // InternalGeneratorDSL.g:3543:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalGeneratorDSL.g:3456:3: (enumLiteral_10= 'd' )
-                    // InternalGeneratorDSL.g:3457:4: enumLiteral_10= 'd'
+                    // InternalGeneratorDSL.g:3543:3: (enumLiteral_10= 'd' )
+                    // InternalGeneratorDSL.g:3544:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,83,FOLLOW_2); 
+                    enumLiteral_10=(Token)match(input,85,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_10, grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10());
@@ -9506,12 +9684,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 12 :
-                    // InternalGeneratorDSL.g:3464:3: (enumLiteral_11= 'c' )
+                    // InternalGeneratorDSL.g:3551:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalGeneratorDSL.g:3464:3: (enumLiteral_11= 'c' )
-                    // InternalGeneratorDSL.g:3465:4: enumLiteral_11= 'c'
+                    // InternalGeneratorDSL.g:3551:3: (enumLiteral_11= 'c' )
+                    // InternalGeneratorDSL.g:3552:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,84,FOLLOW_2); 
+                    enumLiteral_11=(Token)match(input,86,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_11, grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11());
@@ -9523,12 +9701,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 13 :
-                    // InternalGeneratorDSL.g:3472:3: (enumLiteral_12= 'm' )
+                    // InternalGeneratorDSL.g:3559:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalGeneratorDSL.g:3472:3: (enumLiteral_12= 'm' )
-                    // InternalGeneratorDSL.g:3473:4: enumLiteral_12= 'm'
+                    // InternalGeneratorDSL.g:3559:3: (enumLiteral_12= 'm' )
+                    // InternalGeneratorDSL.g:3560:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,85,FOLLOW_2); 
+                    enumLiteral_12=(Token)match(input,87,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_12, grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12());
@@ -9540,12 +9718,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 14 :
-                    // InternalGeneratorDSL.g:3480:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalGeneratorDSL.g:3567:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalGeneratorDSL.g:3480:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalGeneratorDSL.g:3481:4: enumLiteral_13= '\\u00B5'
+                    // InternalGeneratorDSL.g:3567:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalGeneratorDSL.g:3568:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,86,FOLLOW_2); 
+                    enumLiteral_13=(Token)match(input,88,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_13, grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13());
@@ -9557,12 +9735,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 15 :
-                    // InternalGeneratorDSL.g:3488:3: (enumLiteral_14= 'n' )
+                    // InternalGeneratorDSL.g:3575:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalGeneratorDSL.g:3488:3: (enumLiteral_14= 'n' )
-                    // InternalGeneratorDSL.g:3489:4: enumLiteral_14= 'n'
+                    // InternalGeneratorDSL.g:3575:3: (enumLiteral_14= 'n' )
+                    // InternalGeneratorDSL.g:3576:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,87,FOLLOW_2); 
+                    enumLiteral_14=(Token)match(input,89,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_14, grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14());
@@ -9574,12 +9752,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 16 :
-                    // InternalGeneratorDSL.g:3496:3: (enumLiteral_15= 'p' )
+                    // InternalGeneratorDSL.g:3583:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalGeneratorDSL.g:3496:3: (enumLiteral_15= 'p' )
-                    // InternalGeneratorDSL.g:3497:4: enumLiteral_15= 'p'
+                    // InternalGeneratorDSL.g:3583:3: (enumLiteral_15= 'p' )
+                    // InternalGeneratorDSL.g:3584:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,88,FOLLOW_2); 
+                    enumLiteral_15=(Token)match(input,90,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_15, grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15());
@@ -9591,12 +9769,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 17 :
-                    // InternalGeneratorDSL.g:3504:3: (enumLiteral_16= 'f' )
+                    // InternalGeneratorDSL.g:3591:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalGeneratorDSL.g:3504:3: (enumLiteral_16= 'f' )
-                    // InternalGeneratorDSL.g:3505:4: enumLiteral_16= 'f'
+                    // InternalGeneratorDSL.g:3591:3: (enumLiteral_16= 'f' )
+                    // InternalGeneratorDSL.g:3592:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,89,FOLLOW_2); 
+                    enumLiteral_16=(Token)match(input,91,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_16, grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16());
@@ -9608,12 +9786,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 18 :
-                    // InternalGeneratorDSL.g:3512:3: (enumLiteral_17= 'a' )
+                    // InternalGeneratorDSL.g:3599:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalGeneratorDSL.g:3512:3: (enumLiteral_17= 'a' )
-                    // InternalGeneratorDSL.g:3513:4: enumLiteral_17= 'a'
+                    // InternalGeneratorDSL.g:3599:3: (enumLiteral_17= 'a' )
+                    // InternalGeneratorDSL.g:3600:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,90,FOLLOW_2); 
+                    enumLiteral_17=(Token)match(input,92,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_17, grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17());
@@ -9625,12 +9803,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 19 :
-                    // InternalGeneratorDSL.g:3520:3: (enumLiteral_18= 'z' )
+                    // InternalGeneratorDSL.g:3607:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalGeneratorDSL.g:3520:3: (enumLiteral_18= 'z' )
-                    // InternalGeneratorDSL.g:3521:4: enumLiteral_18= 'z'
+                    // InternalGeneratorDSL.g:3607:3: (enumLiteral_18= 'z' )
+                    // InternalGeneratorDSL.g:3608:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,91,FOLLOW_2); 
+                    enumLiteral_18=(Token)match(input,93,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_18, grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18());
@@ -9642,12 +9820,12 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
                     }
                     break;
                 case 20 :
-                    // InternalGeneratorDSL.g:3528:3: (enumLiteral_19= 'y' )
+                    // InternalGeneratorDSL.g:3615:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalGeneratorDSL.g:3528:3: (enumLiteral_19= 'y' )
-                    // InternalGeneratorDSL.g:3529:4: enumLiteral_19= 'y'
+                    // InternalGeneratorDSL.g:3615:3: (enumLiteral_19= 'y' )
+                    // InternalGeneratorDSL.g:3616:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,92,FOLLOW_2); 
+                    enumLiteral_19=(Token)match(input,94,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_19, grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19());
@@ -9682,6 +9860,51 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     // Delegated rules
 
 
+    protected DFA32 dfa32 = new DFA32(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\60\2\112\2\uffff\1\10\2\uffff\2\112";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\2\3\3\1\1\44\uffff\1\4\1\uffff\2\3",
+            "\1\7\7\uffff\1\7\17\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\7\uffff\1\7\17\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "",
+            "",
+            "\1\11\3\uffff\1\10",
+            "",
+            "",
+            "\1\7\7\uffff\1\7\17\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\7\uffff\1\7\17\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA32 extends DFA {
+
+        public DFA32(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 32;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "2000:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -9719,25 +9942,27 @@ public class InternalGeneratorDSLParser extends AbstractInternalAntlrParser {
     public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000200002L});
     public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000004000110L});
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x00060080000401F0L});
-    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x00060080000C01F0L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x00018080000401F0L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x00018080000C01F0L});
     public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000010000000002L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000020000000002L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00075080000401F0L,0x0000000000000030L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0001A880000401F0L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000020000000002L});
     public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0xC000000000000002L,0x000000000000000FL});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000030L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x00000000000001C0L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000200000000002L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000800000000000L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000400000000000L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0007D080000401F0L,0x0000000000000030L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000800001000000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000002L,0x000000001FFFFE00L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x3FB0008000000000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000004000010000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0040000000000002L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000002L,0x000000000000003FL});
+    public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000700L});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000400000000000L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000200000000000L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0001E880000401F0L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000400001000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x000000007FFFF800L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0004000000000000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0008000000200000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x7F60008000000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000004000010000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0080000000000002L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x8000000000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
index a18c9f67..75385841 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSemanticSequencer.java
@@ -13,6 +13,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -33,7 +35,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.generator.ApplyStatement;
@@ -103,6 +104,12 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -166,9 +173,6 @@ public class GeneratorDSLSemanticSequencer extends InstanceLanguageSemanticSeque
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSyntacticSequencer.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSyntacticSequencer.java
index 91bd4154..1bfdbeb1 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSyntacticSequencer.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/serializer/GeneratorDSLSyntacticSequencer.java
@@ -61,7 +61,7 @@ public class GeneratorDSLSyntacticSequencer extends AbstractSyntacticSequencer {
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
-	 *     definition=[TypeDefinition|QualifiedNameRule] (ambiguity) (rule end)
+	 *     definition=[TypeDefinition|QualifiedName] (ambiguity) (rule end)
 	 
 	 * </pre>
 	 */
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/services/GeneratorDSLGrammarAccess.java b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/services/GeneratorDSLGrammarAccess.java
index 99c370f7..807fd073 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/services/GeneratorDSLGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src-gen/de/evoal/languages/model/generator/dsl/services/GeneratorDSLGrammarAccess.java
@@ -858,7 +858,7 @@ public class GeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGra
 	}
 	
 	//InstanceRule returns Instance:
-	//    definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+	//    definition = [base::TypeDefinition|QualifiedName] ('{'
 	//      attributes += AttributeRule*
 	//    '}')?
 	//;
@@ -927,16 +927,6 @@ public class GeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGra
 		return getDataReferenceRuleAccess().getRule();
 	}
 	
-	//QualifiedNameRule:
-	//    StringOrId ('.' StringOrId)*;
-	public InstanceLanguageGrammarAccess.QualifiedNameRuleElements getQualifiedNameRuleAccess() {
-		return gaInstanceLanguage.getQualifiedNameRuleAccess();
-	}
-	
-	public ParserRule getQualifiedNameRuleRule() {
-		return getQualifiedNameRuleAccess().getRule();
-	}
-	
 	//ExpressionRule returns Expression:
 	//    OrExpressionRule
 	//;
@@ -1129,7 +1119,7 @@ public class GeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGra
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public BaseLanguageGrammarAccess.ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return gaBaseLanguage.getValueReferenceRuleAccess();
@@ -1139,6 +1129,17 @@ public class GeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGra
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -1401,6 +1402,17 @@ public class GeneratorDSLGrammarAccess extends AbstractElementFinder.AbstractGra
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
index 2e31973d..5db56c59 100644
--- a/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
+++ b/src/languages/de.evoal.languages.model.generator.dsl/src/de/evoal/languages/model/generator/dsl/GeneratorDSL.xtext
@@ -1,6 +1,5 @@
 grammar de.evoal.languages.model.generator.dsl.GeneratorDSL with de.evoal.languages.model.instance.dsl.InstanceLanguage
 
-//import "https://www.evoal.de/languages/dl/1.0.0" as dl
 import "https://www.evoal.de/languages/generator/1.0.0"
 
 ConfigurationRule returns Configuration:
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/InstanceLanguageParser.java b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/InstanceLanguageParser.java
index 28ca25c7..e26a4119 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/InstanceLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/InstanceLanguageParser.java
@@ -50,8 +50,6 @@ public class InstanceLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2(), "rule__ArrayRule__Group_2__0");
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2_1(), "rule__ArrayRule__Group_2_1__0");
 			builder.put(grammarAccess.getDataReferenceRuleAccess().getGroup(), "rule__DataReferenceRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup(), "rule__QualifiedNameRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup_1(), "rule__QualifiedNameRule__Group_1__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup(), "rule__OrExpressionRule__Group__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup_1(), "rule__OrExpressionRule__Group_1__0");
 			builder.put(grammarAccess.getXorExpressionRuleAccess().getGroup(), "rule__XorExpressionRule__Group__0");
@@ -72,7 +70,6 @@ public class InstanceLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -94,6 +91,7 @@ public class InstanceLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -131,6 +129,7 @@ public class InstanceLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -151,6 +150,9 @@ public class InstanceLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.g b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.g
index 7060fe3b..6c279e58 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.g
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.g
@@ -200,31 +200,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule
-:
-{ before(grammarAccess.getQualifiedNameRuleRule()); }
-	 ruleQualifiedNameRule
-{ after(grammarAccess.getQualifiedNameRuleRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-		(rule__QualifiedNameRule__Group__0)
-		{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule
 :
@@ -591,9 +566,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -750,6 +750,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -2201,114 +2226,6 @@ finally {
 }
 
 
-rule__QualifiedNameRule__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__0__Impl
-	rule__QualifiedNameRule__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-	(rule__QualifiedNameRule__Group_1__0)*
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedNameRule__Group_1__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__0__Impl
-	rule__QualifiedNameRule__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-	'.'
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__OrExpressionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -3470,53 +3387,161 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
+rule__DoubleLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__0__Impl
+	rule__DoubleLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__DoubleLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__DoubleLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntegerLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
+	rule__IntegerLiteralRule__Group__0__Impl
+	rule__IntegerLiteralRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__0__Impl
+rule__IntegerLiteralRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__IntegerLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__IntegerLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanLiteralRule__Group__0__Impl
+	rule__BooleanLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1
+rule__BooleanLiteralRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__1__Impl
+	rule__BooleanLiteralRule__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1__Impl
+rule__BooleanLiteralRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	(rule__BooleanLiteralRule__Alternatives_1)
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
 )
 ;
 finally {
@@ -3524,161 +3549,242 @@ finally {
 }
 
 
-rule__DoubleLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__0__Impl
-	rule__DoubleLiteralRule__Group__1
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__DoubleLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__DoubleLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__IntegerLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__2__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__0__Impl
-	rule__IntegerLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__IntegerLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__IntegerLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__BooleanLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__0__Impl
-	rule__BooleanLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
-	()
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1
+
+rule__TypeDefinitionRule__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
-	(rule__BooleanLiteralRule__Alternatives_1)
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
 )
 ;
 finally {
@@ -4693,9 +4799,9 @@ rule__InstanceRule__DefinitionAssignment_0
 	(
 		{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 		(
-			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
-			ruleQualifiedNameRule
-			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
+			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
 		)
 		{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 	)
@@ -5211,6 +5317,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -5305,6 +5430,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.tokens b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.tokens
index b4885e5e..389c532d 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguage.tokens
@@ -1,13 +1,13 @@
-'!'=74
+'!'=75
 '!='=19
 '%'=26
-'('=60
-')'=61
+'('=59
+')'=60
 '*'=24
 '+'=22
 ','=53
 '-'=23
-'.'=55
+'.'=74
 '/'=25
 ':'=63
 ':='=49
@@ -17,21 +17,22 @@
 '='=18
 '>'=17
 '>='=16
-'AND'=58
+'AND'=57
 'E'=29
 'G'=32
 'M'=33
-'OR'=56
+'OR'=55
 'P'=30
 'T'=31
-'XOR'=57
+'XOR'=56
 'Y'=27
 'Z'=28
 '['=51
 '\u00B5'=40
 ']'=52
-'^'=59
+'^'=58
 'a'=44
+'abstract'=77
 'array'=73
 'boolean'=71
 'c'=38
@@ -39,6 +40,7 @@
 'da'=36
 'data'=54
 'expression'=68
+'extends'=62
 'f'=43
 'false'=15
 'float'=70
@@ -51,8 +53,8 @@
 'n'=41
 'p'=42
 'string'=67
-'true'=75
-'value'=62
+'true'=76
+'type'=61
 'void'=72
 'y'=46
 'z'=45
@@ -131,3 +133,5 @@ T__72=72
 T__73=73
 T__74=74
 T__75=75
+T__76=76
+T__77=77
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageLexer.java b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageLexer.java
index 86250d01..affebadc 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageLexer.java
@@ -62,6 +62,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
     public static final int T__38=38;
     public static final int T__39=39;
     public static final int T__33=33;
+    public static final int T__77=77;
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
@@ -72,6 +73,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
     public static final int T__31=31;
     public static final int T__75=75;
     public static final int T__32=32;
+    public static final int T__76=76;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -911,10 +913,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:51:7: ( '.' )
-            // InternalInstanceLanguage.g:51:9: '.'
+            // InternalInstanceLanguage.g:51:7: ( 'OR' )
+            // InternalInstanceLanguage.g:51:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -931,10 +934,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:52:7: ( 'OR' )
-            // InternalInstanceLanguage.g:52:9: 'OR'
+            // InternalInstanceLanguage.g:52:7: ( 'XOR' )
+            // InternalInstanceLanguage.g:52:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -952,10 +955,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:53:7: ( 'XOR' )
-            // InternalInstanceLanguage.g:53:9: 'XOR'
+            // InternalInstanceLanguage.g:53:7: ( 'AND' )
+            // InternalInstanceLanguage.g:53:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -973,11 +976,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:54:7: ( 'AND' )
-            // InternalInstanceLanguage.g:54:9: 'AND'
+            // InternalInstanceLanguage.g:54:7: ( '^' )
+            // InternalInstanceLanguage.g:54:9: '^'
             {
-            match("AND"); 
-
+            match('^'); 
 
             }
 
@@ -994,10 +996,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:55:7: ( '^' )
-            // InternalInstanceLanguage.g:55:9: '^'
+            // InternalInstanceLanguage.g:55:7: ( '(' )
+            // InternalInstanceLanguage.g:55:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -1014,10 +1016,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:56:7: ( '(' )
-            // InternalInstanceLanguage.g:56:9: '('
+            // InternalInstanceLanguage.g:56:7: ( ')' )
+            // InternalInstanceLanguage.g:56:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -1034,10 +1036,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:57:7: ( ')' )
-            // InternalInstanceLanguage.g:57:9: ')'
+            // InternalInstanceLanguage.g:57:7: ( 'type' )
+            // InternalInstanceLanguage.g:57:9: 'type'
             {
-            match(')'); 
+            match("type"); 
+
 
             }
 
@@ -1054,10 +1057,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:58:7: ( 'value' )
-            // InternalInstanceLanguage.g:58:9: 'value'
+            // InternalInstanceLanguage.g:58:7: ( 'extends' )
+            // InternalInstanceLanguage.g:58:9: 'extends'
             {
-            match("value"); 
+            match("extends"); 
 
 
             }
@@ -1304,10 +1307,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:70:7: ( '!' )
-            // InternalInstanceLanguage.g:70:9: '!'
+            // InternalInstanceLanguage.g:70:7: ( '.' )
+            // InternalInstanceLanguage.g:70:9: '.'
             {
-            match('!'); 
+            match('.'); 
 
             }
 
@@ -1324,8 +1327,28 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:71:7: ( 'true' )
-            // InternalInstanceLanguage.g:71:9: 'true'
+            // InternalInstanceLanguage.g:71:7: ( '!' )
+            // InternalInstanceLanguage.g:71:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__75"
+
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalInstanceLanguage.g:72:7: ( 'true' )
+            // InternalInstanceLanguage.g:72:9: 'true'
             {
             match("true"); 
 
@@ -1338,13 +1361,34 @@ public class InternalInstanceLanguageLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__75"
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalInstanceLanguage.g:73:7: ( 'abstract' )
+            // InternalInstanceLanguage.g:73:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
 
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:5455:21: ( '0' .. '9' )
-            // InternalInstanceLanguage.g:5455:23: '0' .. '9'
+            // InternalInstanceLanguage.g:5648:21: ( '0' .. '9' )
+            // InternalInstanceLanguage.g:5648:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1359,11 +1403,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:5457:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalInstanceLanguage.g:5457:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:5650:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalInstanceLanguage.g:5650:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalInstanceLanguage.g:5457:30: ( '+' | '-' )?
+            // InternalInstanceLanguage.g:5650:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1389,7 +1433,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
             }
 
-            // InternalInstanceLanguage.g:5457:41: ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:5650:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1403,7 +1447,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5457:41: RULE_DIGIT
+            	    // InternalInstanceLanguage.g:5650:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1433,10 +1477,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5459:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalInstanceLanguage.g:5459:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:5652:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalInstanceLanguage.g:5652:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalInstanceLanguage.g:5459:12: ( '-' )?
+            // InternalInstanceLanguage.g:5652:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1445,7 +1489,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalInstanceLanguage.g:5459:12: '-'
+                    // InternalInstanceLanguage.g:5652:12: '-'
                     {
                     match('-'); 
 
@@ -1454,7 +1498,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
             }
 
-            // InternalInstanceLanguage.g:5459:17: ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:5652:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1468,7 +1512,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5459:17: RULE_DIGIT
+            	    // InternalInstanceLanguage.g:5652:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1500,15 +1544,15 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5461:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalInstanceLanguage.g:5461:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalInstanceLanguage.g:5654:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalInstanceLanguage.g:5654:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalInstanceLanguage.g:5461:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalInstanceLanguage.g:5654:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalInstanceLanguage.g:5461:16: RULE_INT RULE_EXPONENT
+                    // InternalInstanceLanguage.g:5654:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1516,11 +1560,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:5461:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalInstanceLanguage.g:5654:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalInstanceLanguage.g:5461:52: ( RULE_DIGIT )*
+                    // InternalInstanceLanguage.g:5654:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1533,7 +1577,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalInstanceLanguage.g:5461:52: RULE_DIGIT
+                    	    // InternalInstanceLanguage.g:5654:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1545,7 +1589,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalInstanceLanguage.g:5461:64: ( RULE_EXPONENT )?
+                    // InternalInstanceLanguage.g:5654:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1554,7 +1598,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalInstanceLanguage.g:5461:64: RULE_EXPONENT
+                            // InternalInstanceLanguage.g:5654:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1585,11 +1629,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5463:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalInstanceLanguage.g:5463:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalInstanceLanguage.g:5656:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalInstanceLanguage.g:5656:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalInstanceLanguage.g:5463:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalInstanceLanguage.g:5656:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1605,7 +1649,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5463:20: '\\\\' .
+            	    // InternalInstanceLanguage.g:5656:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1613,7 +1657,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalInstanceLanguage.g:5463:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalInstanceLanguage.g:5656:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1650,11 +1694,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5465:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalInstanceLanguage.g:5465:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalInstanceLanguage.g:5658:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalInstanceLanguage.g:5658:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalInstanceLanguage.g:5465:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalInstanceLanguage.g:5658:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1670,7 +1714,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5465:24: '\\\\' .
+            	    // InternalInstanceLanguage.g:5658:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1678,7 +1722,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalInstanceLanguage.g:5465:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalInstanceLanguage.g:5658:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1715,10 +1759,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5467:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalInstanceLanguage.g:5467:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalInstanceLanguage.g:5660:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalInstanceLanguage.g:5660:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalInstanceLanguage.g:5467:11: ( '^' )?
+            // InternalInstanceLanguage.g:5660:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1727,7 +1771,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalInstanceLanguage.g:5467:11: '^'
+                    // InternalInstanceLanguage.g:5660:11: '^'
                     {
                     match('^'); 
 
@@ -1745,7 +1789,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalInstanceLanguage.g:5467:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalInstanceLanguage.g:5660:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1794,12 +1838,12 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5469:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalInstanceLanguage.g:5469:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalInstanceLanguage.g:5662:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalInstanceLanguage.g:5662:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalInstanceLanguage.g:5469:24: ( options {greedy=false; } : . )*
+            // InternalInstanceLanguage.g:5662:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1824,7 +1868,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5469:52: .
+            	    // InternalInstanceLanguage.g:5662:52: .
             	    {
             	    matchAny(); 
 
@@ -1854,12 +1898,12 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5471:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalInstanceLanguage.g:5471:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalInstanceLanguage.g:5664:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalInstanceLanguage.g:5664:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalInstanceLanguage.g:5471:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalInstanceLanguage.g:5664:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1872,7 +1916,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:5471:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalInstanceLanguage.g:5664: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();
@@ -1892,7 +1936,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalInstanceLanguage.g:5471:40: ( ( '\\r' )? '\\n' )?
+            // InternalInstanceLanguage.g:5664:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1901,9 +1945,9 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalInstanceLanguage.g:5471:41: ( '\\r' )? '\\n'
+                    // InternalInstanceLanguage.g:5664:41: ( '\\r' )? '\\n'
                     {
-                    // InternalInstanceLanguage.g:5471:41: ( '\\r' )?
+                    // InternalInstanceLanguage.g:5664:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -1912,7 +1956,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalInstanceLanguage.g:5471:41: '\\r'
+                            // InternalInstanceLanguage.g:5664:41: '\\r'
                             {
                             match('\r'); 
 
@@ -1944,10 +1988,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5473:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalInstanceLanguage.g:5473:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalInstanceLanguage.g:5666:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalInstanceLanguage.g:5666:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalInstanceLanguage.g:5473:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalInstanceLanguage.g:5666:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2001,8 +2045,8 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:5475:16: ( . )
-            // InternalInstanceLanguage.g:5475:18: .
+            // InternalInstanceLanguage.g:5668:16: ( . )
+            // InternalInstanceLanguage.g:5668:18: .
             {
             matchAny(); 
 
@@ -2017,8 +2061,8 @@ public class InternalInstanceLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalInstanceLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=70;
+        // InternalInstanceLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=72;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2449,63 +2493,77 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 }
                 break;
             case 62 :
-                // InternalInstanceLanguage.g:1:376: RULE_INT
+                // InternalInstanceLanguage.g:1:376: T__76
                 {
-                mRULE_INT(); 
+                mT__76(); 
 
                 }
                 break;
             case 63 :
-                // InternalInstanceLanguage.g:1:385: RULE_DOUBLE
+                // InternalInstanceLanguage.g:1:382: T__77
                 {
-                mRULE_DOUBLE(); 
+                mT__77(); 
 
                 }
                 break;
             case 64 :
-                // InternalInstanceLanguage.g:1:397: RULE_STRING
+                // InternalInstanceLanguage.g:1:388: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 65 :
-                // InternalInstanceLanguage.g:1:409: RULE_QUOTED_ID
+                // InternalInstanceLanguage.g:1:397: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 66 :
-                // InternalInstanceLanguage.g:1:424: RULE_ID
+                // InternalInstanceLanguage.g:1:409: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 67 :
-                // InternalInstanceLanguage.g:1:432: RULE_ML_COMMENT
+                // InternalInstanceLanguage.g:1:421: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 68 :
-                // InternalInstanceLanguage.g:1:448: RULE_SL_COMMENT
+                // InternalInstanceLanguage.g:1:436: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 69 :
-                // InternalInstanceLanguage.g:1:464: RULE_WS
+                // InternalInstanceLanguage.g:1:444: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 70 :
-                // InternalInstanceLanguage.g:1:472: RULE_ANY_OTHER
+                // InternalInstanceLanguage.g:1:460: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 71 :
+                // InternalInstanceLanguage.g:1:476: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 72 :
+                // InternalInstanceLanguage.g:1:484: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2528,13 +2586,13 @@ public class InternalInstanceLanguageLexer extends Lexer {
     static final String DFA7_maxS =
         "\2\71\1\145\2\uffff";
     static final String DFA7_acceptS =
-        "\3\uffff\1\2\1\1";
+        "\3\uffff\1\1\1\2";
     static final String DFA7_specialS =
         "\5\uffff}>";
     static final String[] DFA7_transitionS = {
             "\1\1\2\uffff\12\2",
             "\12\2",
-            "\1\3\1\uffff\12\2\53\uffff\1\4",
+            "\1\4\1\uffff\12\2\53\uffff\1\3",
             "",
             ""
     };
@@ -2569,23 +2627,23 @@ public class InternalInstanceLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "5461:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "5654:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\73\1\76\1\uffff\1\101\1\103\1\uffff\1\106\1\uffff\1\112\1\uffff\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\123\1\124\1\126\1\127\1\130\1\uffff\1\132\1\133\1\135\1\136\1\137\2\uffff\1\143\5\uffff\3\74\1\154\2\uffff\3\74\1\uffff\4\74\1\170\2\70\3\uffff\2\74\12\uffff\1\170\17\uffff\1\u0080\6\uffff\1\74\14\uffff\1\u0082\2\74\3\uffff\4\74\1\uffff\4\74\5\uffff\3\74\1\uffff\1\74\1\uffff\1\u0092\1\u0093\4\74\1\u0098\6\74\1\u009f\1\74\2\uffff\1\74\1\u00a2\2\74\1\uffff\3\74\1\u00a8\1\u00a9\1\u00aa\1\uffff\1\u00ab\1\u00ac\1\uffff\5\74\5\uffff\2\74\1\u00b4\2\74\1\u00b7\1\74\1\uffff\1\74\1\u00ba\1\uffff\1\u00bb\1\74\2\uffff\1\74\1\u00be\1\uffff";
+        "\1\uffff\1\73\1\76\1\uffff\1\101\1\103\1\uffff\1\106\1\uffff\1\112\1\uffff\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\123\1\124\1\126\1\127\1\130\1\uffff\1\132\1\133\1\136\1\137\1\140\2\uffff\1\144\4\uffff\3\74\1\154\2\uffff\4\74\1\uffff\3\74\1\uffff\1\171\2\70\3\uffff\2\74\12\uffff\1\171\17\uffff\1\u0081\6\uffff\2\74\13\uffff\1\u0084\2\74\3\uffff\5\74\1\uffff\3\74\6\uffff\3\74\1\uffff\2\74\1\uffff\1\u0096\1\u0097\6\74\1\u009e\5\74\1\u00a4\2\74\2\uffff\1\u00a7\1\u00a8\4\74\1\uffff\2\74\1\u00af\1\u00b0\1\u00b1\1\uffff\1\u00b2\1\74\2\uffff\6\74\4\uffff\5\74\1\u00bf\2\74\1\u00c2\1\74\1\u00c4\1\74\1\uffff\1\u00c6\1\u00c7\1\uffff\1\74\1\uffff\1\u00c9\2\uffff\1\74\1\uffff\1\u00cb\1\uffff";
     static final String DFA17_eofS =
-        "\u00bf\uffff";
+        "\u00cc\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\2\uffff\1\75\5\uffff\1\122\1\117\1\116\1\101\2\uffff\1\141\1\151\1\156\1\uffff\1\164\1\170\1\157\1\162\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\6\uffff\1\162\14\uffff\1\60\1\122\1\104\3\uffff\1\154\1\151\1\164\1\163\1\uffff\1\162\1\160\1\157\1\165\5\uffff\1\163\2\141\1\uffff\1\141\1\uffff\2\60\1\165\1\144\1\145\1\164\1\60\1\151\1\162\1\154\2\145\1\164\1\60\1\171\2\uffff\1\145\1\60\1\162\1\141\1\uffff\1\156\2\145\3\60\1\uffff\2\60\1\uffff\1\141\1\156\1\147\1\163\1\141\5\uffff\1\154\1\143\1\60\1\163\1\156\1\60\1\145\1\uffff\1\151\1\60\1\uffff\1\60\1\157\2\uffff\1\156\1\60\1\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\2\uffff\1\75\4\uffff\1\122\1\117\1\116\1\101\2\uffff\1\162\1\170\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\157\12\uffff\1\56\17\uffff\1\60\6\uffff\1\162\1\163\13\uffff\1\60\1\122\1\104\3\uffff\1\160\1\165\1\160\1\164\1\163\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\141\1\164\1\uffff\2\60\3\145\1\162\1\145\1\164\1\60\1\151\1\154\1\144\1\145\1\164\1\60\1\171\1\162\2\uffff\2\60\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\3\60\1\uffff\1\60\1\141\2\uffff\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\2\163\1\154\1\143\1\60\1\156\1\164\1\60\1\151\1\60\1\145\1\uffff\2\60\1\uffff\1\157\1\uffff\1\60\2\uffff\1\156\1\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\2\uffff\1\75\5\uffff\1\122\1\117\1\116\1\172\2\uffff\1\157\1\151\1\156\1\uffff\1\164\1\170\1\157\1\162\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\6\uffff\1\162\14\uffff\1\172\1\122\1\104\3\uffff\1\154\1\151\2\164\1\uffff\1\162\1\160\1\157\1\165\5\uffff\1\163\2\141\1\uffff\1\141\1\uffff\2\172\1\165\1\144\1\145\1\164\1\172\1\151\1\162\1\154\2\145\1\164\1\172\1\171\2\uffff\1\145\1\172\1\162\1\141\1\uffff\1\156\2\145\3\172\1\uffff\2\172\1\uffff\1\141\1\156\1\147\1\163\1\141\5\uffff\1\154\1\143\1\172\1\163\1\156\1\172\1\145\1\uffff\1\151\1\172\1\uffff\1\172\1\157\2\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\2\uffff\1\75\4\uffff\1\122\1\117\1\116\1\172\2\uffff\1\171\1\170\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\157\12\uffff\1\145\17\uffff\1\172\6\uffff\1\162\1\163\13\uffff\1\172\1\122\1\104\3\uffff\1\160\1\165\3\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\2\141\1\uffff\1\141\1\164\1\uffff\2\172\3\145\1\162\1\145\1\164\1\172\1\151\1\154\1\144\1\145\1\164\1\172\1\171\1\162\2\uffff\2\172\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\3\172\1\uffff\1\172\1\141\2\uffff\1\144\1\163\1\141\1\156\1\147\1\141\4\uffff\1\143\2\163\1\154\1\143\1\172\1\156\1\164\1\172\1\151\1\172\1\145\1\uffff\2\172\1\uffff\1\157\1\uffff\1\172\2\uffff\1\156\1\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\5\uffff\1\41\1\42\1\uffff\1\44\1\45\1\46\1\47\1\51\4\uffff\1\56\1\57\3\uffff\1\64\7\uffff\1\102\1\105\1\106\2\uffff\1\35\1\102\1\2\1\3\1\4\1\5\1\74\1\7\1\6\1\10\1\uffff\1\11\1\12\1\103\1\104\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\1\31\1\32\1\33\1\34\1\uffff\1\36\1\37\1\40\1\41\1\42\1\43\1\61\1\44\1\45\1\46\1\47\1\51\3\uffff\1\55\1\56\1\57\4\uffff\1\64\4\uffff\1\76\1\77\1\100\1\101\1\105\3\uffff\1\26\1\uffff\1\52\17\uffff\1\53\1\54\4\uffff\1\67\6\uffff\1\50\2\uffff\1\72\5\uffff\1\75\1\1\1\70\1\73\1\60\7\uffff\1\65\2\uffff\1\62\2\uffff\1\71\1\63\2\uffff\1\66";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\5\uffff\1\41\1\42\1\uffff\1\44\1\45\1\46\1\47\4\uffff\1\55\1\56\4\uffff\1\64\3\uffff\1\74\3\uffff\1\104\1\107\1\110\2\uffff\1\35\1\104\1\2\1\3\1\4\1\5\1\75\1\7\1\6\1\10\1\uffff\1\11\1\12\1\105\1\106\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\1\31\1\32\1\33\1\34\2\uffff\1\36\1\37\1\40\1\41\1\42\1\43\1\61\1\44\1\45\1\46\1\47\3\uffff\1\54\1\55\1\56\5\uffff\1\64\3\uffff\1\74\1\100\1\101\1\102\1\103\1\107\3\uffff\1\26\2\uffff\1\51\21\uffff\1\52\1\53\6\uffff\1\67\5\uffff\1\50\2\uffff\1\57\1\76\6\uffff\1\72\1\1\1\70\1\73\14\uffff\1\65\2\uffff\1\60\1\uffff\1\62\1\uffff\1\71\1\77\1\uffff\1\63\1\uffff\1\66";
     static final String DFA17_specialS =
-        "\1\2\63\uffff\1\1\1\0\u0089\uffff}>";
+        "\1\1\63\uffff\1\2\1\0\u0096\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\70\2\67\2\70\1\67\22\70\1\67\1\4\1\64\2\70\1\12\1\70\1\65\1\51\1\52\1\10\1\6\1\43\1\7\1\44\1\11\12\63\1\37\1\40\1\5\1\3\1\2\2\70\1\47\3\66\1\15\1\66\1\20\5\66\1\21\1\66\1\45\1\16\3\66\1\17\3\66\1\46\1\13\1\14\1\41\1\70\1\42\1\50\1\66\1\70\1\32\1\61\1\25\1\24\1\60\1\1\1\66\1\23\1\55\1\66\1\22\1\54\1\26\1\30\1\66\1\31\2\66\1\57\1\62\1\66\1\53\2\66\1\34\1\33\1\35\1\56\1\36\67\70\1\27\uff4a\70",
+            "\11\70\2\67\2\70\1\67\22\70\1\67\1\4\1\64\2\70\1\12\1\70\1\65\1\50\1\51\1\10\1\6\1\43\1\7\1\62\1\11\12\63\1\37\1\40\1\5\1\3\1\2\2\70\1\46\3\66\1\15\1\66\1\20\5\66\1\21\1\66\1\44\1\16\3\66\1\17\3\66\1\45\1\13\1\14\1\41\1\70\1\42\1\47\1\66\1\70\1\32\1\60\1\25\1\24\1\53\1\1\1\66\1\23\1\55\1\66\1\22\1\54\1\26\1\30\1\66\1\31\2\66\1\57\1\52\1\66\1\61\2\66\1\34\1\33\1\35\1\56\1\36\67\70\1\27\uff4a\70",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\71\12\74\1\72\16\74",
             "\1\75",
             "",
@@ -2611,13 +2669,12 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\21\74\1\134\10\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\74\1\135\17\74\1\134\10\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
-            "\1\142",
-            "",
+            "\1\143",
             "",
             "",
             "",
@@ -2628,22 +2685,23 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
-            "\1\157\15\uffff\1\160",
+            "\1\160\6\uffff\1\157",
             "\1\161",
             "\1\162",
+            "\1\163",
             "",
-            "\1\164",
             "\1\165",
             "\1\166",
             "\1\167",
-            "\1\171\1\uffff\12\105\53\uffff\1\171",
-            "\0\172",
+            "",
+            "\1\172\1\uffff\12\105\53\uffff\1\172",
             "\0\173",
+            "\0\174",
             "",
             "",
             "",
-            "\1\175",
             "\1\176",
+            "\1\177",
             "",
             "",
             "",
@@ -2654,8 +2712,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\171\1\uffff\12\105\53\uffff\1\171",
-            "",
+            "\1\172\1\uffff\12\105\53\uffff\1\172",
             "",
             "",
             "",
@@ -2670,15 +2727,16 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\177\6\74",
             "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u0080\6\74",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0081",
             "",
+            "\1\u0082",
+            "\1\u0083",
             "",
             "",
             "",
@@ -2691,89 +2749,102 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0083",
-            "\1\u0084",
+            "\1\u0085",
+            "\1\u0086",
             "",
             "",
             "",
-            "\1\u0085",
-            "\1\u0086",
             "\1\u0087",
-            "\1\u0088\1\u0089",
-            "",
-            "\1\u008a",
+            "\1\u0088",
+            "\1\u008a\3\uffff\1\u0089",
             "\1\u008b",
-            "\1\u008c",
-            "\1\u008d",
+            "\1\u008c\1\u008d",
+            "",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
             "",
             "",
             "",
             "",
             "",
-            "\1\u008e",
-            "\1\u008f",
-            "\1\u0090",
             "",
             "\1\u0091",
+            "\1\u0092",
+            "\1\u0093",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u0094",
             "\1\u0095",
-            "\1\u0096",
-            "\1\u0097",
+            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0098",
             "\1\u0099",
             "\1\u009a",
             "\1\u009b",
             "\1\u009c",
             "\1\u009d",
-            "\1\u009e",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u009f",
             "\1\u00a0",
-            "",
-            "",
             "\1\u00a1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00a2",
             "\1\u00a3",
-            "\1\u00a4",
-            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00a5",
             "\1\u00a6",
-            "\1\u00a7",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
+            "\1\u00ac",
             "",
             "\1\u00ad",
             "\1\u00ae",
-            "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00b3",
             "",
             "",
+            "\1\u00b4",
+            "\1\u00b5",
+            "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
             "",
             "",
             "",
-            "\1\u00b2",
-            "\1\u00b3",
+            "",
+            "\1\u00ba",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00b5",
-            "\1\u00b6",
+            "\1\u00c0",
+            "\1\u00c1",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00b8",
+            "\1\u00c3",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c5",
             "",
-            "\1\u00b9",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "\1\u00c8",
+            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00bc",
             "",
             "",
-            "\1\u00bd",
+            "\1\u00ca",
+            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             ""
     };
@@ -2808,7 +2879,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -2818,23 +2889,13 @@ public class InternalInstanceLanguageLexer extends Lexer {
                         int LA17_53 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 123;}
+                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 124;}
 
                         else s = 56;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA17_52 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_52>='\u0000' && LA17_52<='\uFFFF')) ) {s = 122;}
-
-                        else s = 56;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -2908,21 +2969,21 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 35;}
 
-                        else if ( (LA17_0=='.') ) {s = 36;}
+                        else if ( (LA17_0=='O') ) {s = 36;}
 
-                        else if ( (LA17_0=='O') ) {s = 37;}
+                        else if ( (LA17_0=='X') ) {s = 37;}
 
-                        else if ( (LA17_0=='X') ) {s = 38;}
+                        else if ( (LA17_0=='A') ) {s = 38;}
 
-                        else if ( (LA17_0=='A') ) {s = 39;}
+                        else if ( (LA17_0=='^') ) {s = 39;}
 
-                        else if ( (LA17_0=='^') ) {s = 40;}
+                        else if ( (LA17_0=='(') ) {s = 40;}
 
-                        else if ( (LA17_0=='(') ) {s = 41;}
+                        else if ( (LA17_0==')') ) {s = 41;}
 
-                        else if ( (LA17_0==')') ) {s = 42;}
+                        else if ( (LA17_0=='t') ) {s = 42;}
 
-                        else if ( (LA17_0=='v') ) {s = 43;}
+                        else if ( (LA17_0=='e') ) {s = 43;}
 
                         else if ( (LA17_0=='l') ) {s = 44;}
 
@@ -2932,11 +2993,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='s') ) {s = 47;}
 
-                        else if ( (LA17_0=='e') ) {s = 48;}
+                        else if ( (LA17_0=='b') ) {s = 48;}
 
-                        else if ( (LA17_0=='b') ) {s = 49;}
+                        else if ( (LA17_0=='v') ) {s = 49;}
 
-                        else if ( (LA17_0=='t') ) {s = 50;}
+                        else if ( (LA17_0=='.') ) {s = 50;}
 
                         else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 51;}
 
@@ -2950,6 +3011,16 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||LA17_0=='\\'||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 56;}
 
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA17_52 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_52>='\u0000' && LA17_52<='\uFFFF')) ) {s = 123;}
+
+                        else s = 56;
+
                         if ( s>=0 ) return s;
                         break;
             }
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageParser.java b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageParser.java
index edd8a22b..53eb7b6a 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ide/src-gen/de/evoal/languages/model/instance/dsl/ide/contentassist/antlr/internal/InternalInstanceLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalInstanceLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'{'", "'}'", "':='", "';'", "'['", "']'", "','", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'value'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'{'", "'}'", "':='", "';'", "'['", "']'", "','", "'data'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -74,6 +74,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     public static final int T__38=38;
     public static final int T__39=39;
     public static final int T__33=33;
+    public static final int T__77=77;
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
@@ -84,6 +85,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     public static final int T__31=31;
     public static final int T__75=75;
     public static final int T__32=32;
+    public static final int T__76=76;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -595,89 +597,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalInstanceLanguage.g:204:1: entryRuleQualifiedNameRule : ruleQualifiedNameRule EOF ;
-    public final void entryRuleQualifiedNameRule() throws RecognitionException {
-        try {
-            // InternalInstanceLanguage.g:205:1: ( ruleQualifiedNameRule EOF )
-            // InternalInstanceLanguage.g:206:1: ruleQualifiedNameRule EOF
-            {
-             before(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             after(grammarAccess.getQualifiedNameRuleRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalInstanceLanguage.g:213:1: ruleQualifiedNameRule : ( ( rule__QualifiedNameRule__Group__0 ) ) ;
-    public final void ruleQualifiedNameRule() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalInstanceLanguage.g:217:2: ( ( ( rule__QualifiedNameRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:218:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            {
-            // InternalInstanceLanguage.g:218:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            // InternalInstanceLanguage.g:219:3: ( rule__QualifiedNameRule__Group__0 )
-            {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:220:3: ( rule__QualifiedNameRule__Group__0 )
-            // InternalInstanceLanguage.g:220:4: rule__QualifiedNameRule__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalInstanceLanguage.g:229:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
+    // InternalInstanceLanguage.g:204:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
     public final void entryRuleExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:230:1: ( ruleExpressionRule EOF )
-            // InternalInstanceLanguage.g:231:1: ruleExpressionRule EOF
+            // InternalInstanceLanguage.g:205:1: ( ruleExpressionRule EOF )
+            // InternalInstanceLanguage.g:206:1: ruleExpressionRule EOF
             {
              before(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -703,17 +628,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalInstanceLanguage.g:238:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
+    // InternalInstanceLanguage.g:213:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
     public final void ruleExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:242:2: ( ( ruleOrExpressionRule ) )
-            // InternalInstanceLanguage.g:243:2: ( ruleOrExpressionRule )
+            // InternalInstanceLanguage.g:217:2: ( ( ruleOrExpressionRule ) )
+            // InternalInstanceLanguage.g:218:2: ( ruleOrExpressionRule )
             {
-            // InternalInstanceLanguage.g:243:2: ( ruleOrExpressionRule )
-            // InternalInstanceLanguage.g:244:3: ruleOrExpressionRule
+            // InternalInstanceLanguage.g:218:2: ( ruleOrExpressionRule )
+            // InternalInstanceLanguage.g:219:3: ruleOrExpressionRule
             {
              before(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall()); 
             pushFollow(FOLLOW_2);
@@ -744,11 +669,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalInstanceLanguage.g:254:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
+    // InternalInstanceLanguage.g:229:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
     public final void entryRuleOrExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:255:1: ( ruleOrExpressionRule EOF )
-            // InternalInstanceLanguage.g:256:1: ruleOrExpressionRule EOF
+            // InternalInstanceLanguage.g:230:1: ( ruleOrExpressionRule EOF )
+            // InternalInstanceLanguage.g:231:1: ruleOrExpressionRule EOF
             {
              before(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -774,21 +699,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalInstanceLanguage.g:263:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:238:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
     public final void ruleOrExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:267:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:268:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:242:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:243:2: ( ( rule__OrExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:268:2: ( ( rule__OrExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:269:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:243:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:244:3: ( rule__OrExpressionRule__Group__0 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:270:3: ( rule__OrExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:270:4: rule__OrExpressionRule__Group__0
+            // InternalInstanceLanguage.g:245:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:245:4: rule__OrExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__0();
@@ -821,11 +746,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalInstanceLanguage.g:279:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
+    // InternalInstanceLanguage.g:254:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
     public final void entryRuleXorExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:280:1: ( ruleXorExpressionRule EOF )
-            // InternalInstanceLanguage.g:281:1: ruleXorExpressionRule EOF
+            // InternalInstanceLanguage.g:255:1: ( ruleXorExpressionRule EOF )
+            // InternalInstanceLanguage.g:256:1: ruleXorExpressionRule EOF
             {
              before(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -851,21 +776,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalInstanceLanguage.g:288:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:263:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
     public final void ruleXorExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:292:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:293:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:267:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:268:2: ( ( rule__XorExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:293:2: ( ( rule__XorExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:294:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:268:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:269:3: ( rule__XorExpressionRule__Group__0 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:295:3: ( rule__XorExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:295:4: rule__XorExpressionRule__Group__0
+            // InternalInstanceLanguage.g:270:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:270:4: rule__XorExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__0();
@@ -898,11 +823,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalInstanceLanguage.g:304:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
+    // InternalInstanceLanguage.g:279:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
     public final void entryRuleAndExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:305:1: ( ruleAndExpressionRule EOF )
-            // InternalInstanceLanguage.g:306:1: ruleAndExpressionRule EOF
+            // InternalInstanceLanguage.g:280:1: ( ruleAndExpressionRule EOF )
+            // InternalInstanceLanguage.g:281:1: ruleAndExpressionRule EOF
             {
              before(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -928,21 +853,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalInstanceLanguage.g:313:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:288:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
     public final void ruleAndExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:317:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:318:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:292:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:293:2: ( ( rule__AndExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:318:2: ( ( rule__AndExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:319:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:293:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:294:3: ( rule__AndExpressionRule__Group__0 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:320:3: ( rule__AndExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:320:4: rule__AndExpressionRule__Group__0
+            // InternalInstanceLanguage.g:295:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:295:4: rule__AndExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__0();
@@ -975,11 +900,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalInstanceLanguage.g:329:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
+    // InternalInstanceLanguage.g:304:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
     public final void entryRuleNotExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:330:1: ( ruleNotExpressionRule EOF )
-            // InternalInstanceLanguage.g:331:1: ruleNotExpressionRule EOF
+            // InternalInstanceLanguage.g:305:1: ( ruleNotExpressionRule EOF )
+            // InternalInstanceLanguage.g:306:1: ruleNotExpressionRule EOF
             {
              before(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1005,21 +930,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalInstanceLanguage.g:338:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:313:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
     public final void ruleNotExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:342:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:343:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:317:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:318:2: ( ( rule__NotExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:343:2: ( ( rule__NotExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:344:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:318:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:319:3: ( rule__NotExpressionRule__Group__0 )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:345:3: ( rule__NotExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:345:4: rule__NotExpressionRule__Group__0
+            // InternalInstanceLanguage.g:320:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:320:4: rule__NotExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__0();
@@ -1052,11 +977,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalInstanceLanguage.g:354:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
+    // InternalInstanceLanguage.g:329:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
     public final void entryRuleComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:355:1: ( ruleComparisonExpressionRule EOF )
-            // InternalInstanceLanguage.g:356:1: ruleComparisonExpressionRule EOF
+            // InternalInstanceLanguage.g:330:1: ( ruleComparisonExpressionRule EOF )
+            // InternalInstanceLanguage.g:331:1: ruleComparisonExpressionRule EOF
             {
              before(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1082,21 +1007,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalInstanceLanguage.g:363:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:338:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
     public final void ruleComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:367:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:368:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:342:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:343:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:368:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:369:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:343:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:344:3: ( rule__ComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:370:3: ( rule__ComparisonExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:370:4: rule__ComparisonExpressionRule__Group__0
+            // InternalInstanceLanguage.g:345:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:345:4: rule__ComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__0();
@@ -1129,11 +1054,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalInstanceLanguage.g:379:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
+    // InternalInstanceLanguage.g:354:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
     public final void entryRulePartialComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:380:1: ( rulePartialComparisonExpressionRule EOF )
-            // InternalInstanceLanguage.g:381:1: rulePartialComparisonExpressionRule EOF
+            // InternalInstanceLanguage.g:355:1: ( rulePartialComparisonExpressionRule EOF )
+            // InternalInstanceLanguage.g:356:1: rulePartialComparisonExpressionRule EOF
             {
              before(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1159,21 +1084,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalInstanceLanguage.g:388:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:363:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
     public final void rulePartialComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:392:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:393:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:367:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:368:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:393:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:394:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:368:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:369:3: ( rule__PartialComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:395:3: ( rule__PartialComparisonExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:395:4: rule__PartialComparisonExpressionRule__Group__0
+            // InternalInstanceLanguage.g:370:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:370:4: rule__PartialComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__0();
@@ -1206,11 +1131,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:404:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
+    // InternalInstanceLanguage.g:379:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
     public final void entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:405:1: ( ruleAddOrSubtractExpressionRule EOF )
-            // InternalInstanceLanguage.g:406:1: ruleAddOrSubtractExpressionRule EOF
+            // InternalInstanceLanguage.g:380:1: ( ruleAddOrSubtractExpressionRule EOF )
+            // InternalInstanceLanguage.g:381:1: ruleAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1236,21 +1161,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:413:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:388:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:417:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:418:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:392:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:393:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:418:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:419:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:393:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:394:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:420:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:420:4: rule__AddOrSubtractExpressionRule__Group__0
+            // InternalInstanceLanguage.g:395:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:395:4: rule__AddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__0();
@@ -1283,11 +1208,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalInstanceLanguage.g:429:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalInstanceLanguage.g:404:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
     public final void entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:430:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalInstanceLanguage.g:431:1: ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalInstanceLanguage.g:405:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalInstanceLanguage.g:406:1: ruleMultiplyDivideModuloExpressionRule EOF
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1313,21 +1238,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalInstanceLanguage.g:438:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:413:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
     public final void ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:442:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:443:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:417:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:418:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:443:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:444:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:418:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:419:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:445:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:445:4: rule__MultiplyDivideModuloExpressionRule__Group__0
+            // InternalInstanceLanguage.g:420:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:420:4: rule__MultiplyDivideModuloExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__0();
@@ -1360,11 +1285,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalInstanceLanguage.g:454:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
+    // InternalInstanceLanguage.g:429:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
     public final void entryRulePowerOfExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:455:1: ( rulePowerOfExpressionRule EOF )
-            // InternalInstanceLanguage.g:456:1: rulePowerOfExpressionRule EOF
+            // InternalInstanceLanguage.g:430:1: ( rulePowerOfExpressionRule EOF )
+            // InternalInstanceLanguage.g:431:1: rulePowerOfExpressionRule EOF
             {
              before(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1390,21 +1315,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalInstanceLanguage.g:463:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:438:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
     public final void rulePowerOfExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:467:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:468:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:442:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:443:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:468:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:469:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:443:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:444:3: ( rule__PowerOfExpressionRule__Group__0 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:470:3: ( rule__PowerOfExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:470:4: rule__PowerOfExpressionRule__Group__0
+            // InternalInstanceLanguage.g:445:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:445:4: rule__PowerOfExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__0();
@@ -1437,11 +1362,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:479:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalInstanceLanguage.g:454:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final void entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:480:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalInstanceLanguage.g:481:1: ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalInstanceLanguage.g:455:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalInstanceLanguage.g:456:1: ruleUnaryAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1467,21 +1392,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:488:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:463:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:492:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:493:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:467:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:468:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:493:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:494:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:468:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:469:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:495:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
-            // InternalInstanceLanguage.g:495:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
+            // InternalInstanceLanguage.g:470:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalInstanceLanguage.g:470:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__0();
@@ -1514,11 +1439,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalInstanceLanguage.g:504:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
+    // InternalInstanceLanguage.g:479:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
     public final void entryRuleLiteralOrReferenceRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:505:1: ( ruleLiteralOrReferenceRule EOF )
-            // InternalInstanceLanguage.g:506:1: ruleLiteralOrReferenceRule EOF
+            // InternalInstanceLanguage.g:480:1: ( ruleLiteralOrReferenceRule EOF )
+            // InternalInstanceLanguage.g:481:1: ruleLiteralOrReferenceRule EOF
             {
              before(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1544,21 +1469,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalInstanceLanguage.g:513:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:488:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
     public final void ruleLiteralOrReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:517:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:518:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalInstanceLanguage.g:492:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:493:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:518:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
-            // InternalInstanceLanguage.g:519:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalInstanceLanguage.g:493:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalInstanceLanguage.g:494:3: ( rule__LiteralOrReferenceRule__Alternatives )
             {
              before(grammarAccess.getLiteralOrReferenceRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:520:3: ( rule__LiteralOrReferenceRule__Alternatives )
-            // InternalInstanceLanguage.g:520:4: rule__LiteralOrReferenceRule__Alternatives
+            // InternalInstanceLanguage.g:495:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalInstanceLanguage.g:495:4: rule__LiteralOrReferenceRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralOrReferenceRule__Alternatives();
@@ -1591,11 +1516,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalInstanceLanguage.g:529:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
+    // InternalInstanceLanguage.g:504:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
     public final void entryRuleParanthesesRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:530:1: ( ruleParanthesesRule EOF )
-            // InternalInstanceLanguage.g:531:1: ruleParanthesesRule EOF
+            // InternalInstanceLanguage.g:505:1: ( ruleParanthesesRule EOF )
+            // InternalInstanceLanguage.g:506:1: ruleParanthesesRule EOF
             {
              before(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1621,21 +1546,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalInstanceLanguage.g:538:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:513:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
     public final void ruleParanthesesRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:542:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:543:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalInstanceLanguage.g:517:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:518:2: ( ( rule__ParanthesesRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:543:2: ( ( rule__ParanthesesRule__Group__0 ) )
-            // InternalInstanceLanguage.g:544:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalInstanceLanguage.g:518:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalInstanceLanguage.g:519:3: ( rule__ParanthesesRule__Group__0 )
             {
              before(grammarAccess.getParanthesesRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:545:3: ( rule__ParanthesesRule__Group__0 )
-            // InternalInstanceLanguage.g:545:4: rule__ParanthesesRule__Group__0
+            // InternalInstanceLanguage.g:520:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalInstanceLanguage.g:520:4: rule__ParanthesesRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__0();
@@ -1668,11 +1593,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalInstanceLanguage.g:554:1: entryRuleCallRule : ruleCallRule EOF ;
+    // InternalInstanceLanguage.g:529:1: entryRuleCallRule : ruleCallRule EOF ;
     public final void entryRuleCallRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:555:1: ( ruleCallRule EOF )
-            // InternalInstanceLanguage.g:556:1: ruleCallRule EOF
+            // InternalInstanceLanguage.g:530:1: ( ruleCallRule EOF )
+            // InternalInstanceLanguage.g:531:1: ruleCallRule EOF
             {
              before(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1698,21 +1623,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalInstanceLanguage.g:563:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:538:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
     public final void ruleCallRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:567:2: ( ( ( rule__CallRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:568:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalInstanceLanguage.g:542:2: ( ( ( rule__CallRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:543:2: ( ( rule__CallRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:568:2: ( ( rule__CallRule__Group__0 ) )
-            // InternalInstanceLanguage.g:569:3: ( rule__CallRule__Group__0 )
+            // InternalInstanceLanguage.g:543:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalInstanceLanguage.g:544:3: ( rule__CallRule__Group__0 )
             {
              before(grammarAccess.getCallRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:570:3: ( rule__CallRule__Group__0 )
-            // InternalInstanceLanguage.g:570:4: rule__CallRule__Group__0
+            // InternalInstanceLanguage.g:545:3: ( rule__CallRule__Group__0 )
+            // InternalInstanceLanguage.g:545:4: rule__CallRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__0();
@@ -1745,11 +1670,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalInstanceLanguage.g:579:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
+    // InternalInstanceLanguage.g:554:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
     public final void entryRuleValueReferenceRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:580:1: ( ruleValueReferenceRule EOF )
-            // InternalInstanceLanguage.g:581:1: ruleValueReferenceRule EOF
+            // InternalInstanceLanguage.g:555:1: ( ruleValueReferenceRule EOF )
+            // InternalInstanceLanguage.g:556:1: ruleValueReferenceRule EOF
             {
              before(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1775,31 +1700,102 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalInstanceLanguage.g:588:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:563:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:592:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:593:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalInstanceLanguage.g:567:2: ( ( ruleConstantReferenceRule ) )
+            // InternalInstanceLanguage.g:568:2: ( ruleConstantReferenceRule )
+            {
+            // InternalInstanceLanguage.g:568:2: ( ruleConstantReferenceRule )
+            // InternalInstanceLanguage.g:569:3: ruleConstantReferenceRule
+            {
+             before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalInstanceLanguage.g:579:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalInstanceLanguage.g:580:1: ( ruleConstantReferenceRule EOF )
+            // InternalInstanceLanguage.g:581:1: ruleConstantReferenceRule EOF
+            {
+             before(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalInstanceLanguage.g:588:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:592:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalInstanceLanguage.g:593:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
             {
-            // InternalInstanceLanguage.g:593:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalInstanceLanguage.g:594:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalInstanceLanguage.g:593:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalInstanceLanguage.g:594:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:595:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalInstanceLanguage.g:595:4: rule__ValueReferenceRule__Group__0
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            // InternalInstanceLanguage.g:595:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalInstanceLanguage.g:595:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
 
             }
 
@@ -1818,7 +1814,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
@@ -2283,12 +2279,89 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalInstanceLanguage.g:754:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalInstanceLanguage.g:755:1: ( ruleTypeDefinitionRule EOF )
+            // InternalInstanceLanguage.g:756:1: ruleTypeDefinitionRule EOF
+            {
+             before(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalInstanceLanguage.g:763:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:767:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:768:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalInstanceLanguage.g:768:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:769:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            // InternalInstanceLanguage.g:770:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalInstanceLanguage.g:770:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalInstanceLanguage.g:754:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalInstanceLanguage.g:779:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:755:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalInstanceLanguage.g:756:1: ruleAttributeDefinitionRule EOF
+            // InternalInstanceLanguage.g:780:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalInstanceLanguage.g:781:1: ruleAttributeDefinitionRule EOF
             {
              before(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2314,21 +2387,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalInstanceLanguage.g:763:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:788:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:767:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:768:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:792:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:793:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:768:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalInstanceLanguage.g:769:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalInstanceLanguage.g:793:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalInstanceLanguage.g:794:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:770:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalInstanceLanguage.g:770:4: rule__AttributeDefinitionRule__Group__0
+            // InternalInstanceLanguage.g:795:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalInstanceLanguage.g:795:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -2361,11 +2434,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalInstanceLanguage.g:779:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalInstanceLanguage.g:804:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:780:1: ( ruleTypeRule EOF )
-            // InternalInstanceLanguage.g:781:1: ruleTypeRule EOF
+            // InternalInstanceLanguage.g:805:1: ( ruleTypeRule EOF )
+            // InternalInstanceLanguage.g:806:1: ruleTypeRule EOF
             {
              before(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2391,21 +2464,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalInstanceLanguage.g:788:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:813:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:792:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:793:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalInstanceLanguage.g:817:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:818:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:793:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalInstanceLanguage.g:794:3: ( rule__TypeRule__Alternatives )
+            // InternalInstanceLanguage.g:818:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalInstanceLanguage.g:819:3: ( rule__TypeRule__Alternatives )
             {
              before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:795:3: ( rule__TypeRule__Alternatives )
-            // InternalInstanceLanguage.g:795:4: rule__TypeRule__Alternatives
+            // InternalInstanceLanguage.g:820:3: ( rule__TypeRule__Alternatives )
+            // InternalInstanceLanguage.g:820:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -2438,11 +2511,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalInstanceLanguage.g:804:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalInstanceLanguage.g:829:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:805:1: ( ruleLiteralTypeRule EOF )
-            // InternalInstanceLanguage.g:806:1: ruleLiteralTypeRule EOF
+            // InternalInstanceLanguage.g:830:1: ( ruleLiteralTypeRule EOF )
+            // InternalInstanceLanguage.g:831:1: ruleLiteralTypeRule EOF
             {
              before(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2468,21 +2541,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalInstanceLanguage.g:813:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:838:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:817:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:818:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:842:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:843:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:818:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:819:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:843:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:844:3: ( rule__LiteralTypeRule__Group__0 )
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:820:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:820:4: rule__LiteralTypeRule__Group__0
+            // InternalInstanceLanguage.g:845:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:845:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -2515,11 +2588,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalInstanceLanguage.g:829:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalInstanceLanguage.g:854:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:830:1: ( ruleInstanceTypeRule EOF )
-            // InternalInstanceLanguage.g:831:1: ruleInstanceTypeRule EOF
+            // InternalInstanceLanguage.g:855:1: ( ruleInstanceTypeRule EOF )
+            // InternalInstanceLanguage.g:856:1: ruleInstanceTypeRule EOF
             {
              before(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2545,21 +2618,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalInstanceLanguage.g:838:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:863:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:842:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:843:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:867:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:868:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:843:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:844:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:868:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:869:3: ( rule__InstanceTypeRule__Group__0 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:845:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:845:4: rule__InstanceTypeRule__Group__0
+            // InternalInstanceLanguage.g:870:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:870:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -2592,11 +2665,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalInstanceLanguage.g:854:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalInstanceLanguage.g:879:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:855:1: ( ruleStringTypeRule EOF )
-            // InternalInstanceLanguage.g:856:1: ruleStringTypeRule EOF
+            // InternalInstanceLanguage.g:880:1: ( ruleStringTypeRule EOF )
+            // InternalInstanceLanguage.g:881:1: ruleStringTypeRule EOF
             {
              before(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2622,21 +2695,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalInstanceLanguage.g:863:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:888:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:867:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:868:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:892:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:893:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:868:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:869:3: ( rule__StringTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:893:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:894:3: ( rule__StringTypeRule__Group__0 )
             {
              before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:870:3: ( rule__StringTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:870:4: rule__StringTypeRule__Group__0
+            // InternalInstanceLanguage.g:895:3: ( rule__StringTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:895:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -2669,11 +2742,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalInstanceLanguage.g:879:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalInstanceLanguage.g:904:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:880:1: ( ruleExpressionTypeRule EOF )
-            // InternalInstanceLanguage.g:881:1: ruleExpressionTypeRule EOF
+            // InternalInstanceLanguage.g:905:1: ( ruleExpressionTypeRule EOF )
+            // InternalInstanceLanguage.g:906:1: ruleExpressionTypeRule EOF
             {
              before(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2699,21 +2772,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalInstanceLanguage.g:888:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:913:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:892:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:893:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:917:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:918:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:893:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:894:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:918:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:919:3: ( rule__ExpressionTypeRule__Group__0 )
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:895:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:895:4: rule__ExpressionTypeRule__Group__0
+            // InternalInstanceLanguage.g:920:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:920:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -2746,11 +2819,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalInstanceLanguage.g:904:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalInstanceLanguage.g:929:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:905:1: ( ruleIntTypeRule EOF )
-            // InternalInstanceLanguage.g:906:1: ruleIntTypeRule EOF
+            // InternalInstanceLanguage.g:930:1: ( ruleIntTypeRule EOF )
+            // InternalInstanceLanguage.g:931:1: ruleIntTypeRule EOF
             {
              before(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2776,21 +2849,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalInstanceLanguage.g:913:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:938:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:917:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:918:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:942:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:943:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:918:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:919:3: ( rule__IntTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:943:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:944:3: ( rule__IntTypeRule__Group__0 )
             {
              before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:920:3: ( rule__IntTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:920:4: rule__IntTypeRule__Group__0
+            // InternalInstanceLanguage.g:945:3: ( rule__IntTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:945:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -2823,11 +2896,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalInstanceLanguage.g:929:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalInstanceLanguage.g:954:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:930:1: ( ruleFloatTypeRule EOF )
-            // InternalInstanceLanguage.g:931:1: ruleFloatTypeRule EOF
+            // InternalInstanceLanguage.g:955:1: ( ruleFloatTypeRule EOF )
+            // InternalInstanceLanguage.g:956:1: ruleFloatTypeRule EOF
             {
              before(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2853,21 +2926,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalInstanceLanguage.g:938:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:963:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:942:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:943:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:967:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:968:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:943:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:944:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:968:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:969:3: ( rule__FloatTypeRule__Group__0 )
             {
              before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:945:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:945:4: rule__FloatTypeRule__Group__0
+            // InternalInstanceLanguage.g:970:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:970:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -2900,11 +2973,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalInstanceLanguage.g:954:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalInstanceLanguage.g:979:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:955:1: ( ruleBooleanTypeRule EOF )
-            // InternalInstanceLanguage.g:956:1: ruleBooleanTypeRule EOF
+            // InternalInstanceLanguage.g:980:1: ( ruleBooleanTypeRule EOF )
+            // InternalInstanceLanguage.g:981:1: ruleBooleanTypeRule EOF
             {
              before(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2930,21 +3003,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalInstanceLanguage.g:963:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:988:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:967:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:968:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:992:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:993:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:968:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:969:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:993:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:994:3: ( rule__BooleanTypeRule__Group__0 )
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:970:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:970:4: rule__BooleanTypeRule__Group__0
+            // InternalInstanceLanguage.g:995:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:995:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -2977,11 +3050,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalInstanceLanguage.g:979:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalInstanceLanguage.g:1004:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:980:1: ( ruleVoidTypeRule EOF )
-            // InternalInstanceLanguage.g:981:1: ruleVoidTypeRule EOF
+            // InternalInstanceLanguage.g:1005:1: ( ruleVoidTypeRule EOF )
+            // InternalInstanceLanguage.g:1006:1: ruleVoidTypeRule EOF
             {
              before(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3007,21 +3080,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalInstanceLanguage.g:988:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:1013:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:992:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:993:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1017:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:1018:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:993:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:994:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1018:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1019:3: ( rule__VoidTypeRule__Group__0 )
             {
              before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:995:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:995:4: rule__VoidTypeRule__Group__0
+            // InternalInstanceLanguage.g:1020:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1020:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -3054,11 +3127,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalInstanceLanguage.g:1004:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalInstanceLanguage.g:1029:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1005:1: ( ruleDataTypeRule EOF )
-            // InternalInstanceLanguage.g:1006:1: ruleDataTypeRule EOF
+            // InternalInstanceLanguage.g:1030:1: ( ruleDataTypeRule EOF )
+            // InternalInstanceLanguage.g:1031:1: ruleDataTypeRule EOF
             {
              before(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3084,21 +3157,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalInstanceLanguage.g:1013:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:1038:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1017:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:1018:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1042:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:1043:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:1018:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:1019:3: ( rule__DataTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1043:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1044:3: ( rule__DataTypeRule__Group__0 )
             {
              before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:1020:3: ( rule__DataTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:1020:4: rule__DataTypeRule__Group__0
+            // InternalInstanceLanguage.g:1045:3: ( rule__DataTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1045:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -3131,11 +3204,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalInstanceLanguage.g:1029:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalInstanceLanguage.g:1054:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1030:1: ( ruleArrayTypeRule EOF )
-            // InternalInstanceLanguage.g:1031:1: ruleArrayTypeRule EOF
+            // InternalInstanceLanguage.g:1055:1: ( ruleArrayTypeRule EOF )
+            // InternalInstanceLanguage.g:1056:1: ruleArrayTypeRule EOF
             {
              before(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3161,21 +3234,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalInstanceLanguage.g:1038:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:1063:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1042:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:1043:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1067:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:1068:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:1043:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalInstanceLanguage.g:1044:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1068:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1069:3: ( rule__ArrayTypeRule__Group__0 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:1045:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalInstanceLanguage.g:1045:4: rule__ArrayTypeRule__Group__0
+            // InternalInstanceLanguage.g:1070:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalInstanceLanguage.g:1070:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -3208,11 +3281,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalInstanceLanguage.g:1054:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalInstanceLanguage.g:1079:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1055:1: ( ruleParameterRule EOF )
-            // InternalInstanceLanguage.g:1056:1: ruleParameterRule EOF
+            // InternalInstanceLanguage.g:1080:1: ( ruleParameterRule EOF )
+            // InternalInstanceLanguage.g:1081:1: ruleParameterRule EOF
             {
              before(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3238,21 +3311,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalInstanceLanguage.g:1063:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:1088:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1067:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalInstanceLanguage.g:1068:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1092:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalInstanceLanguage.g:1093:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:1068:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalInstanceLanguage.g:1069:3: ( rule__ParameterRule__Group__0 )
+            // InternalInstanceLanguage.g:1093:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalInstanceLanguage.g:1094:3: ( rule__ParameterRule__Group__0 )
             {
              before(grammarAccess.getParameterRuleAccess().getGroup()); 
-            // InternalInstanceLanguage.g:1070:3: ( rule__ParameterRule__Group__0 )
-            // InternalInstanceLanguage.g:1070:4: rule__ParameterRule__Group__0
+            // InternalInstanceLanguage.g:1095:3: ( rule__ParameterRule__Group__0 )
+            // InternalInstanceLanguage.g:1095:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -3285,11 +3358,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalInstanceLanguage.g:1079:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalInstanceLanguage.g:1104:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1080:1: ( ruleFunctionNameRule EOF )
-            // InternalInstanceLanguage.g:1081:1: ruleFunctionNameRule EOF
+            // InternalInstanceLanguage.g:1105:1: ( ruleFunctionNameRule EOF )
+            // InternalInstanceLanguage.g:1106:1: ruleFunctionNameRule EOF
             {
              before(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3315,21 +3388,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalInstanceLanguage.g:1088:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalInstanceLanguage.g:1113:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1092:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalInstanceLanguage.g:1093:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalInstanceLanguage.g:1117:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalInstanceLanguage.g:1118:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalInstanceLanguage.g:1093:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalInstanceLanguage.g:1094:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalInstanceLanguage.g:1118:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalInstanceLanguage.g:1119:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
-            // InternalInstanceLanguage.g:1095:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalInstanceLanguage.g:1095:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalInstanceLanguage.g:1120:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalInstanceLanguage.g:1120:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -3362,11 +3435,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalInstanceLanguage.g:1104:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalInstanceLanguage.g:1129:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1105:1: ( ruleQualifiedName EOF )
-            // InternalInstanceLanguage.g:1106:1: ruleQualifiedName EOF
+            // InternalInstanceLanguage.g:1130:1: ( ruleQualifiedName EOF )
+            // InternalInstanceLanguage.g:1131:1: ruleQualifiedName EOF
             {
              before(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -3392,21 +3465,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalInstanceLanguage.g:1113:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalInstanceLanguage.g:1138:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1117:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalInstanceLanguage.g:1118:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalInstanceLanguage.g:1142:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalInstanceLanguage.g:1143:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalInstanceLanguage.g:1118:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalInstanceLanguage.g:1119:3: ( rule__QualifiedName__Group__0 )
+            // InternalInstanceLanguage.g:1143:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalInstanceLanguage.g:1144:3: ( rule__QualifiedName__Group__0 )
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            // InternalInstanceLanguage.g:1120:3: ( rule__QualifiedName__Group__0 )
-            // InternalInstanceLanguage.g:1120:4: rule__QualifiedName__Group__0
+            // InternalInstanceLanguage.g:1145:3: ( rule__QualifiedName__Group__0 )
+            // InternalInstanceLanguage.g:1145:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -3439,11 +3512,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalInstanceLanguage.g:1129:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalInstanceLanguage.g:1154:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:1130:1: ( ruleStringOrId EOF )
-            // InternalInstanceLanguage.g:1131:1: ruleStringOrId EOF
+            // InternalInstanceLanguage.g:1155:1: ( ruleStringOrId EOF )
+            // InternalInstanceLanguage.g:1156:1: ruleStringOrId EOF
             {
              before(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -3469,21 +3542,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalInstanceLanguage.g:1138:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:1163:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1142:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalInstanceLanguage.g:1143:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalInstanceLanguage.g:1167:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalInstanceLanguage.g:1168:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:1143:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalInstanceLanguage.g:1144:3: ( rule__StringOrId__Alternatives )
+            // InternalInstanceLanguage.g:1168:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalInstanceLanguage.g:1169:3: ( rule__StringOrId__Alternatives )
             {
              before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:1145:3: ( rule__StringOrId__Alternatives )
-            // InternalInstanceLanguage.g:1145:4: rule__StringOrId__Alternatives
+            // InternalInstanceLanguage.g:1170:3: ( rule__StringOrId__Alternatives )
+            // InternalInstanceLanguage.g:1170:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -3516,21 +3589,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalInstanceLanguage.g:1154:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:1179:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1158:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:1159:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1183:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:1184:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:1159:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalInstanceLanguage.g:1160:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1184:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1185:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
              before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:1161:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalInstanceLanguage.g:1161:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalInstanceLanguage.g:1186:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1186:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -3563,21 +3636,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalInstanceLanguage.g:1170:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:1195:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1174:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:1175:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1199:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:1200:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:1175:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalInstanceLanguage.g:1176:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1200:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1201:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
              before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:1177:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalInstanceLanguage.g:1177:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalInstanceLanguage.g:1202:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1202:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -3610,21 +3683,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalInstanceLanguage.g:1186:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:1211:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1190:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:1191:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1215:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:1216:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:1191:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalInstanceLanguage.g:1192:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1216:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1217:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
              before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:1193:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalInstanceLanguage.g:1193:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalInstanceLanguage.g:1218:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalInstanceLanguage.g:1218:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -3657,21 +3730,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalInstanceLanguage.g:1202:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalInstanceLanguage.g:1227:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1206:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalInstanceLanguage.g:1207:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1231:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalInstanceLanguage.g:1232:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalInstanceLanguage.g:1207:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalInstanceLanguage.g:1208:3: ( rule__FactorRule__Alternatives )
+            // InternalInstanceLanguage.g:1232:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalInstanceLanguage.g:1233:3: ( rule__FactorRule__Alternatives )
             {
              before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
-            // InternalInstanceLanguage.g:1209:3: ( rule__FactorRule__Alternatives )
-            // InternalInstanceLanguage.g:1209:4: rule__FactorRule__Alternatives
+            // InternalInstanceLanguage.g:1234:3: ( rule__FactorRule__Alternatives )
+            // InternalInstanceLanguage.g:1234:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -3704,13 +3777,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ValueRule__Alternatives"
-    // InternalInstanceLanguage.g:1217:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
+    // InternalInstanceLanguage.g:1242:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
     public final void rule__ValueRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1221:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
+            // InternalInstanceLanguage.g:1246:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
             int alt1=4;
             switch ( input.LA(1) ) {
             case 51:
@@ -3733,7 +3806,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             case RULE_INT:
             case RULE_STRING:
             case 15:
-            case 75:
+            case 76:
                 {
                 alt1=4;
                 }
@@ -3747,10 +3820,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt1) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1222:2: ( ruleArrayRule )
+                    // InternalInstanceLanguage.g:1247:2: ( ruleArrayRule )
                     {
-                    // InternalInstanceLanguage.g:1222:2: ( ruleArrayRule )
-                    // InternalInstanceLanguage.g:1223:3: ruleArrayRule
+                    // InternalInstanceLanguage.g:1247:2: ( ruleArrayRule )
+                    // InternalInstanceLanguage.g:1248:3: ruleArrayRule
                     {
                      before(grammarAccess.getValueRuleAccess().getArrayRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3766,10 +3839,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1228:2: ( ruleDataReferenceRule )
+                    // InternalInstanceLanguage.g:1253:2: ( ruleDataReferenceRule )
                     {
-                    // InternalInstanceLanguage.g:1228:2: ( ruleDataReferenceRule )
-                    // InternalInstanceLanguage.g:1229:3: ruleDataReferenceRule
+                    // InternalInstanceLanguage.g:1253:2: ( ruleDataReferenceRule )
+                    // InternalInstanceLanguage.g:1254:3: ruleDataReferenceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3785,10 +3858,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1234:2: ( ruleInstanceRule )
+                    // InternalInstanceLanguage.g:1259:2: ( ruleInstanceRule )
                     {
-                    // InternalInstanceLanguage.g:1234:2: ( ruleInstanceRule )
-                    // InternalInstanceLanguage.g:1235:3: ruleInstanceRule
+                    // InternalInstanceLanguage.g:1259:2: ( ruleInstanceRule )
+                    // InternalInstanceLanguage.g:1260:3: ruleInstanceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getInstanceRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3804,10 +3877,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1240:2: ( ruleLiteralValueRule )
+                    // InternalInstanceLanguage.g:1265:2: ( ruleLiteralValueRule )
                     {
-                    // InternalInstanceLanguage.g:1240:2: ( ruleLiteralValueRule )
-                    // InternalInstanceLanguage.g:1241:3: ruleLiteralValueRule
+                    // InternalInstanceLanguage.g:1265:2: ( ruleLiteralValueRule )
+                    // InternalInstanceLanguage.g:1266:3: ruleLiteralValueRule
                     {
                      before(grammarAccess.getValueRuleAccess().getLiteralValueRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -3840,53 +3913,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalInstanceLanguage.g:1250:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalInstanceLanguage.g:1275:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1254:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalInstanceLanguage.g:1279:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt2=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt2=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 15:
-            case 75:
-                {
-                alt2=2;
-                }
-                break;
-            case 60:
-                {
-                alt2=3;
-                }
-                break;
-            case 62:
-                {
-                alt2=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 2, 0, input);
-
-                throw nvae;
-            }
-
+            alt2 = dfa2.predict(input);
             switch (alt2) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1255:2: ( ruleCallRule )
+                    // InternalInstanceLanguage.g:1280:2: ( ruleCallRule )
                     {
-                    // InternalInstanceLanguage.g:1255:2: ( ruleCallRule )
-                    // InternalInstanceLanguage.g:1256:3: ruleCallRule
+                    // InternalInstanceLanguage.g:1280:2: ( ruleCallRule )
+                    // InternalInstanceLanguage.g:1281:3: ruleCallRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -3902,10 +3943,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1261:2: ( ruleLiteralRule )
+                    // InternalInstanceLanguage.g:1286:2: ( ruleLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1261:2: ( ruleLiteralRule )
-                    // InternalInstanceLanguage.g:1262:3: ruleLiteralRule
+                    // InternalInstanceLanguage.g:1286:2: ( ruleLiteralRule )
+                    // InternalInstanceLanguage.g:1287:3: ruleLiteralRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -3921,10 +3962,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1267:2: ( ruleParanthesesRule )
+                    // InternalInstanceLanguage.g:1292:2: ( ruleParanthesesRule )
                     {
-                    // InternalInstanceLanguage.g:1267:2: ( ruleParanthesesRule )
-                    // InternalInstanceLanguage.g:1268:3: ruleParanthesesRule
+                    // InternalInstanceLanguage.g:1292:2: ( ruleParanthesesRule )
+                    // InternalInstanceLanguage.g:1293:3: ruleParanthesesRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -3940,10 +3981,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1273:2: ( ruleValueReferenceRule )
+                    // InternalInstanceLanguage.g:1298:2: ( ruleValueReferenceRule )
                     {
-                    // InternalInstanceLanguage.g:1273:2: ( ruleValueReferenceRule )
-                    // InternalInstanceLanguage.g:1274:3: ruleValueReferenceRule
+                    // InternalInstanceLanguage.g:1298:2: ( ruleValueReferenceRule )
+                    // InternalInstanceLanguage.g:1299:3: ruleValueReferenceRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -3976,13 +4017,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalInstanceLanguage.g:1283:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalInstanceLanguage.g:1308:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1287:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalInstanceLanguage.g:1312:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt3=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -3997,7 +4038,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
                 break;
             case 15:
-            case 75:
+            case 76:
                 {
                 alt3=3;
                 }
@@ -4011,10 +4052,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt3) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1288:2: ( ruleNumberLiteralRule )
+                    // InternalInstanceLanguage.g:1313:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1288:2: ( ruleNumberLiteralRule )
-                    // InternalInstanceLanguage.g:1289:3: ruleNumberLiteralRule
+                    // InternalInstanceLanguage.g:1313:2: ( ruleNumberLiteralRule )
+                    // InternalInstanceLanguage.g:1314:3: ruleNumberLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4030,10 +4071,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1294:2: ( ruleStringLiteralRule )
+                    // InternalInstanceLanguage.g:1319:2: ( ruleStringLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1294:2: ( ruleStringLiteralRule )
-                    // InternalInstanceLanguage.g:1295:3: ruleStringLiteralRule
+                    // InternalInstanceLanguage.g:1319:2: ( ruleStringLiteralRule )
+                    // InternalInstanceLanguage.g:1320:3: ruleStringLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4049,10 +4090,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1300:2: ( ruleBooleanLiteralRule )
+                    // InternalInstanceLanguage.g:1325:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1300:2: ( ruleBooleanLiteralRule )
-                    // InternalInstanceLanguage.g:1301:3: ruleBooleanLiteralRule
+                    // InternalInstanceLanguage.g:1325:2: ( ruleBooleanLiteralRule )
+                    // InternalInstanceLanguage.g:1326:3: ruleBooleanLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4085,13 +4126,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalInstanceLanguage.g:1310:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalInstanceLanguage.g:1335:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1314:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalInstanceLanguage.g:1339:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -4109,10 +4150,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
             switch (alt4) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1315:2: ( ruleDoubleLiteralRule )
+                    // InternalInstanceLanguage.g:1340:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1315:2: ( ruleDoubleLiteralRule )
-                    // InternalInstanceLanguage.g:1316:3: ruleDoubleLiteralRule
+                    // InternalInstanceLanguage.g:1340:2: ( ruleDoubleLiteralRule )
+                    // InternalInstanceLanguage.g:1341:3: ruleDoubleLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4128,10 +4169,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1321:2: ( ruleIntegerLiteralRule )
+                    // InternalInstanceLanguage.g:1346:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalInstanceLanguage.g:1321:2: ( ruleIntegerLiteralRule )
-                    // InternalInstanceLanguage.g:1322:3: ruleIntegerLiteralRule
+                    // InternalInstanceLanguage.g:1346:2: ( ruleIntegerLiteralRule )
+                    // InternalInstanceLanguage.g:1347:3: ruleIntegerLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4164,17 +4205,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalInstanceLanguage.g:1331:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalInstanceLanguage.g:1356:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1335:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalInstanceLanguage.g:1360:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt5=2;
             int LA5_0 = input.LA(1);
 
-            if ( (LA5_0==75) ) {
+            if ( (LA5_0==76) ) {
                 alt5=1;
             }
             else if ( (LA5_0==15) ) {
@@ -4188,14 +4229,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
             switch (alt5) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1336:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalInstanceLanguage.g:1361:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalInstanceLanguage.g:1336:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalInstanceLanguage.g:1337:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalInstanceLanguage.g:1361:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalInstanceLanguage.g:1362:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
-                    // InternalInstanceLanguage.g:1338:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalInstanceLanguage.g:1338:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalInstanceLanguage.g:1363:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalInstanceLanguage.g:1363:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -4213,10 +4254,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1342:2: ( 'false' )
+                    // InternalInstanceLanguage.g:1367:2: ( 'false' )
                     {
-                    // InternalInstanceLanguage.g:1342:2: ( 'false' )
-                    // InternalInstanceLanguage.g:1343:3: 'false'
+                    // InternalInstanceLanguage.g:1367:2: ( 'false' )
+                    // InternalInstanceLanguage.g:1368:3: 'false'
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
                     match(input,15,FOLLOW_2); 
@@ -4245,13 +4286,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalInstanceLanguage.g:1352:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalInstanceLanguage.g:1377:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1356:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalInstanceLanguage.g:1381:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt6=10;
             switch ( input.LA(1) ) {
             case 67:
@@ -4313,10 +4354,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt6) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1357:2: ( ruleStringTypeRule )
+                    // InternalInstanceLanguage.g:1382:2: ( ruleStringTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1357:2: ( ruleStringTypeRule )
-                    // InternalInstanceLanguage.g:1358:3: ruleStringTypeRule
+                    // InternalInstanceLanguage.g:1382:2: ( ruleStringTypeRule )
+                    // InternalInstanceLanguage.g:1383:3: ruleStringTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4332,10 +4373,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1363:2: ( ruleIntTypeRule )
+                    // InternalInstanceLanguage.g:1388:2: ( ruleIntTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1363:2: ( ruleIntTypeRule )
-                    // InternalInstanceLanguage.g:1364:3: ruleIntTypeRule
+                    // InternalInstanceLanguage.g:1388:2: ( ruleIntTypeRule )
+                    // InternalInstanceLanguage.g:1389:3: ruleIntTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4351,10 +4392,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1369:2: ( ruleFloatTypeRule )
+                    // InternalInstanceLanguage.g:1394:2: ( ruleFloatTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1369:2: ( ruleFloatTypeRule )
-                    // InternalInstanceLanguage.g:1370:3: ruleFloatTypeRule
+                    // InternalInstanceLanguage.g:1394:2: ( ruleFloatTypeRule )
+                    // InternalInstanceLanguage.g:1395:3: ruleFloatTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4370,10 +4411,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1375:2: ( ruleBooleanTypeRule )
+                    // InternalInstanceLanguage.g:1400:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1375:2: ( ruleBooleanTypeRule )
-                    // InternalInstanceLanguage.g:1376:3: ruleBooleanTypeRule
+                    // InternalInstanceLanguage.g:1400:2: ( ruleBooleanTypeRule )
+                    // InternalInstanceLanguage.g:1401:3: ruleBooleanTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -4389,10 +4430,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:1381:2: ( ruleLiteralTypeRule )
+                    // InternalInstanceLanguage.g:1406:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1381:2: ( ruleLiteralTypeRule )
-                    // InternalInstanceLanguage.g:1382:3: ruleLiteralTypeRule
+                    // InternalInstanceLanguage.g:1406:2: ( ruleLiteralTypeRule )
+                    // InternalInstanceLanguage.g:1407:3: ruleLiteralTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
                     pushFollow(FOLLOW_2);
@@ -4408,10 +4449,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:1387:2: ( ruleArrayTypeRule )
+                    // InternalInstanceLanguage.g:1412:2: ( ruleArrayTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1387:2: ( ruleArrayTypeRule )
-                    // InternalInstanceLanguage.g:1388:3: ruleArrayTypeRule
+                    // InternalInstanceLanguage.g:1412:2: ( ruleArrayTypeRule )
+                    // InternalInstanceLanguage.g:1413:3: ruleArrayTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
                     pushFollow(FOLLOW_2);
@@ -4427,10 +4468,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 7 :
-                    // InternalInstanceLanguage.g:1393:2: ( ruleInstanceTypeRule )
+                    // InternalInstanceLanguage.g:1418:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1393:2: ( ruleInstanceTypeRule )
-                    // InternalInstanceLanguage.g:1394:3: ruleInstanceTypeRule
+                    // InternalInstanceLanguage.g:1418:2: ( ruleInstanceTypeRule )
+                    // InternalInstanceLanguage.g:1419:3: ruleInstanceTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
                     pushFollow(FOLLOW_2);
@@ -4446,10 +4487,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 8 :
-                    // InternalInstanceLanguage.g:1399:2: ( ruleVoidTypeRule )
+                    // InternalInstanceLanguage.g:1424:2: ( ruleVoidTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1399:2: ( ruleVoidTypeRule )
-                    // InternalInstanceLanguage.g:1400:3: ruleVoidTypeRule
+                    // InternalInstanceLanguage.g:1424:2: ( ruleVoidTypeRule )
+                    // InternalInstanceLanguage.g:1425:3: ruleVoidTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
                     pushFollow(FOLLOW_2);
@@ -4465,10 +4506,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 9 :
-                    // InternalInstanceLanguage.g:1405:2: ( ruleExpressionTypeRule )
+                    // InternalInstanceLanguage.g:1430:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1405:2: ( ruleExpressionTypeRule )
-                    // InternalInstanceLanguage.g:1406:3: ruleExpressionTypeRule
+                    // InternalInstanceLanguage.g:1430:2: ( ruleExpressionTypeRule )
+                    // InternalInstanceLanguage.g:1431:3: ruleExpressionTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
                     pushFollow(FOLLOW_2);
@@ -4484,10 +4525,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 10 :
-                    // InternalInstanceLanguage.g:1411:2: ( ruleDataTypeRule )
+                    // InternalInstanceLanguage.g:1436:2: ( ruleDataTypeRule )
                     {
-                    // InternalInstanceLanguage.g:1411:2: ( ruleDataTypeRule )
-                    // InternalInstanceLanguage.g:1412:3: ruleDataTypeRule
+                    // InternalInstanceLanguage.g:1436:2: ( ruleDataTypeRule )
+                    // InternalInstanceLanguage.g:1437:3: ruleDataTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
                     pushFollow(FOLLOW_2);
@@ -4520,13 +4561,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalInstanceLanguage.g:1421:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalInstanceLanguage.g:1446:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1425:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalInstanceLanguage.g:1450:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -4544,10 +4585,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
             switch (alt7) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1426:2: ( RULE_QUOTED_ID )
+                    // InternalInstanceLanguage.g:1451:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalInstanceLanguage.g:1426:2: ( RULE_QUOTED_ID )
-                    // InternalInstanceLanguage.g:1427:3: RULE_QUOTED_ID
+                    // InternalInstanceLanguage.g:1451:2: ( RULE_QUOTED_ID )
+                    // InternalInstanceLanguage.g:1452:3: RULE_QUOTED_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
                     match(input,RULE_QUOTED_ID,FOLLOW_2); 
@@ -4559,10 +4600,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1432:2: ( RULE_ID )
+                    // InternalInstanceLanguage.g:1457:2: ( RULE_ID )
                     {
-                    // InternalInstanceLanguage.g:1432:2: ( RULE_ID )
-                    // InternalInstanceLanguage.g:1433:3: RULE_ID
+                    // InternalInstanceLanguage.g:1457:2: ( RULE_ID )
+                    // InternalInstanceLanguage.g:1458:3: RULE_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
                     match(input,RULE_ID,FOLLOW_2); 
@@ -4591,13 +4632,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalInstanceLanguage.g:1442:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalInstanceLanguage.g:1467:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1446:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalInstanceLanguage.g:1471:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt8=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -4639,14 +4680,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt8) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1447:2: ( ( '>=' ) )
+                    // InternalInstanceLanguage.g:1472:2: ( ( '>=' ) )
                     {
-                    // InternalInstanceLanguage.g:1447:2: ( ( '>=' ) )
-                    // InternalInstanceLanguage.g:1448:3: ( '>=' )
+                    // InternalInstanceLanguage.g:1472:2: ( ( '>=' ) )
+                    // InternalInstanceLanguage.g:1473:3: ( '>=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
-                    // InternalInstanceLanguage.g:1449:3: ( '>=' )
-                    // InternalInstanceLanguage.g:1449:4: '>='
+                    // InternalInstanceLanguage.g:1474:3: ( '>=' )
+                    // InternalInstanceLanguage.g:1474:4: '>='
                     {
                     match(input,16,FOLLOW_2); 
 
@@ -4660,14 +4701,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1453:2: ( ( '>' ) )
+                    // InternalInstanceLanguage.g:1478:2: ( ( '>' ) )
                     {
-                    // InternalInstanceLanguage.g:1453:2: ( ( '>' ) )
-                    // InternalInstanceLanguage.g:1454:3: ( '>' )
+                    // InternalInstanceLanguage.g:1478:2: ( ( '>' ) )
+                    // InternalInstanceLanguage.g:1479:3: ( '>' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
-                    // InternalInstanceLanguage.g:1455:3: ( '>' )
-                    // InternalInstanceLanguage.g:1455:4: '>'
+                    // InternalInstanceLanguage.g:1480:3: ( '>' )
+                    // InternalInstanceLanguage.g:1480:4: '>'
                     {
                     match(input,17,FOLLOW_2); 
 
@@ -4681,14 +4722,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1459:2: ( ( '=' ) )
+                    // InternalInstanceLanguage.g:1484:2: ( ( '=' ) )
                     {
-                    // InternalInstanceLanguage.g:1459:2: ( ( '=' ) )
-                    // InternalInstanceLanguage.g:1460:3: ( '=' )
+                    // InternalInstanceLanguage.g:1484:2: ( ( '=' ) )
+                    // InternalInstanceLanguage.g:1485:3: ( '=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
-                    // InternalInstanceLanguage.g:1461:3: ( '=' )
-                    // InternalInstanceLanguage.g:1461:4: '='
+                    // InternalInstanceLanguage.g:1486:3: ( '=' )
+                    // InternalInstanceLanguage.g:1486:4: '='
                     {
                     match(input,18,FOLLOW_2); 
 
@@ -4702,14 +4743,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1465:2: ( ( '!=' ) )
+                    // InternalInstanceLanguage.g:1490:2: ( ( '!=' ) )
                     {
-                    // InternalInstanceLanguage.g:1465:2: ( ( '!=' ) )
-                    // InternalInstanceLanguage.g:1466:3: ( '!=' )
+                    // InternalInstanceLanguage.g:1490:2: ( ( '!=' ) )
+                    // InternalInstanceLanguage.g:1491:3: ( '!=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
-                    // InternalInstanceLanguage.g:1467:3: ( '!=' )
-                    // InternalInstanceLanguage.g:1467:4: '!='
+                    // InternalInstanceLanguage.g:1492:3: ( '!=' )
+                    // InternalInstanceLanguage.g:1492:4: '!='
                     {
                     match(input,19,FOLLOW_2); 
 
@@ -4723,14 +4764,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:1471:2: ( ( '<' ) )
+                    // InternalInstanceLanguage.g:1496:2: ( ( '<' ) )
                     {
-                    // InternalInstanceLanguage.g:1471:2: ( ( '<' ) )
-                    // InternalInstanceLanguage.g:1472:3: ( '<' )
+                    // InternalInstanceLanguage.g:1496:2: ( ( '<' ) )
+                    // InternalInstanceLanguage.g:1497:3: ( '<' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
-                    // InternalInstanceLanguage.g:1473:3: ( '<' )
-                    // InternalInstanceLanguage.g:1473:4: '<'
+                    // InternalInstanceLanguage.g:1498:3: ( '<' )
+                    // InternalInstanceLanguage.g:1498:4: '<'
                     {
                     match(input,20,FOLLOW_2); 
 
@@ -4744,14 +4785,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:1477:2: ( ( '<=' ) )
+                    // InternalInstanceLanguage.g:1502:2: ( ( '<=' ) )
                     {
-                    // InternalInstanceLanguage.g:1477:2: ( ( '<=' ) )
-                    // InternalInstanceLanguage.g:1478:3: ( '<=' )
+                    // InternalInstanceLanguage.g:1502:2: ( ( '<=' ) )
+                    // InternalInstanceLanguage.g:1503:3: ( '<=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
-                    // InternalInstanceLanguage.g:1479:3: ( '<=' )
-                    // InternalInstanceLanguage.g:1479:4: '<='
+                    // InternalInstanceLanguage.g:1504:3: ( '<=' )
+                    // InternalInstanceLanguage.g:1504:4: '<='
                     {
                     match(input,21,FOLLOW_2); 
 
@@ -4782,13 +4823,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalInstanceLanguage.g:1487:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalInstanceLanguage.g:1512:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1491:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalInstanceLanguage.g:1516:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -4806,14 +4847,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
             switch (alt9) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1492:2: ( ( '+' ) )
+                    // InternalInstanceLanguage.g:1517:2: ( ( '+' ) )
                     {
-                    // InternalInstanceLanguage.g:1492:2: ( ( '+' ) )
-                    // InternalInstanceLanguage.g:1493:3: ( '+' )
+                    // InternalInstanceLanguage.g:1517:2: ( ( '+' ) )
+                    // InternalInstanceLanguage.g:1518:3: ( '+' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
-                    // InternalInstanceLanguage.g:1494:3: ( '+' )
-                    // InternalInstanceLanguage.g:1494:4: '+'
+                    // InternalInstanceLanguage.g:1519:3: ( '+' )
+                    // InternalInstanceLanguage.g:1519:4: '+'
                     {
                     match(input,22,FOLLOW_2); 
 
@@ -4827,14 +4868,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1498:2: ( ( '-' ) )
+                    // InternalInstanceLanguage.g:1523:2: ( ( '-' ) )
                     {
-                    // InternalInstanceLanguage.g:1498:2: ( ( '-' ) )
-                    // InternalInstanceLanguage.g:1499:3: ( '-' )
+                    // InternalInstanceLanguage.g:1523:2: ( ( '-' ) )
+                    // InternalInstanceLanguage.g:1524:3: ( '-' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
-                    // InternalInstanceLanguage.g:1500:3: ( '-' )
-                    // InternalInstanceLanguage.g:1500:4: '-'
+                    // InternalInstanceLanguage.g:1525:3: ( '-' )
+                    // InternalInstanceLanguage.g:1525:4: '-'
                     {
                     match(input,23,FOLLOW_2); 
 
@@ -4865,13 +4906,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalInstanceLanguage.g:1508:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalInstanceLanguage.g:1533:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1512:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalInstanceLanguage.g:1537:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt10=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -4898,14 +4939,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt10) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1513:2: ( ( '*' ) )
+                    // InternalInstanceLanguage.g:1538:2: ( ( '*' ) )
                     {
-                    // InternalInstanceLanguage.g:1513:2: ( ( '*' ) )
-                    // InternalInstanceLanguage.g:1514:3: ( '*' )
+                    // InternalInstanceLanguage.g:1538:2: ( ( '*' ) )
+                    // InternalInstanceLanguage.g:1539:3: ( '*' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
-                    // InternalInstanceLanguage.g:1515:3: ( '*' )
-                    // InternalInstanceLanguage.g:1515:4: '*'
+                    // InternalInstanceLanguage.g:1540:3: ( '*' )
+                    // InternalInstanceLanguage.g:1540:4: '*'
                     {
                     match(input,24,FOLLOW_2); 
 
@@ -4919,14 +4960,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1519:2: ( ( '/' ) )
+                    // InternalInstanceLanguage.g:1544:2: ( ( '/' ) )
                     {
-                    // InternalInstanceLanguage.g:1519:2: ( ( '/' ) )
-                    // InternalInstanceLanguage.g:1520:3: ( '/' )
+                    // InternalInstanceLanguage.g:1544:2: ( ( '/' ) )
+                    // InternalInstanceLanguage.g:1545:3: ( '/' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
-                    // InternalInstanceLanguage.g:1521:3: ( '/' )
-                    // InternalInstanceLanguage.g:1521:4: '/'
+                    // InternalInstanceLanguage.g:1546:3: ( '/' )
+                    // InternalInstanceLanguage.g:1546:4: '/'
                     {
                     match(input,25,FOLLOW_2); 
 
@@ -4940,14 +4981,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1525:2: ( ( '%' ) )
+                    // InternalInstanceLanguage.g:1550:2: ( ( '%' ) )
                     {
-                    // InternalInstanceLanguage.g:1525:2: ( ( '%' ) )
-                    // InternalInstanceLanguage.g:1526:3: ( '%' )
+                    // InternalInstanceLanguage.g:1550:2: ( ( '%' ) )
+                    // InternalInstanceLanguage.g:1551:3: ( '%' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
-                    // InternalInstanceLanguage.g:1527:3: ( '%' )
-                    // InternalInstanceLanguage.g:1527:4: '%'
+                    // InternalInstanceLanguage.g:1552:3: ( '%' )
+                    // InternalInstanceLanguage.g:1552:4: '%'
                     {
                     match(input,26,FOLLOW_2); 
 
@@ -4978,13 +5019,13 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalInstanceLanguage.g:1535:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalInstanceLanguage.g:1560:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1539:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalInstanceLanguage.g:1564:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt11=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -5096,14 +5137,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             switch (alt11) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1540:2: ( ( 'Y' ) )
+                    // InternalInstanceLanguage.g:1565:2: ( ( 'Y' ) )
                     {
-                    // InternalInstanceLanguage.g:1540:2: ( ( 'Y' ) )
-                    // InternalInstanceLanguage.g:1541:3: ( 'Y' )
+                    // InternalInstanceLanguage.g:1565:2: ( ( 'Y' ) )
+                    // InternalInstanceLanguage.g:1566:3: ( 'Y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
-                    // InternalInstanceLanguage.g:1542:3: ( 'Y' )
-                    // InternalInstanceLanguage.g:1542:4: 'Y'
+                    // InternalInstanceLanguage.g:1567:3: ( 'Y' )
+                    // InternalInstanceLanguage.g:1567:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); 
 
@@ -5117,14 +5158,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1546:2: ( ( 'Z' ) )
+                    // InternalInstanceLanguage.g:1571:2: ( ( 'Z' ) )
                     {
-                    // InternalInstanceLanguage.g:1546:2: ( ( 'Z' ) )
-                    // InternalInstanceLanguage.g:1547:3: ( 'Z' )
+                    // InternalInstanceLanguage.g:1571:2: ( ( 'Z' ) )
+                    // InternalInstanceLanguage.g:1572:3: ( 'Z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
-                    // InternalInstanceLanguage.g:1548:3: ( 'Z' )
-                    // InternalInstanceLanguage.g:1548:4: 'Z'
+                    // InternalInstanceLanguage.g:1573:3: ( 'Z' )
+                    // InternalInstanceLanguage.g:1573:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); 
 
@@ -5138,14 +5179,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1552:2: ( ( 'E' ) )
+                    // InternalInstanceLanguage.g:1577:2: ( ( 'E' ) )
                     {
-                    // InternalInstanceLanguage.g:1552:2: ( ( 'E' ) )
-                    // InternalInstanceLanguage.g:1553:3: ( 'E' )
+                    // InternalInstanceLanguage.g:1577:2: ( ( 'E' ) )
+                    // InternalInstanceLanguage.g:1578:3: ( 'E' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
-                    // InternalInstanceLanguage.g:1554:3: ( 'E' )
-                    // InternalInstanceLanguage.g:1554:4: 'E'
+                    // InternalInstanceLanguage.g:1579:3: ( 'E' )
+                    // InternalInstanceLanguage.g:1579:4: 'E'
                     {
                     match(input,29,FOLLOW_2); 
 
@@ -5159,14 +5200,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1558:2: ( ( 'P' ) )
+                    // InternalInstanceLanguage.g:1583:2: ( ( 'P' ) )
                     {
-                    // InternalInstanceLanguage.g:1558:2: ( ( 'P' ) )
-                    // InternalInstanceLanguage.g:1559:3: ( 'P' )
+                    // InternalInstanceLanguage.g:1583:2: ( ( 'P' ) )
+                    // InternalInstanceLanguage.g:1584:3: ( 'P' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
-                    // InternalInstanceLanguage.g:1560:3: ( 'P' )
-                    // InternalInstanceLanguage.g:1560:4: 'P'
+                    // InternalInstanceLanguage.g:1585:3: ( 'P' )
+                    // InternalInstanceLanguage.g:1585:4: 'P'
                     {
                     match(input,30,FOLLOW_2); 
 
@@ -5180,14 +5221,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:1564:2: ( ( 'T' ) )
+                    // InternalInstanceLanguage.g:1589:2: ( ( 'T' ) )
                     {
-                    // InternalInstanceLanguage.g:1564:2: ( ( 'T' ) )
-                    // InternalInstanceLanguage.g:1565:3: ( 'T' )
+                    // InternalInstanceLanguage.g:1589:2: ( ( 'T' ) )
+                    // InternalInstanceLanguage.g:1590:3: ( 'T' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
-                    // InternalInstanceLanguage.g:1566:3: ( 'T' )
-                    // InternalInstanceLanguage.g:1566:4: 'T'
+                    // InternalInstanceLanguage.g:1591:3: ( 'T' )
+                    // InternalInstanceLanguage.g:1591:4: 'T'
                     {
                     match(input,31,FOLLOW_2); 
 
@@ -5201,14 +5242,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:1570:2: ( ( 'G' ) )
+                    // InternalInstanceLanguage.g:1595:2: ( ( 'G' ) )
                     {
-                    // InternalInstanceLanguage.g:1570:2: ( ( 'G' ) )
-                    // InternalInstanceLanguage.g:1571:3: ( 'G' )
+                    // InternalInstanceLanguage.g:1595:2: ( ( 'G' ) )
+                    // InternalInstanceLanguage.g:1596:3: ( 'G' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
-                    // InternalInstanceLanguage.g:1572:3: ( 'G' )
-                    // InternalInstanceLanguage.g:1572:4: 'G'
+                    // InternalInstanceLanguage.g:1597:3: ( 'G' )
+                    // InternalInstanceLanguage.g:1597:4: 'G'
                     {
                     match(input,32,FOLLOW_2); 
 
@@ -5222,14 +5263,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 7 :
-                    // InternalInstanceLanguage.g:1576:2: ( ( 'M' ) )
+                    // InternalInstanceLanguage.g:1601:2: ( ( 'M' ) )
                     {
-                    // InternalInstanceLanguage.g:1576:2: ( ( 'M' ) )
-                    // InternalInstanceLanguage.g:1577:3: ( 'M' )
+                    // InternalInstanceLanguage.g:1601:2: ( ( 'M' ) )
+                    // InternalInstanceLanguage.g:1602:3: ( 'M' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
-                    // InternalInstanceLanguage.g:1578:3: ( 'M' )
-                    // InternalInstanceLanguage.g:1578:4: 'M'
+                    // InternalInstanceLanguage.g:1603:3: ( 'M' )
+                    // InternalInstanceLanguage.g:1603:4: 'M'
                     {
                     match(input,33,FOLLOW_2); 
 
@@ -5243,14 +5284,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 8 :
-                    // InternalInstanceLanguage.g:1582:2: ( ( 'k' ) )
+                    // InternalInstanceLanguage.g:1607:2: ( ( 'k' ) )
                     {
-                    // InternalInstanceLanguage.g:1582:2: ( ( 'k' ) )
-                    // InternalInstanceLanguage.g:1583:3: ( 'k' )
+                    // InternalInstanceLanguage.g:1607:2: ( ( 'k' ) )
+                    // InternalInstanceLanguage.g:1608:3: ( 'k' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
-                    // InternalInstanceLanguage.g:1584:3: ( 'k' )
-                    // InternalInstanceLanguage.g:1584:4: 'k'
+                    // InternalInstanceLanguage.g:1609:3: ( 'k' )
+                    // InternalInstanceLanguage.g:1609:4: 'k'
                     {
                     match(input,34,FOLLOW_2); 
 
@@ -5264,14 +5305,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 9 :
-                    // InternalInstanceLanguage.g:1588:2: ( ( 'h' ) )
+                    // InternalInstanceLanguage.g:1613:2: ( ( 'h' ) )
                     {
-                    // InternalInstanceLanguage.g:1588:2: ( ( 'h' ) )
-                    // InternalInstanceLanguage.g:1589:3: ( 'h' )
+                    // InternalInstanceLanguage.g:1613:2: ( ( 'h' ) )
+                    // InternalInstanceLanguage.g:1614:3: ( 'h' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
-                    // InternalInstanceLanguage.g:1590:3: ( 'h' )
-                    // InternalInstanceLanguage.g:1590:4: 'h'
+                    // InternalInstanceLanguage.g:1615:3: ( 'h' )
+                    // InternalInstanceLanguage.g:1615:4: 'h'
                     {
                     match(input,35,FOLLOW_2); 
 
@@ -5285,14 +5326,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 10 :
-                    // InternalInstanceLanguage.g:1594:2: ( ( 'da' ) )
+                    // InternalInstanceLanguage.g:1619:2: ( ( 'da' ) )
                     {
-                    // InternalInstanceLanguage.g:1594:2: ( ( 'da' ) )
-                    // InternalInstanceLanguage.g:1595:3: ( 'da' )
+                    // InternalInstanceLanguage.g:1619:2: ( ( 'da' ) )
+                    // InternalInstanceLanguage.g:1620:3: ( 'da' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
-                    // InternalInstanceLanguage.g:1596:3: ( 'da' )
-                    // InternalInstanceLanguage.g:1596:4: 'da'
+                    // InternalInstanceLanguage.g:1621:3: ( 'da' )
+                    // InternalInstanceLanguage.g:1621:4: 'da'
                     {
                     match(input,36,FOLLOW_2); 
 
@@ -5306,14 +5347,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 11 :
-                    // InternalInstanceLanguage.g:1600:2: ( ( 'd' ) )
+                    // InternalInstanceLanguage.g:1625:2: ( ( 'd' ) )
                     {
-                    // InternalInstanceLanguage.g:1600:2: ( ( 'd' ) )
-                    // InternalInstanceLanguage.g:1601:3: ( 'd' )
+                    // InternalInstanceLanguage.g:1625:2: ( ( 'd' ) )
+                    // InternalInstanceLanguage.g:1626:3: ( 'd' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
-                    // InternalInstanceLanguage.g:1602:3: ( 'd' )
-                    // InternalInstanceLanguage.g:1602:4: 'd'
+                    // InternalInstanceLanguage.g:1627:3: ( 'd' )
+                    // InternalInstanceLanguage.g:1627:4: 'd'
                     {
                     match(input,37,FOLLOW_2); 
 
@@ -5327,14 +5368,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 12 :
-                    // InternalInstanceLanguage.g:1606:2: ( ( 'c' ) )
+                    // InternalInstanceLanguage.g:1631:2: ( ( 'c' ) )
                     {
-                    // InternalInstanceLanguage.g:1606:2: ( ( 'c' ) )
-                    // InternalInstanceLanguage.g:1607:3: ( 'c' )
+                    // InternalInstanceLanguage.g:1631:2: ( ( 'c' ) )
+                    // InternalInstanceLanguage.g:1632:3: ( 'c' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
-                    // InternalInstanceLanguage.g:1608:3: ( 'c' )
-                    // InternalInstanceLanguage.g:1608:4: 'c'
+                    // InternalInstanceLanguage.g:1633:3: ( 'c' )
+                    // InternalInstanceLanguage.g:1633:4: 'c'
                     {
                     match(input,38,FOLLOW_2); 
 
@@ -5348,14 +5389,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 13 :
-                    // InternalInstanceLanguage.g:1612:2: ( ( 'm' ) )
+                    // InternalInstanceLanguage.g:1637:2: ( ( 'm' ) )
                     {
-                    // InternalInstanceLanguage.g:1612:2: ( ( 'm' ) )
-                    // InternalInstanceLanguage.g:1613:3: ( 'm' )
+                    // InternalInstanceLanguage.g:1637:2: ( ( 'm' ) )
+                    // InternalInstanceLanguage.g:1638:3: ( 'm' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
-                    // InternalInstanceLanguage.g:1614:3: ( 'm' )
-                    // InternalInstanceLanguage.g:1614:4: 'm'
+                    // InternalInstanceLanguage.g:1639:3: ( 'm' )
+                    // InternalInstanceLanguage.g:1639:4: 'm'
                     {
                     match(input,39,FOLLOW_2); 
 
@@ -5369,14 +5410,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 14 :
-                    // InternalInstanceLanguage.g:1618:2: ( ( '\\u00B5' ) )
+                    // InternalInstanceLanguage.g:1643:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalInstanceLanguage.g:1618:2: ( ( '\\u00B5' ) )
-                    // InternalInstanceLanguage.g:1619:3: ( '\\u00B5' )
+                    // InternalInstanceLanguage.g:1643:2: ( ( '\\u00B5' ) )
+                    // InternalInstanceLanguage.g:1644:3: ( '\\u00B5' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
-                    // InternalInstanceLanguage.g:1620:3: ( '\\u00B5' )
-                    // InternalInstanceLanguage.g:1620:4: '\\u00B5'
+                    // InternalInstanceLanguage.g:1645:3: ( '\\u00B5' )
+                    // InternalInstanceLanguage.g:1645:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); 
 
@@ -5390,14 +5431,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 15 :
-                    // InternalInstanceLanguage.g:1624:2: ( ( 'n' ) )
+                    // InternalInstanceLanguage.g:1649:2: ( ( 'n' ) )
                     {
-                    // InternalInstanceLanguage.g:1624:2: ( ( 'n' ) )
-                    // InternalInstanceLanguage.g:1625:3: ( 'n' )
+                    // InternalInstanceLanguage.g:1649:2: ( ( 'n' ) )
+                    // InternalInstanceLanguage.g:1650:3: ( 'n' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
-                    // InternalInstanceLanguage.g:1626:3: ( 'n' )
-                    // InternalInstanceLanguage.g:1626:4: 'n'
+                    // InternalInstanceLanguage.g:1651:3: ( 'n' )
+                    // InternalInstanceLanguage.g:1651:4: 'n'
                     {
                     match(input,41,FOLLOW_2); 
 
@@ -5411,14 +5452,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 16 :
-                    // InternalInstanceLanguage.g:1630:2: ( ( 'p' ) )
+                    // InternalInstanceLanguage.g:1655:2: ( ( 'p' ) )
                     {
-                    // InternalInstanceLanguage.g:1630:2: ( ( 'p' ) )
-                    // InternalInstanceLanguage.g:1631:3: ( 'p' )
+                    // InternalInstanceLanguage.g:1655:2: ( ( 'p' ) )
+                    // InternalInstanceLanguage.g:1656:3: ( 'p' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
-                    // InternalInstanceLanguage.g:1632:3: ( 'p' )
-                    // InternalInstanceLanguage.g:1632:4: 'p'
+                    // InternalInstanceLanguage.g:1657:3: ( 'p' )
+                    // InternalInstanceLanguage.g:1657:4: 'p'
                     {
                     match(input,42,FOLLOW_2); 
 
@@ -5432,14 +5473,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 17 :
-                    // InternalInstanceLanguage.g:1636:2: ( ( 'f' ) )
+                    // InternalInstanceLanguage.g:1661:2: ( ( 'f' ) )
                     {
-                    // InternalInstanceLanguage.g:1636:2: ( ( 'f' ) )
-                    // InternalInstanceLanguage.g:1637:3: ( 'f' )
+                    // InternalInstanceLanguage.g:1661:2: ( ( 'f' ) )
+                    // InternalInstanceLanguage.g:1662:3: ( 'f' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
-                    // InternalInstanceLanguage.g:1638:3: ( 'f' )
-                    // InternalInstanceLanguage.g:1638:4: 'f'
+                    // InternalInstanceLanguage.g:1663:3: ( 'f' )
+                    // InternalInstanceLanguage.g:1663:4: 'f'
                     {
                     match(input,43,FOLLOW_2); 
 
@@ -5453,14 +5494,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 18 :
-                    // InternalInstanceLanguage.g:1642:2: ( ( 'a' ) )
+                    // InternalInstanceLanguage.g:1667:2: ( ( 'a' ) )
                     {
-                    // InternalInstanceLanguage.g:1642:2: ( ( 'a' ) )
-                    // InternalInstanceLanguage.g:1643:3: ( 'a' )
+                    // InternalInstanceLanguage.g:1667:2: ( ( 'a' ) )
+                    // InternalInstanceLanguage.g:1668:3: ( 'a' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
-                    // InternalInstanceLanguage.g:1644:3: ( 'a' )
-                    // InternalInstanceLanguage.g:1644:4: 'a'
+                    // InternalInstanceLanguage.g:1669:3: ( 'a' )
+                    // InternalInstanceLanguage.g:1669:4: 'a'
                     {
                     match(input,44,FOLLOW_2); 
 
@@ -5474,14 +5515,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 19 :
-                    // InternalInstanceLanguage.g:1648:2: ( ( 'z' ) )
+                    // InternalInstanceLanguage.g:1673:2: ( ( 'z' ) )
                     {
-                    // InternalInstanceLanguage.g:1648:2: ( ( 'z' ) )
-                    // InternalInstanceLanguage.g:1649:3: ( 'z' )
+                    // InternalInstanceLanguage.g:1673:2: ( ( 'z' ) )
+                    // InternalInstanceLanguage.g:1674:3: ( 'z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
-                    // InternalInstanceLanguage.g:1650:3: ( 'z' )
-                    // InternalInstanceLanguage.g:1650:4: 'z'
+                    // InternalInstanceLanguage.g:1675:3: ( 'z' )
+                    // InternalInstanceLanguage.g:1675:4: 'z'
                     {
                     match(input,45,FOLLOW_2); 
 
@@ -5495,14 +5536,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                     }
                     break;
                 case 20 :
-                    // InternalInstanceLanguage.g:1654:2: ( ( 'y' ) )
+                    // InternalInstanceLanguage.g:1679:2: ( ( 'y' ) )
                     {
-                    // InternalInstanceLanguage.g:1654:2: ( ( 'y' ) )
-                    // InternalInstanceLanguage.g:1655:3: ( 'y' )
+                    // InternalInstanceLanguage.g:1679:2: ( ( 'y' ) )
+                    // InternalInstanceLanguage.g:1680:3: ( 'y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
-                    // InternalInstanceLanguage.g:1656:3: ( 'y' )
-                    // InternalInstanceLanguage.g:1656:4: 'y'
+                    // InternalInstanceLanguage.g:1681:3: ( 'y' )
+                    // InternalInstanceLanguage.g:1681:4: 'y'
                     {
                     match(input,46,FOLLOW_2); 
 
@@ -5533,14 +5574,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group__0"
-    // InternalInstanceLanguage.g:1664:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
+    // InternalInstanceLanguage.g:1689:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
     public final void rule__InstanceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1668:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
-            // InternalInstanceLanguage.g:1669:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
+            // InternalInstanceLanguage.g:1693:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
+            // InternalInstanceLanguage.g:1694:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__InstanceRule__Group__0__Impl();
@@ -5571,21 +5612,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:1676:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
+    // InternalInstanceLanguage.g:1701:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
     public final void rule__InstanceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1680:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:1681:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalInstanceLanguage.g:1705:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:1706:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:1681:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
-            // InternalInstanceLanguage.g:1682:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalInstanceLanguage.g:1706:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalInstanceLanguage.g:1707:2: ( rule__InstanceRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionAssignment_0()); 
-            // InternalInstanceLanguage.g:1683:2: ( rule__InstanceRule__DefinitionAssignment_0 )
-            // InternalInstanceLanguage.g:1683:3: rule__InstanceRule__DefinitionAssignment_0
+            // InternalInstanceLanguage.g:1708:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalInstanceLanguage.g:1708:3: rule__InstanceRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__DefinitionAssignment_0();
@@ -5618,14 +5659,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group__1"
-    // InternalInstanceLanguage.g:1691:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:1716:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
     public final void rule__InstanceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1695:1: ( rule__InstanceRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:1696:2: rule__InstanceRule__Group__1__Impl
+            // InternalInstanceLanguage.g:1720:1: ( rule__InstanceRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:1721:2: rule__InstanceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group__1__Impl();
@@ -5651,20 +5692,20 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:1702:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
+    // InternalInstanceLanguage.g:1727:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
     public final void rule__InstanceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1706:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
-            // InternalInstanceLanguage.g:1707:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalInstanceLanguage.g:1731:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
+            // InternalInstanceLanguage.g:1732:1: ( ( rule__InstanceRule__Group_1__0 )? )
             {
-            // InternalInstanceLanguage.g:1707:1: ( ( rule__InstanceRule__Group_1__0 )? )
-            // InternalInstanceLanguage.g:1708:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalInstanceLanguage.g:1732:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalInstanceLanguage.g:1733:2: ( rule__InstanceRule__Group_1__0 )?
             {
              before(grammarAccess.getInstanceRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:1709:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalInstanceLanguage.g:1734:2: ( rule__InstanceRule__Group_1__0 )?
             int alt12=2;
             int LA12_0 = input.LA(1);
 
@@ -5673,7 +5714,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
             switch (alt12) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1709:3: rule__InstanceRule__Group_1__0
+                    // InternalInstanceLanguage.g:1734:3: rule__InstanceRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__InstanceRule__Group_1__0();
@@ -5709,14 +5750,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0"
-    // InternalInstanceLanguage.g:1718:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
+    // InternalInstanceLanguage.g:1743:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
     public final void rule__InstanceRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1722:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
-            // InternalInstanceLanguage.g:1723:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
+            // InternalInstanceLanguage.g:1747:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
+            // InternalInstanceLanguage.g:1748:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
             {
             pushFollow(FOLLOW_4);
             rule__InstanceRule__Group_1__0__Impl();
@@ -5747,17 +5788,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:1730:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
+    // InternalInstanceLanguage.g:1755:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
     public final void rule__InstanceRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1734:1: ( ( '{' ) )
-            // InternalInstanceLanguage.g:1735:1: ( '{' )
+            // InternalInstanceLanguage.g:1759:1: ( ( '{' ) )
+            // InternalInstanceLanguage.g:1760:1: ( '{' )
             {
-            // InternalInstanceLanguage.g:1735:1: ( '{' )
-            // InternalInstanceLanguage.g:1736:2: '{'
+            // InternalInstanceLanguage.g:1760:1: ( '{' )
+            // InternalInstanceLanguage.g:1761:2: '{'
             {
              before(grammarAccess.getInstanceRuleAccess().getLeftCurlyBracketKeyword_1_0()); 
             match(input,47,FOLLOW_2); 
@@ -5784,14 +5825,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1"
-    // InternalInstanceLanguage.g:1745:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
+    // InternalInstanceLanguage.g:1770:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
     public final void rule__InstanceRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1749:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
-            // InternalInstanceLanguage.g:1750:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
+            // InternalInstanceLanguage.g:1774:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
+            // InternalInstanceLanguage.g:1775:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
             {
             pushFollow(FOLLOW_4);
             rule__InstanceRule__Group_1__1__Impl();
@@ -5822,20 +5863,20 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:1757:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
+    // InternalInstanceLanguage.g:1782:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
     public final void rule__InstanceRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1761:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
-            // InternalInstanceLanguage.g:1762:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalInstanceLanguage.g:1786:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
+            // InternalInstanceLanguage.g:1787:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
             {
-            // InternalInstanceLanguage.g:1762:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
-            // InternalInstanceLanguage.g:1763:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalInstanceLanguage.g:1787:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalInstanceLanguage.g:1788:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAssignment_1_1()); 
-            // InternalInstanceLanguage.g:1764:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalInstanceLanguage.g:1789:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             loop13:
             do {
                 int alt13=2;
@@ -5848,7 +5889,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:1764:3: rule__InstanceRule__AttributesAssignment_1_1
+            	    // InternalInstanceLanguage.g:1789:3: rule__InstanceRule__AttributesAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_5);
             	    rule__InstanceRule__AttributesAssignment_1_1();
@@ -5887,14 +5928,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2"
-    // InternalInstanceLanguage.g:1772:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
+    // InternalInstanceLanguage.g:1797:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
     public final void rule__InstanceRule__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1776:1: ( rule__InstanceRule__Group_1__2__Impl )
-            // InternalInstanceLanguage.g:1777:2: rule__InstanceRule__Group_1__2__Impl
+            // InternalInstanceLanguage.g:1801:1: ( rule__InstanceRule__Group_1__2__Impl )
+            // InternalInstanceLanguage.g:1802:2: rule__InstanceRule__Group_1__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group_1__2__Impl();
@@ -5920,17 +5961,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2__Impl"
-    // InternalInstanceLanguage.g:1783:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
+    // InternalInstanceLanguage.g:1808:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
     public final void rule__InstanceRule__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1787:1: ( ( '}' ) )
-            // InternalInstanceLanguage.g:1788:1: ( '}' )
+            // InternalInstanceLanguage.g:1812:1: ( ( '}' ) )
+            // InternalInstanceLanguage.g:1813:1: ( '}' )
             {
-            // InternalInstanceLanguage.g:1788:1: ( '}' )
-            // InternalInstanceLanguage.g:1789:2: '}'
+            // InternalInstanceLanguage.g:1813:1: ( '}' )
+            // InternalInstanceLanguage.g:1814:2: '}'
             {
              before(grammarAccess.getInstanceRuleAccess().getRightCurlyBracketKeyword_1_2()); 
             match(input,48,FOLLOW_2); 
@@ -5957,14 +5998,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__0"
-    // InternalInstanceLanguage.g:1799:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
+    // InternalInstanceLanguage.g:1824:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
     public final void rule__AttributeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1803:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
-            // InternalInstanceLanguage.g:1804:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
+            // InternalInstanceLanguage.g:1828:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
+            // InternalInstanceLanguage.g:1829:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
             {
             pushFollow(FOLLOW_6);
             rule__AttributeRule__Group__0__Impl();
@@ -5995,21 +6036,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:1811:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
+    // InternalInstanceLanguage.g:1836:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
     public final void rule__AttributeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1815:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:1816:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalInstanceLanguage.g:1840:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:1841:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:1816:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
-            // InternalInstanceLanguage.g:1817:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalInstanceLanguage.g:1841:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalInstanceLanguage.g:1842:2: ( rule__AttributeRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAssignment_0()); 
-            // InternalInstanceLanguage.g:1818:2: ( rule__AttributeRule__DefinitionAssignment_0 )
-            // InternalInstanceLanguage.g:1818:3: rule__AttributeRule__DefinitionAssignment_0
+            // InternalInstanceLanguage.g:1843:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalInstanceLanguage.g:1843:3: rule__AttributeRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__DefinitionAssignment_0();
@@ -6042,14 +6083,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__1"
-    // InternalInstanceLanguage.g:1826:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
+    // InternalInstanceLanguage.g:1851:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
     public final void rule__AttributeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1830:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
-            // InternalInstanceLanguage.g:1831:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
+            // InternalInstanceLanguage.g:1855:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
+            // InternalInstanceLanguage.g:1856:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__AttributeRule__Group__1__Impl();
@@ -6080,17 +6121,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:1838:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
+    // InternalInstanceLanguage.g:1863:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
     public final void rule__AttributeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1842:1: ( ( ':=' ) )
-            // InternalInstanceLanguage.g:1843:1: ( ':=' )
+            // InternalInstanceLanguage.g:1867:1: ( ( ':=' ) )
+            // InternalInstanceLanguage.g:1868:1: ( ':=' )
             {
-            // InternalInstanceLanguage.g:1843:1: ( ':=' )
-            // InternalInstanceLanguage.g:1844:2: ':='
+            // InternalInstanceLanguage.g:1868:1: ( ':=' )
+            // InternalInstanceLanguage.g:1869:2: ':='
             {
              before(grammarAccess.getAttributeRuleAccess().getColonEqualsSignKeyword_1()); 
             match(input,49,FOLLOW_2); 
@@ -6117,14 +6158,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__2"
-    // InternalInstanceLanguage.g:1853:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
+    // InternalInstanceLanguage.g:1878:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
     public final void rule__AttributeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1857:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
-            // InternalInstanceLanguage.g:1858:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
+            // InternalInstanceLanguage.g:1882:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
+            // InternalInstanceLanguage.g:1883:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__AttributeRule__Group__2__Impl();
@@ -6155,21 +6196,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:1865:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
+    // InternalInstanceLanguage.g:1890:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
     public final void rule__AttributeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1869:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
-            // InternalInstanceLanguage.g:1870:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalInstanceLanguage.g:1894:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
+            // InternalInstanceLanguage.g:1895:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
             {
-            // InternalInstanceLanguage.g:1870:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
-            // InternalInstanceLanguage.g:1871:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalInstanceLanguage.g:1895:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalInstanceLanguage.g:1896:2: ( rule__AttributeRule__ValueAssignment_2 )
             {
              before(grammarAccess.getAttributeRuleAccess().getValueAssignment_2()); 
-            // InternalInstanceLanguage.g:1872:2: ( rule__AttributeRule__ValueAssignment_2 )
-            // InternalInstanceLanguage.g:1872:3: rule__AttributeRule__ValueAssignment_2
+            // InternalInstanceLanguage.g:1897:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalInstanceLanguage.g:1897:3: rule__AttributeRule__ValueAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__ValueAssignment_2();
@@ -6202,14 +6243,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__3"
-    // InternalInstanceLanguage.g:1880:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
+    // InternalInstanceLanguage.g:1905:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
     public final void rule__AttributeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1884:1: ( rule__AttributeRule__Group__3__Impl )
-            // InternalInstanceLanguage.g:1885:2: rule__AttributeRule__Group__3__Impl
+            // InternalInstanceLanguage.g:1909:1: ( rule__AttributeRule__Group__3__Impl )
+            // InternalInstanceLanguage.g:1910:2: rule__AttributeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__Group__3__Impl();
@@ -6235,17 +6276,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__Group__3__Impl"
-    // InternalInstanceLanguage.g:1891:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
+    // InternalInstanceLanguage.g:1916:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
     public final void rule__AttributeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1895:1: ( ( ';' ) )
-            // InternalInstanceLanguage.g:1896:1: ( ';' )
+            // InternalInstanceLanguage.g:1920:1: ( ( ';' ) )
+            // InternalInstanceLanguage.g:1921:1: ( ';' )
             {
-            // InternalInstanceLanguage.g:1896:1: ( ';' )
-            // InternalInstanceLanguage.g:1897:2: ';'
+            // InternalInstanceLanguage.g:1921:1: ( ';' )
+            // InternalInstanceLanguage.g:1922:2: ';'
             {
              before(grammarAccess.getAttributeRuleAccess().getSemicolonKeyword_3()); 
             match(input,50,FOLLOW_2); 
@@ -6272,14 +6313,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__0"
-    // InternalInstanceLanguage.g:1907:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
+    // InternalInstanceLanguage.g:1932:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
     public final void rule__ArrayRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1911:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
-            // InternalInstanceLanguage.g:1912:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
+            // InternalInstanceLanguage.g:1936:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
+            // InternalInstanceLanguage.g:1937:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
             {
             pushFollow(FOLLOW_9);
             rule__ArrayRule__Group__0__Impl();
@@ -6310,21 +6351,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:1919:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:1944:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
     public final void rule__ArrayRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1923:1: ( ( () ) )
-            // InternalInstanceLanguage.g:1924:1: ( () )
+            // InternalInstanceLanguage.g:1948:1: ( ( () ) )
+            // InternalInstanceLanguage.g:1949:1: ( () )
             {
-            // InternalInstanceLanguage.g:1924:1: ( () )
-            // InternalInstanceLanguage.g:1925:2: ()
+            // InternalInstanceLanguage.g:1949:1: ( () )
+            // InternalInstanceLanguage.g:1950:2: ()
             {
              before(grammarAccess.getArrayRuleAccess().getArrayAction_0()); 
-            // InternalInstanceLanguage.g:1926:2: ()
-            // InternalInstanceLanguage.g:1926:3: 
+            // InternalInstanceLanguage.g:1951:2: ()
+            // InternalInstanceLanguage.g:1951:3: 
             {
             }
 
@@ -6347,14 +6388,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__1"
-    // InternalInstanceLanguage.g:1934:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
+    // InternalInstanceLanguage.g:1959:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
     public final void rule__ArrayRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1938:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
-            // InternalInstanceLanguage.g:1939:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
+            // InternalInstanceLanguage.g:1963:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
+            // InternalInstanceLanguage.g:1964:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
             {
             pushFollow(FOLLOW_10);
             rule__ArrayRule__Group__1__Impl();
@@ -6385,17 +6426,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:1946:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
+    // InternalInstanceLanguage.g:1971:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
     public final void rule__ArrayRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1950:1: ( ( '[' ) )
-            // InternalInstanceLanguage.g:1951:1: ( '[' )
+            // InternalInstanceLanguage.g:1975:1: ( ( '[' ) )
+            // InternalInstanceLanguage.g:1976:1: ( '[' )
             {
-            // InternalInstanceLanguage.g:1951:1: ( '[' )
-            // InternalInstanceLanguage.g:1952:2: '['
+            // InternalInstanceLanguage.g:1976:1: ( '[' )
+            // InternalInstanceLanguage.g:1977:2: '['
             {
              before(grammarAccess.getArrayRuleAccess().getLeftSquareBracketKeyword_1()); 
             match(input,51,FOLLOW_2); 
@@ -6422,14 +6463,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__2"
-    // InternalInstanceLanguage.g:1961:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
+    // InternalInstanceLanguage.g:1986:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
     public final void rule__ArrayRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1965:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
-            // InternalInstanceLanguage.g:1966:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
+            // InternalInstanceLanguage.g:1990:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
+            // InternalInstanceLanguage.g:1991:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
             {
             pushFollow(FOLLOW_10);
             rule__ArrayRule__Group__2__Impl();
@@ -6460,29 +6501,29 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:1973:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
+    // InternalInstanceLanguage.g:1998:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
     public final void rule__ArrayRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1977:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
-            // InternalInstanceLanguage.g:1978:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalInstanceLanguage.g:2002:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
+            // InternalInstanceLanguage.g:2003:1: ( ( rule__ArrayRule__Group_2__0 )? )
             {
-            // InternalInstanceLanguage.g:1978:1: ( ( rule__ArrayRule__Group_2__0 )? )
-            // InternalInstanceLanguage.g:1979:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalInstanceLanguage.g:2003:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalInstanceLanguage.g:2004:2: ( rule__ArrayRule__Group_2__0 )?
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2()); 
-            // InternalInstanceLanguage.g:1980:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalInstanceLanguage.g:2005:2: ( rule__ArrayRule__Group_2__0 )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
-            if ( ((LA14_0>=RULE_QUOTED_ID && LA14_0<=RULE_STRING)||LA14_0==15||LA14_0==51||LA14_0==54||LA14_0==75) ) {
+            if ( ((LA14_0>=RULE_QUOTED_ID && LA14_0<=RULE_STRING)||LA14_0==15||LA14_0==51||LA14_0==54||LA14_0==76) ) {
                 alt14=1;
             }
             switch (alt14) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1980:3: rule__ArrayRule__Group_2__0
+                    // InternalInstanceLanguage.g:2005:3: rule__ArrayRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ArrayRule__Group_2__0();
@@ -6518,14 +6559,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__3"
-    // InternalInstanceLanguage.g:1988:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
+    // InternalInstanceLanguage.g:2013:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
     public final void rule__ArrayRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:1992:1: ( rule__ArrayRule__Group__3__Impl )
-            // InternalInstanceLanguage.g:1993:2: rule__ArrayRule__Group__3__Impl
+            // InternalInstanceLanguage.g:2017:1: ( rule__ArrayRule__Group__3__Impl )
+            // InternalInstanceLanguage.g:2018:2: rule__ArrayRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group__3__Impl();
@@ -6551,17 +6592,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group__3__Impl"
-    // InternalInstanceLanguage.g:1999:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
+    // InternalInstanceLanguage.g:2024:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
     public final void rule__ArrayRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2003:1: ( ( ']' ) )
-            // InternalInstanceLanguage.g:2004:1: ( ']' )
+            // InternalInstanceLanguage.g:2028:1: ( ( ']' ) )
+            // InternalInstanceLanguage.g:2029:1: ( ']' )
             {
-            // InternalInstanceLanguage.g:2004:1: ( ']' )
-            // InternalInstanceLanguage.g:2005:2: ']'
+            // InternalInstanceLanguage.g:2029:1: ( ']' )
+            // InternalInstanceLanguage.g:2030:2: ']'
             {
              before(grammarAccess.getArrayRuleAccess().getRightSquareBracketKeyword_3()); 
             match(input,52,FOLLOW_2); 
@@ -6588,14 +6629,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0"
-    // InternalInstanceLanguage.g:2015:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
+    // InternalInstanceLanguage.g:2040:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
     public final void rule__ArrayRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2019:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
-            // InternalInstanceLanguage.g:2020:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
+            // InternalInstanceLanguage.g:2044:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
+            // InternalInstanceLanguage.g:2045:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
             {
             pushFollow(FOLLOW_11);
             rule__ArrayRule__Group_2__0__Impl();
@@ -6626,21 +6667,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0__Impl"
-    // InternalInstanceLanguage.g:2027:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
+    // InternalInstanceLanguage.g:2052:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
     public final void rule__ArrayRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2031:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
-            // InternalInstanceLanguage.g:2032:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalInstanceLanguage.g:2056:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
+            // InternalInstanceLanguage.g:2057:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
             {
-            // InternalInstanceLanguage.g:2032:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
-            // InternalInstanceLanguage.g:2033:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalInstanceLanguage.g:2057:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalInstanceLanguage.g:2058:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_0()); 
-            // InternalInstanceLanguage.g:2034:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
-            // InternalInstanceLanguage.g:2034:3: rule__ArrayRule__ValuesAssignment_2_0
+            // InternalInstanceLanguage.g:2059:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalInstanceLanguage.g:2059:3: rule__ArrayRule__ValuesAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_0();
@@ -6673,14 +6714,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1"
-    // InternalInstanceLanguage.g:2042:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
+    // InternalInstanceLanguage.g:2067:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
     public final void rule__ArrayRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2046:1: ( rule__ArrayRule__Group_2__1__Impl )
-            // InternalInstanceLanguage.g:2047:2: rule__ArrayRule__Group_2__1__Impl
+            // InternalInstanceLanguage.g:2071:1: ( rule__ArrayRule__Group_2__1__Impl )
+            // InternalInstanceLanguage.g:2072:2: rule__ArrayRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2__1__Impl();
@@ -6706,20 +6747,20 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1__Impl"
-    // InternalInstanceLanguage.g:2053:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
+    // InternalInstanceLanguage.g:2078:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
     public final void rule__ArrayRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2057:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
-            // InternalInstanceLanguage.g:2058:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalInstanceLanguage.g:2082:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
+            // InternalInstanceLanguage.g:2083:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2058:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
-            // InternalInstanceLanguage.g:2059:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalInstanceLanguage.g:2083:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalInstanceLanguage.g:2084:2: ( rule__ArrayRule__Group_2_1__0 )*
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2_1()); 
-            // InternalInstanceLanguage.g:2060:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalInstanceLanguage.g:2085:2: ( rule__ArrayRule__Group_2_1__0 )*
             loop15:
             do {
                 int alt15=2;
@@ -6732,7 +6773,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2060:3: rule__ArrayRule__Group_2_1__0
+            	    // InternalInstanceLanguage.g:2085:3: rule__ArrayRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__ArrayRule__Group_2_1__0();
@@ -6771,14 +6812,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0"
-    // InternalInstanceLanguage.g:2069:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
+    // InternalInstanceLanguage.g:2094:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
     public final void rule__ArrayRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2073:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
-            // InternalInstanceLanguage.g:2074:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
+            // InternalInstanceLanguage.g:2098:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
+            // InternalInstanceLanguage.g:2099:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
             {
             pushFollow(FOLLOW_7);
             rule__ArrayRule__Group_2_1__0__Impl();
@@ -6809,17 +6850,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0__Impl"
-    // InternalInstanceLanguage.g:2081:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalInstanceLanguage.g:2106:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__ArrayRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2085:1: ( ( ',' ) )
-            // InternalInstanceLanguage.g:2086:1: ( ',' )
+            // InternalInstanceLanguage.g:2110:1: ( ( ',' ) )
+            // InternalInstanceLanguage.g:2111:1: ( ',' )
             {
-            // InternalInstanceLanguage.g:2086:1: ( ',' )
-            // InternalInstanceLanguage.g:2087:2: ','
+            // InternalInstanceLanguage.g:2111:1: ( ',' )
+            // InternalInstanceLanguage.g:2112:2: ','
             {
              before(grammarAccess.getArrayRuleAccess().getCommaKeyword_2_1_0()); 
             match(input,53,FOLLOW_2); 
@@ -6846,14 +6887,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1"
-    // InternalInstanceLanguage.g:2096:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
+    // InternalInstanceLanguage.g:2121:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
     public final void rule__ArrayRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2100:1: ( rule__ArrayRule__Group_2_1__1__Impl )
-            // InternalInstanceLanguage.g:2101:2: rule__ArrayRule__Group_2_1__1__Impl
+            // InternalInstanceLanguage.g:2125:1: ( rule__ArrayRule__Group_2_1__1__Impl )
+            // InternalInstanceLanguage.g:2126:2: rule__ArrayRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2_1__1__Impl();
@@ -6879,21 +6920,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1__Impl"
-    // InternalInstanceLanguage.g:2107:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
+    // InternalInstanceLanguage.g:2132:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
     public final void rule__ArrayRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2111:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
-            // InternalInstanceLanguage.g:2112:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalInstanceLanguage.g:2136:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
+            // InternalInstanceLanguage.g:2137:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2112:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
-            // InternalInstanceLanguage.g:2113:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalInstanceLanguage.g:2137:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalInstanceLanguage.g:2138:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_1_1()); 
-            // InternalInstanceLanguage.g:2114:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
-            // InternalInstanceLanguage.g:2114:3: rule__ArrayRule__ValuesAssignment_2_1_1
+            // InternalInstanceLanguage.g:2139:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalInstanceLanguage.g:2139:3: rule__ArrayRule__ValuesAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_1_1();
@@ -6926,14 +6967,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0"
-    // InternalInstanceLanguage.g:2123:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
+    // InternalInstanceLanguage.g:2148:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
     public final void rule__DataReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2127:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
-            // InternalInstanceLanguage.g:2128:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
+            // InternalInstanceLanguage.g:2152:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
+            // InternalInstanceLanguage.g:2153:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
             {
             pushFollow(FOLLOW_13);
             rule__DataReferenceRule__Group__0__Impl();
@@ -6964,21 +7005,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2135:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:2160:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
     public final void rule__DataReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2139:1: ( ( () ) )
-            // InternalInstanceLanguage.g:2140:1: ( () )
+            // InternalInstanceLanguage.g:2164:1: ( ( () ) )
+            // InternalInstanceLanguage.g:2165:1: ( () )
             {
-            // InternalInstanceLanguage.g:2140:1: ( () )
-            // InternalInstanceLanguage.g:2141:2: ()
+            // InternalInstanceLanguage.g:2165:1: ( () )
+            // InternalInstanceLanguage.g:2166:2: ()
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataReferenceAction_0()); 
-            // InternalInstanceLanguage.g:2142:2: ()
-            // InternalInstanceLanguage.g:2142:3: 
+            // InternalInstanceLanguage.g:2167:2: ()
+            // InternalInstanceLanguage.g:2167:3: 
             {
             }
 
@@ -7001,14 +7042,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1"
-    // InternalInstanceLanguage.g:2150:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
+    // InternalInstanceLanguage.g:2175:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
     public final void rule__DataReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2154:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
-            // InternalInstanceLanguage.g:2155:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
+            // InternalInstanceLanguage.g:2179:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
+            // InternalInstanceLanguage.g:2180:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
             {
             pushFollow(FOLLOW_14);
             rule__DataReferenceRule__Group__1__Impl();
@@ -7039,17 +7080,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2162:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
+    // InternalInstanceLanguage.g:2187:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2166:1: ( ( 'data' ) )
-            // InternalInstanceLanguage.g:2167:1: ( 'data' )
+            // InternalInstanceLanguage.g:2191:1: ( ( 'data' ) )
+            // InternalInstanceLanguage.g:2192:1: ( 'data' )
             {
-            // InternalInstanceLanguage.g:2167:1: ( 'data' )
-            // InternalInstanceLanguage.g:2168:2: 'data'
+            // InternalInstanceLanguage.g:2192:1: ( 'data' )
+            // InternalInstanceLanguage.g:2193:2: 'data'
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataKeyword_1()); 
             match(input,54,FOLLOW_2); 
@@ -7076,14 +7117,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2"
-    // InternalInstanceLanguage.g:2177:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
+    // InternalInstanceLanguage.g:2202:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
     public final void rule__DataReferenceRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2181:1: ( rule__DataReferenceRule__Group__2__Impl )
-            // InternalInstanceLanguage.g:2182:2: rule__DataReferenceRule__Group__2__Impl
+            // InternalInstanceLanguage.g:2206:1: ( rule__DataReferenceRule__Group__2__Impl )
+            // InternalInstanceLanguage.g:2207:2: rule__DataReferenceRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__Group__2__Impl();
@@ -7109,21 +7150,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:2188:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
+    // InternalInstanceLanguage.g:2213:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
     public final void rule__DataReferenceRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2192:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
-            // InternalInstanceLanguage.g:2193:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalInstanceLanguage.g:2217:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
+            // InternalInstanceLanguage.g:2218:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
             {
-            // InternalInstanceLanguage.g:2193:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
-            // InternalInstanceLanguage.g:2194:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalInstanceLanguage.g:2218:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalInstanceLanguage.g:2219:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionAssignment_2()); 
-            // InternalInstanceLanguage.g:2195:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
-            // InternalInstanceLanguage.g:2195:3: rule__DataReferenceRule__DefinitionAssignment_2
+            // InternalInstanceLanguage.g:2220:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalInstanceLanguage.g:2220:3: rule__DataReferenceRule__DefinitionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__DefinitionAssignment_2();
@@ -7155,23 +7196,23 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // $ANTLR end "rule__DataReferenceRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0"
-    // InternalInstanceLanguage.g:2204:1: rule__QualifiedNameRule__Group__0 : rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 ;
-    public final void rule__QualifiedNameRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2229:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2208:1: ( rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 )
-            // InternalInstanceLanguage.g:2209:2: rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1
+            // InternalInstanceLanguage.g:2233:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2234:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_15);
-            rule__QualifiedNameRule__Group__0__Impl();
+            rule__OrExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1();
+            rule__OrExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -7190,29 +7231,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0"
+    // $ANTLR end "rule__OrExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2216:1: rule__QualifiedNameRule__Group__0__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2241:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2220:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:2221:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:2245:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2246:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            {
+            // InternalInstanceLanguage.g:2246:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2247:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
-            // InternalInstanceLanguage.g:2221:1: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:2222:2: ruleStringOrId
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalInstanceLanguage.g:2248:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2248:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -7231,21 +7278,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1"
-    // InternalInstanceLanguage.g:2231:1: rule__QualifiedNameRule__Group__1 : rule__QualifiedNameRule__Group__1__Impl ;
-    public final void rule__QualifiedNameRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2256:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2235:1: ( rule__QualifiedNameRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2236:2: rule__QualifiedNameRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2260:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2261:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1__Impl();
+            rule__OrExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -7264,24 +7311,24 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1"
+    // $ANTLR end "rule__OrExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2242:1: rule__QualifiedNameRule__Group__1__Impl : ( ( rule__QualifiedNameRule__Group_1__0 )* ) ;
-    public final void rule__QualifiedNameRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2267:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2246:1: ( ( ( rule__QualifiedNameRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2247:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2271:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:2272:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2247:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2248:2: ( rule__QualifiedNameRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2272:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2273:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2249:2: ( rule__QualifiedNameRule__Group_1__0 )*
+             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2274:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop16:
             do {
                 int alt16=2;
@@ -7294,10 +7341,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2249:3: rule__QualifiedNameRule__Group_1__0
+            	    // InternalInstanceLanguage.g:2274:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_16);
-            	    rule__QualifiedNameRule__Group_1__0();
+            	    rule__OrExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -7310,7 +7357,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
             } while (true);
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -7329,26 +7376,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0"
-    // InternalInstanceLanguage.g:2258:1: rule__QualifiedNameRule__Group_1__0 : rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 ;
-    public final void rule__QualifiedNameRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2283:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2262:1: ( rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2263:2: rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1
+            // InternalInstanceLanguage.g:2287:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2288:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_14);
-            rule__QualifiedNameRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__OrExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1();
+            rule__OrExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -7367,25 +7414,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2270:1: rule__QualifiedNameRule__Group_1__0__Impl : ( '.' ) ;
-    public final void rule__QualifiedNameRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2295:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2274:1: ( ( '.' ) )
-            // InternalInstanceLanguage.g:2275:1: ( '.' )
+            // InternalInstanceLanguage.g:2299:1: ( ( 'OR' ) )
+            // InternalInstanceLanguage.g:2300:1: ( 'OR' )
             {
-            // InternalInstanceLanguage.g:2275:1: ( '.' )
-            // InternalInstanceLanguage.g:2276:2: '.'
+            // InternalInstanceLanguage.g:2300:1: ( 'OR' )
+            // InternalInstanceLanguage.g:2301:2: 'OR'
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             match(input,55,FOLLOW_2); 
-             after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
 
             }
 
@@ -7404,21 +7451,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1"
-    // InternalInstanceLanguage.g:2285:1: rule__QualifiedNameRule__Group_1__1 : rule__QualifiedNameRule__Group_1__1__Impl ;
-    public final void rule__QualifiedNameRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:2310:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2289:1: ( rule__QualifiedNameRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2290:2: rule__QualifiedNameRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:2314:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:2315:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1__Impl();
+            rule__OrExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -7437,29 +7484,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2296:1: rule__QualifiedNameRule__Group_1__1__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:2321:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2300:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:2301:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:2325:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:2326:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2301:1: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:2302:2: ruleStringOrId
+            // InternalInstanceLanguage.g:2326:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2327:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            {
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalInstanceLanguage.g:2328:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2328:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -7478,26 +7531,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2312:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
-    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2337:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2316:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2317:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2341:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2342:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_17);
-            rule__OrExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_18);
+            rule__XorExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1();
+            rule__XorExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -7516,35 +7569,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0"
+    // $ANTLR end "rule__XorExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2324:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2349:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2328:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2329:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2353:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2354:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2329:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalInstanceLanguage.g:2330:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2354:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2355:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalInstanceLanguage.g:2331:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalInstanceLanguage.g:2331:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalInstanceLanguage.g:2356:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2356:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_0();
+            rule__XorExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -7563,21 +7616,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2339:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
-    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2364:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2343:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2344:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2368:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2369:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1__Impl();
+            rule__XorExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -7596,24 +7649,24 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1"
+    // $ANTLR end "rule__XorExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2350:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
-    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2375:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2354:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2355:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2379:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:2380:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2355:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2356:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2380:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2381:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2357:2: ( rule__OrExpressionRule__Group_1__0 )*
+             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2382:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop17:
             do {
                 int alt17=2;
@@ -7626,10 +7679,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2357:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalInstanceLanguage.g:2382:3: rule__XorExpressionRule__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_18);
-            	    rule__OrExpressionRule__Group_1__0();
+            	    pushFollow(FOLLOW_19);
+            	    rule__XorExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -7642,7 +7695,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
             } while (true);
 
-             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -7661,26 +7714,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:2366:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
-    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2391:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2370:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2371:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:2395:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2396:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_19);
-            rule__OrExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__XorExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1();
+            rule__XorExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -7699,25 +7752,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2378:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
-    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2403:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2382:1: ( ( 'OR' ) )
-            // InternalInstanceLanguage.g:2383:1: ( 'OR' )
+            // InternalInstanceLanguage.g:2407:1: ( ( 'XOR' ) )
+            // InternalInstanceLanguage.g:2408:1: ( 'XOR' )
             {
-            // InternalInstanceLanguage.g:2383:1: ( 'OR' )
-            // InternalInstanceLanguage.g:2384:2: 'OR'
+            // InternalInstanceLanguage.g:2408:1: ( 'XOR' )
+            // InternalInstanceLanguage.g:2409:2: 'XOR'
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             match(input,56,FOLLOW_2); 
-             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
 
             }
 
@@ -7736,21 +7789,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:2393:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
-    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:2418:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2397:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2398:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:2422:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:2423:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1__Impl();
+            rule__XorExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -7769,35 +7822,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2404:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:2429:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2408:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:2409:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2433:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:2434:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2409:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:2410:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2434:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2435:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalInstanceLanguage.g:2411:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalInstanceLanguage.g:2411:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalInstanceLanguage.g:2436:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2436:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
+            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -7816,26 +7869,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2420:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
-    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2445:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2424:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2425:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2449:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2450:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_20);
-            rule__XorExpressionRule__Group__0__Impl();
+            rule__AndExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1();
+            rule__AndExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -7854,35 +7907,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0"
+    // $ANTLR end "rule__AndExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2432:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2457:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2436:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2437:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2461:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2462:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2437:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalInstanceLanguage.g:2438:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2462:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2463:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalInstanceLanguage.g:2439:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalInstanceLanguage.g:2439:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalInstanceLanguage.g:2464:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2464:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_0();
+            rule__AndExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -7901,21 +7954,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2447:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
-    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2472:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2451:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2452:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2476:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2477:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1__Impl();
+            rule__AndExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -7934,24 +7987,24 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1"
+    // $ANTLR end "rule__AndExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2458:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
-    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2483:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2462:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2463:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2487:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:2488:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2463:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2464:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2488:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2489:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2465:2: ( rule__XorExpressionRule__Group_1__0 )*
+             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2490:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop18:
             do {
                 int alt18=2;
@@ -7964,10 +8017,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2465:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalInstanceLanguage.g:2490:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_21);
-            	    rule__XorExpressionRule__Group_1__0();
+            	    rule__AndExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -7980,7 +8033,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
             } while (true);
 
-             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -7999,26 +8052,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:2474:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
-    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2499:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2478:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2479:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:2503:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2504:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_19);
-            rule__XorExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__AndExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1();
+            rule__AndExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -8037,25 +8090,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2486:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
-    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2511:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2490:1: ( ( 'XOR' ) )
-            // InternalInstanceLanguage.g:2491:1: ( 'XOR' )
+            // InternalInstanceLanguage.g:2515:1: ( ( 'AND' ) )
+            // InternalInstanceLanguage.g:2516:1: ( 'AND' )
             {
-            // InternalInstanceLanguage.g:2491:1: ( 'XOR' )
-            // InternalInstanceLanguage.g:2492:2: 'XOR'
+            // InternalInstanceLanguage.g:2516:1: ( 'AND' )
+            // InternalInstanceLanguage.g:2517:2: 'AND'
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             match(input,57,FOLLOW_2); 
-             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
 
             }
 
@@ -8074,21 +8127,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:2501:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
-    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:2526:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2505:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2506:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:2530:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:2531:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1__Impl();
+            rule__AndExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -8107,35 +8160,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2512:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:2537:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2516:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:2517:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2541:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:2542:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2517:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:2518:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2542:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2543:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalInstanceLanguage.g:2519:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalInstanceLanguage.g:2519:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalInstanceLanguage.g:2544:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2544:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
+            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -8154,26 +8207,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2528:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
-    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2553:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2532:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2533:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2557:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2558:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_22);
-            rule__AndExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__NotExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1();
+            rule__NotExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -8192,35 +8245,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0"
+    // $ANTLR end "rule__NotExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2540:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2565:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2544:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2545:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalInstanceLanguage.g:2569:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalInstanceLanguage.g:2570:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalInstanceLanguage.g:2545:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalInstanceLanguage.g:2546:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalInstanceLanguage.g:2570:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalInstanceLanguage.g:2571:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalInstanceLanguage.g:2547:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalInstanceLanguage.g:2547:3: rule__AndExpressionRule__SubExpressionsAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_0();
+             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+            // InternalInstanceLanguage.g:2572:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            int alt19=2;
+            int LA19_0 = input.LA(1);
+
+            if ( (LA19_0==75) ) {
+                alt19=1;
+            }
+            switch (alt19) {
+                case 1 :
+                    // InternalInstanceLanguage.g:2572:3: rule__NotExpressionRule__NegatedAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NotExpressionRule__NegatedAssignment_0();
+
+                    state._fsp--;
 
-            state._fsp--;
 
+                    }
+                    break;
 
             }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
 
             }
 
@@ -8239,21 +8303,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2555:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
-    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2580:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2559:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2560:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2584:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2585:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1__Impl();
+            rule__NotExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -8272,53 +8336,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1"
+    // $ANTLR end "rule__NotExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2566:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2591:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2570:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2571:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2595:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:2596:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:2571:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2572:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2596:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalInstanceLanguage.g:2597:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2573:2: ( rule__AndExpressionRule__Group_1__0 )*
-            loop19:
-            do {
-                int alt19=2;
-                int LA19_0 = input.LA(1);
-
-                if ( (LA19_0==58) ) {
-                    alt19=1;
-                }
-
-
-                switch (alt19) {
-            	case 1 :
-            	    // InternalInstanceLanguage.g:2573:3: rule__AndExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_23);
-            	    rule__AndExpressionRule__Group_1__0();
-
-            	    state._fsp--;
+             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+            // InternalInstanceLanguage.g:2598:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalInstanceLanguage.g:2598:3: rule__NotExpressionRule__OperandAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NotExpressionRule__OperandAssignment_1();
 
+            state._fsp--;
 
-            	    }
-            	    break;
 
-            	default :
-            	    break loop19;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
 
             }
 
@@ -8337,26 +8383,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:2582:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
-    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2607:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2586:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2587:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:2611:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2612:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__AndExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_22);
+            rule__ComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1();
+            rule__ComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -8375,25 +8421,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2594:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
-    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2619:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2598:1: ( ( 'AND' ) )
-            // InternalInstanceLanguage.g:2599:1: ( 'AND' )
+            // InternalInstanceLanguage.g:2623:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2624:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2599:1: ( 'AND' )
-            // InternalInstanceLanguage.g:2600:2: 'AND'
+            // InternalInstanceLanguage.g:2624:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2625:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
-            match(input,58,FOLLOW_2); 
-             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
+             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalInstanceLanguage.g:2626:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2626:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -8412,21 +8468,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:2609:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
-    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2634:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2613:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2614:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:2638:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2639:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1__Impl();
+            rule__ComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -8445,35 +8501,53 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2620:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2645:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2624:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:2625:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2649:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalInstanceLanguage.g:2650:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalInstanceLanguage.g:2625:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:2626:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalInstanceLanguage.g:2627:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalInstanceLanguage.g:2627:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalInstanceLanguage.g:2650:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalInstanceLanguage.g:2651:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
+             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+            // InternalInstanceLanguage.g:2652:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            loop20:
+            do {
+                int alt20=2;
+                int LA20_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA20_0>=16 && LA20_0<=21)) ) {
+                    alt20=1;
+                }
 
 
-            }
+                switch (alt20) {
+            	case 1 :
+            	    // InternalInstanceLanguage.g:2652:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    {
+            	    pushFollow(FOLLOW_23);
+            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop20;
+                }
+            } while (true);
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
 
             }
 
@@ -8492,26 +8566,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2636:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
-    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2661:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2640:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2641:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2665:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2666:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__NotExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__PartialComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1();
+            rule__PartialComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -8530,46 +8604,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2648:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
-    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2673:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2652:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalInstanceLanguage.g:2653:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalInstanceLanguage.g:2677:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2678:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2653:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalInstanceLanguage.g:2654:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalInstanceLanguage.g:2678:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalInstanceLanguage.g:2679:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            // InternalInstanceLanguage.g:2655:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
-            int alt20=2;
-            int LA20_0 = input.LA(1);
-
-            if ( (LA20_0==74) ) {
-                alt20=1;
-            }
-            switch (alt20) {
-                case 1 :
-                    // InternalInstanceLanguage.g:2655:3: rule__NotExpressionRule__NegatedAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__NotExpressionRule__NegatedAssignment_0();
-
-                    state._fsp--;
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+            // InternalInstanceLanguage.g:2680:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalInstanceLanguage.g:2680:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
 
             }
 
@@ -8588,21 +8651,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2663:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
-    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2688:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2667:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2668:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2692:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2693:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1__Impl();
+            rule__PartialComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -8621,35 +8684,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2674:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
-    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2699:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2678:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:2679:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalInstanceLanguage.g:2703:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:2704:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:2679:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalInstanceLanguage.g:2680:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalInstanceLanguage.g:2704:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:2705:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
-            // InternalInstanceLanguage.g:2681:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalInstanceLanguage.g:2681:3: rule__NotExpressionRule__OperandAssignment_1
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalInstanceLanguage.g:2706:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:2706:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__OperandAssignment_1();
+            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -8668,26 +8731,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2690:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
-    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2715:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2694:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2695:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2719:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2720:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_24);
-            rule__ComparisonExpressionRule__Group__0__Impl();
+            rule__AddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -8706,35 +8769,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2702:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2727:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2706:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2707:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2731:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2732:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2707:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalInstanceLanguage.g:2708:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2732:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2733:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalInstanceLanguage.g:2709:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalInstanceLanguage.g:2709:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalInstanceLanguage.g:2734:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2734:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -8753,21 +8816,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2717:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2742:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2721:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2722:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2746:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2747:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -8786,40 +8849,40 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2728:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
-    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2753:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2732:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalInstanceLanguage.g:2733:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalInstanceLanguage.g:2757:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:2758:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2733:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalInstanceLanguage.g:2734:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalInstanceLanguage.g:2758:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2759:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
-            // InternalInstanceLanguage.g:2735:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2760:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop21:
             do {
                 int alt21=2;
                 int LA21_0 = input.LA(1);
 
-                if ( ((LA21_0>=16 && LA21_0<=21)) ) {
+                if ( ((LA21_0>=22 && LA21_0<=23)) ) {
                     alt21=1;
                 }
 
 
                 switch (alt21) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2735:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalInstanceLanguage.g:2760:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_25);
-            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
+            	    rule__AddOrSubtractExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -8832,7 +8895,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
             } while (true);
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -8851,26 +8914,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2744:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
-    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2769:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2748:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2749:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2773:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2774:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_19);
-            rule__PartialComparisonExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -8889,35 +8952,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2756:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2781:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2760:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2761:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalInstanceLanguage.g:2785:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalInstanceLanguage.g:2786:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalInstanceLanguage.g:2761:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalInstanceLanguage.g:2762:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalInstanceLanguage.g:2786:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalInstanceLanguage.g:2787:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
-            // InternalInstanceLanguage.g:2763:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalInstanceLanguage.g:2763:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalInstanceLanguage.g:2788:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalInstanceLanguage.g:2788:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
+            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -8936,21 +8999,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2771:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:2796:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2775:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2776:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2800:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:2801:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -8969,35 +9032,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2782:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:2807:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2786:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:2787:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:2811:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:2812:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2787:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalInstanceLanguage.g:2788:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:2812:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2813:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalInstanceLanguage.g:2789:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalInstanceLanguage.g:2789:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalInstanceLanguage.g:2814:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2814:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
+            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -9016,26 +9079,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2798:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2823:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2802:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2803:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2827:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2828:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_26);
-            rule__AddOrSubtractExpressionRule__Group__0__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1();
+            rule__MultiplyDivideModuloExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -9054,35 +9117,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2810:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2835:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2814:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2815:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2839:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2840:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2815:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalInstanceLanguage.g:2816:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2840:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2841:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalInstanceLanguage.g:2817:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalInstanceLanguage.g:2817:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalInstanceLanguage.g:2842:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2842:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
+            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -9101,21 +9164,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2825:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2850:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2829:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2830:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2854:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2855:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -9134,40 +9197,40 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2836:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2861:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2840:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2841:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2865:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:2866:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:2841:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2842:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2866:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2867:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2843:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2868:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop22:
             do {
                 int alt22=2;
                 int LA22_0 = input.LA(1);
 
-                if ( ((LA22_0>=22 && LA22_0<=23)) ) {
+                if ( ((LA22_0>=24 && LA22_0<=26)) ) {
                     alt22=1;
                 }
 
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2843:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalInstanceLanguage.g:2868:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_27);
-            	    rule__AddOrSubtractExpressionRule__Group_1__0();
+            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -9180,7 +9243,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
                 }
             } while (true);
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -9199,26 +9262,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:2852:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2877:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2856:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2857:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:2881:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2882:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_19);
-            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -9237,35 +9300,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2864:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2889:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2868:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalInstanceLanguage.g:2869:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalInstanceLanguage.g:2893:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalInstanceLanguage.g:2894:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalInstanceLanguage.g:2869:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalInstanceLanguage.g:2870:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalInstanceLanguage.g:2894:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalInstanceLanguage.g:2895:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalInstanceLanguage.g:2871:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalInstanceLanguage.g:2871:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalInstanceLanguage.g:2896:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalInstanceLanguage.g:2896:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
+            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -9284,21 +9347,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:2879:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:2904:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2883:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2884:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:2908:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:2909:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -9317,35 +9380,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2890:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:2915:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2894:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:2895:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2919:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:2920:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:2895:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:2896:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2920:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:2921:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalInstanceLanguage.g:2897:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalInstanceLanguage.g:2897:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalInstanceLanguage.g:2922:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalInstanceLanguage.g:2922:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
+            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -9364,26 +9427,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:2906:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:2931:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2910:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:2911:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalInstanceLanguage.g:2935:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:2936:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_28);
-            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
+            rule__PowerOfExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1();
+            rule__PowerOfExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -9402,35 +9465,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:2918:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:2943:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2922:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:2923:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2947:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:2948:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:2923:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalInstanceLanguage.g:2924:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2948:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalInstanceLanguage.g:2949:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalInstanceLanguage.g:2925:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalInstanceLanguage.g:2925:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalInstanceLanguage.g:2950:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:2950:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
+            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -9449,21 +9512,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:2933:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:2958:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2937:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:2938:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:2962:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:2963:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
+            rule__PowerOfExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -9482,53 +9545,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:2944:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:2969:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2948:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:2949:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalInstanceLanguage.g:2973:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalInstanceLanguage.g:2974:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalInstanceLanguage.g:2949:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalInstanceLanguage.g:2950:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalInstanceLanguage.g:2974:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalInstanceLanguage.g:2975:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:2951:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
-            loop23:
-            do {
-                int alt23=2;
-                int LA23_0 = input.LA(1);
-
-                if ( ((LA23_0>=24 && LA23_0<=26)) ) {
-                    alt23=1;
-                }
-
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+            // InternalInstanceLanguage.g:2976:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
 
-                switch (alt23) {
-            	case 1 :
-            	    // InternalInstanceLanguage.g:2951:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_29);
-            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
+            if ( (LA23_0==58) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // InternalInstanceLanguage.g:2976:3: rule__PowerOfExpressionRule__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PowerOfExpressionRule__Group_1__0();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop23;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -9547,26 +9603,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:2960:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
+    // InternalInstanceLanguage.g:2985:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2964:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:2965:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:2989:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalInstanceLanguage.g:2990:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_19);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__PowerOfExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
+            rule__PowerOfExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -9585,35 +9641,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:2972:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // InternalInstanceLanguage.g:2997:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2976:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalInstanceLanguage.g:2977:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            {
-            // InternalInstanceLanguage.g:2977:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalInstanceLanguage.g:2978:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalInstanceLanguage.g:3001:1: ( ( '^' ) )
+            // InternalInstanceLanguage.g:3002:1: ( '^' )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalInstanceLanguage.g:2979:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalInstanceLanguage.g:2979:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalInstanceLanguage.g:3002:1: ( '^' )
+            // InternalInstanceLanguage.g:3003:2: '^'
             {
-            pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+            match(input,58,FOLLOW_2); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
 
             }
 
@@ -9632,21 +9678,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:2987:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
+    // InternalInstanceLanguage.g:3012:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:2991:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:2992:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:3016:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:3017:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
+            rule__PowerOfExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -9665,35 +9711,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:2998:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // InternalInstanceLanguage.g:3023:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3002:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:3003:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:3027:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalInstanceLanguage.g:3028:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalInstanceLanguage.g:3003:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:3004:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalInstanceLanguage.g:3028:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:3029:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalInstanceLanguage.g:3005:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalInstanceLanguage.g:3005:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+            // InternalInstanceLanguage.g:3030:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalInstanceLanguage.g:3030:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
+            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
 
             }
 
@@ -9712,26 +9758,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:3014:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
-    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // InternalInstanceLanguage.g:3039:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3018:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:3019:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalInstanceLanguage.g:3043:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalInstanceLanguage.g:3044:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_30);
-            rule__PowerOfExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -9750,35 +9796,53 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3026:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3051:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3030:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:3031:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            {
-            // InternalInstanceLanguage.g:3031:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalInstanceLanguage.g:3032:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalInstanceLanguage.g:3055:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalInstanceLanguage.g:3056:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalInstanceLanguage.g:3033:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalInstanceLanguage.g:3033:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalInstanceLanguage.g:3056:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalInstanceLanguage.g:3057:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+            // InternalInstanceLanguage.g:3058:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            loop24:
+            do {
+                int alt24=2;
+                int LA24_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA24_0>=22 && LA24_0<=23)) ) {
+                    alt24=1;
+                }
 
 
-            }
+                switch (alt24) {
+            	case 1 :
+            	    // InternalInstanceLanguage.g:3058:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    {
+            	    pushFollow(FOLLOW_25);
+            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop24;
+                }
+            } while (true);
+
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
 
             }
 
@@ -9797,21 +9861,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:3041:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // InternalInstanceLanguage.g:3066:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3045:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3046:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3070:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:3071:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1__Impl();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -9830,46 +9894,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3052:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
-    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3077:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3056:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalInstanceLanguage.g:3057:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalInstanceLanguage.g:3081:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:3082:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:3057:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalInstanceLanguage.g:3058:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalInstanceLanguage.g:3082:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:3083:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:3059:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
-
-            if ( (LA24_0==59) ) {
-                alt24=1;
-            }
-            switch (alt24) {
-                case 1 :
-                    // InternalInstanceLanguage.g:3059:3: rule__PowerOfExpressionRule__Group_1__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__PowerOfExpressionRule__Group_1__0();
-
-                    state._fsp--;
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalInstanceLanguage.g:3084:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:3084:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -9888,26 +9941,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalInstanceLanguage.g:3068:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
-    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0"
+    // InternalInstanceLanguage.g:3093:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3072:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalInstanceLanguage.g:3073:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalInstanceLanguage.g:3097:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalInstanceLanguage.g:3098:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__PowerOfExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__ParanthesesRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1();
+            rule__ParanthesesRule__Group__1();
 
             state._fsp--;
 
@@ -9926,25 +9979,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:3080:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3105:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3084:1: ( ( '^' ) )
-            // InternalInstanceLanguage.g:3085:1: ( '^' )
+            // InternalInstanceLanguage.g:3109:1: ( ( '(' ) )
+            // InternalInstanceLanguage.g:3110:1: ( '(' )
             {
-            // InternalInstanceLanguage.g:3085:1: ( '^' )
-            // InternalInstanceLanguage.g:3086:2: '^'
+            // InternalInstanceLanguage.g:3110:1: ( '(' )
+            // InternalInstanceLanguage.g:3111:2: '('
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             match(input,59,FOLLOW_2); 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
 
             }
 
@@ -9963,21 +10016,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalInstanceLanguage.g:3095:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1"
+    // InternalInstanceLanguage.g:3120:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3099:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:3100:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalInstanceLanguage.g:3124:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalInstanceLanguage.g:3125:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
+            pushFollow(FOLLOW_29);
+            rule__ParanthesesRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1__Impl();
+            rule__ParanthesesRule__Group__2();
 
             state._fsp--;
 
@@ -9996,35 +10054,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ParanthesesRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:3106:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3132:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3110:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalInstanceLanguage.g:3111:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalInstanceLanguage.g:3136:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:3137:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:3111:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalInstanceLanguage.g:3112:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalInstanceLanguage.g:3137:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:3138:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
-            // InternalInstanceLanguage.g:3113:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalInstanceLanguage.g:3113:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalInstanceLanguage.g:3139:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:3139:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
+            rule__ParanthesesRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -10043,26 +10101,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalInstanceLanguage.g:3122:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2"
+    // InternalInstanceLanguage.g:3147:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3126:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalInstanceLanguage.g:3127:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalInstanceLanguage.g:3151:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalInstanceLanguage.g:3152:2: rule__ParanthesesRule__Group__2__Impl
             {
-            pushFollow(FOLLOW_19);
-            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
-
-            state._fsp--;
-
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1();
+            rule__ParanthesesRule__Group__2__Impl();
 
             state._fsp--;
 
@@ -10081,53 +10134,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__2"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3134:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
+    // InternalInstanceLanguage.g:3158:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3138:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalInstanceLanguage.g:3139:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalInstanceLanguage.g:3162:1: ( ( ')' ) )
+            // InternalInstanceLanguage.g:3163:1: ( ')' )
             {
-            // InternalInstanceLanguage.g:3139:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalInstanceLanguage.g:3140:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalInstanceLanguage.g:3163:1: ( ')' )
+            // InternalInstanceLanguage.g:3164:2: ')'
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
-            // InternalInstanceLanguage.g:3141:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
-            loop25:
-            do {
-                int alt25=2;
-                int LA25_0 = input.LA(1);
-
-                if ( ((LA25_0>=22 && LA25_0<=23)) ) {
-                    alt25=1;
-                }
-
-
-                switch (alt25) {
-            	case 1 :
-            	    // InternalInstanceLanguage.g:3141:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
-            	    {
-            	    pushFollow(FOLLOW_27);
-            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop25;
-                }
-            } while (true);
-
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+            match(input,60,FOLLOW_2); 
+             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
 
             }
 
@@ -10146,21 +10171,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalInstanceLanguage.g:3149:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0"
+    // InternalInstanceLanguage.g:3174:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3153:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3154:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3178:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalInstanceLanguage.g:3179:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
+            pushFollow(FOLLOW_30);
+            rule__CallRule__Group__0__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
+            rule__CallRule__Group__1();
 
             state._fsp--;
 
@@ -10179,35 +10209,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__0"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3160:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3186:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3164:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:3165:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:3190:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:3191:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:3165:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalInstanceLanguage.g:3166:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:3191:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalInstanceLanguage.g:3192:2: ( rule__CallRule__FunctionAssignment_0 )
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalInstanceLanguage.g:3167:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalInstanceLanguage.g:3167:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+            // InternalInstanceLanguage.g:3193:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalInstanceLanguage.g:3193:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
+            rule__CallRule__FunctionAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
 
             }
 
@@ -10226,26 +10256,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalInstanceLanguage.g:3176:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
-    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1"
+    // InternalInstanceLanguage.g:3201:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3180:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalInstanceLanguage.g:3181:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalInstanceLanguage.g:3205:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalInstanceLanguage.g:3206:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
-            pushFollow(FOLLOW_19);
-            rule__ParanthesesRule__Group__0__Impl();
+            pushFollow(FOLLOW_31);
+            rule__CallRule__Group__1__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__1();
+            rule__CallRule__Group__2();
 
             state._fsp--;
 
@@ -10264,25 +10294,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group__1"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3188:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
-    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3213:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3192:1: ( ( '(' ) )
-            // InternalInstanceLanguage.g:3193:1: ( '(' )
+            // InternalInstanceLanguage.g:3217:1: ( ( '(' ) )
+            // InternalInstanceLanguage.g:3218:1: ( '(' )
             {
-            // InternalInstanceLanguage.g:3193:1: ( '(' )
-            // InternalInstanceLanguage.g:3194:2: '('
+            // InternalInstanceLanguage.g:3218:1: ( '(' )
+            // InternalInstanceLanguage.g:3219:2: '('
             {
-             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
-            match(input,60,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
+             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+            match(input,59,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
 
             }
 
@@ -10301,26 +10331,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalInstanceLanguage.g:3203:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
-    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2"
+    // InternalInstanceLanguage.g:3228:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3207:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalInstanceLanguage.g:3208:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalInstanceLanguage.g:3232:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalInstanceLanguage.g:3233:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_31);
-            rule__ParanthesesRule__Group__1__Impl();
+            rule__CallRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2();
+            rule__CallRule__Group__3();
 
             state._fsp--;
 
@@ -10339,35 +10369,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__2"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3215:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2__Impl"
+    // InternalInstanceLanguage.g:3240:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3219:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:3220:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalInstanceLanguage.g:3244:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalInstanceLanguage.g:3245:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalInstanceLanguage.g:3220:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalInstanceLanguage.g:3221:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalInstanceLanguage.g:3245:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalInstanceLanguage.g:3246:2: ( rule__CallRule__Group_2__0 )?
             {
-             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalInstanceLanguage.g:3222:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalInstanceLanguage.g:3222:3: rule__ParanthesesRule__SubExpressionAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__SubExpressionAssignment_1();
+             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
+            // InternalInstanceLanguage.g:3247:2: ( rule__CallRule__Group_2__0 )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-            state._fsp--;
+            if ( ((LA25_0>=RULE_QUOTED_ID && LA25_0<=RULE_STRING)||LA25_0==15||(LA25_0>=22 && LA25_0<=23)||LA25_0==59||(LA25_0>=75 && LA25_0<=76)) ) {
+                alt25=1;
+            }
+            switch (alt25) {
+                case 1 :
+                    // InternalInstanceLanguage.g:3247:3: rule__CallRule__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CallRule__Group_2__0();
+
+                    state._fsp--;
 
 
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
 
             }
 
@@ -10386,21 +10427,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalInstanceLanguage.g:3230:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
-    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3"
+    // InternalInstanceLanguage.g:3255:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3234:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalInstanceLanguage.g:3235:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalInstanceLanguage.g:3259:1: ( rule__CallRule__Group__3__Impl )
+            // InternalInstanceLanguage.g:3260:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2__Impl();
+            rule__CallRule__Group__3__Impl();
 
             state._fsp--;
 
@@ -10419,25 +10460,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group__3"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:3241:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
-    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3__Impl"
+    // InternalInstanceLanguage.g:3266:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3245:1: ( ( ')' ) )
-            // InternalInstanceLanguage.g:3246:1: ( ')' )
+            // InternalInstanceLanguage.g:3270:1: ( ( ')' ) )
+            // InternalInstanceLanguage.g:3271:1: ( ')' )
             {
-            // InternalInstanceLanguage.g:3246:1: ( ')' )
-            // InternalInstanceLanguage.g:3247:2: ')'
+            // InternalInstanceLanguage.g:3271:1: ( ')' )
+            // InternalInstanceLanguage.g:3272:2: ')'
             {
-             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
-            match(input,61,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+            match(input,60,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
 
             }
 
@@ -10456,26 +10497,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
+    // $ANTLR end "rule__CallRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__0"
-    // InternalInstanceLanguage.g:3257:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
-    public final void rule__CallRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0"
+    // InternalInstanceLanguage.g:3282:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3261:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalInstanceLanguage.g:3262:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalInstanceLanguage.g:3286:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalInstanceLanguage.g:3287:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
-            pushFollow(FOLLOW_32);
-            rule__CallRule__Group__0__Impl();
+            pushFollow(FOLLOW_11);
+            rule__CallRule__Group_2__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__1();
+            rule__CallRule__Group_2__1();
 
             state._fsp--;
 
@@ -10494,35 +10535,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group_2__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3269:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
-    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
+    // InternalInstanceLanguage.g:3294:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3273:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:3274:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalInstanceLanguage.g:3298:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalInstanceLanguage.g:3299:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalInstanceLanguage.g:3274:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalInstanceLanguage.g:3275:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalInstanceLanguage.g:3299:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalInstanceLanguage.g:3300:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
-            // InternalInstanceLanguage.g:3276:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalInstanceLanguage.g:3276:3: rule__CallRule__FunctionAssignment_0
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+            // InternalInstanceLanguage.g:3301:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalInstanceLanguage.g:3301:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__FunctionAssignment_0();
+            rule__CallRule__ParametersAssignment_2_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
 
             }
 
@@ -10541,26 +10582,124 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__1"
-    // InternalInstanceLanguage.g:3284:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
-    public final void rule__CallRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__1"
+    // InternalInstanceLanguage.g:3309:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3288:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalInstanceLanguage.g:3289:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalInstanceLanguage.g:3313:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalInstanceLanguage.g:3314:2: rule__CallRule__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_33);
-            rule__CallRule__Group__1__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
+    // InternalInstanceLanguage.g:3320:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3324:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalInstanceLanguage.g:3325:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            {
+            // InternalInstanceLanguage.g:3325:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalInstanceLanguage.g:3326:2: ( rule__CallRule__Group_2_1__0 )*
+            {
+             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+            // InternalInstanceLanguage.g:3327:2: ( rule__CallRule__Group_2_1__0 )*
+            loop26:
+            do {
+                int alt26=2;
+                int LA26_0 = input.LA(1);
+
+                if ( (LA26_0==53) ) {
+                    alt26=1;
+                }
+
+
+                switch (alt26) {
+            	case 1 :
+            	    // InternalInstanceLanguage.g:3327:3: rule__CallRule__Group_2_1__0
+            	    {
+            	    pushFollow(FOLLOW_12);
+            	    rule__CallRule__Group_2_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop26;
+                }
+            } while (true);
+
+             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__0"
+    // InternalInstanceLanguage.g:3336:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3340:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalInstanceLanguage.g:3341:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            {
+            pushFollow(FOLLOW_17);
+            rule__CallRule__Group_2_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__2();
+            rule__CallRule__Group_2_1__1();
 
             state._fsp--;
 
@@ -10579,25 +10718,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group_2_1__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3296:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
-    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
+    // InternalInstanceLanguage.g:3348:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3300:1: ( ( '(' ) )
-            // InternalInstanceLanguage.g:3301:1: ( '(' )
+            // InternalInstanceLanguage.g:3352:1: ( ( ',' ) )
+            // InternalInstanceLanguage.g:3353:1: ( ',' )
             {
-            // InternalInstanceLanguage.g:3301:1: ( '(' )
-            // InternalInstanceLanguage.g:3302:2: '('
+            // InternalInstanceLanguage.g:3353:1: ( ',' )
+            // InternalInstanceLanguage.g:3354:2: ','
             {
-             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
-            match(input,60,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+            match(input,53,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
 
             }
 
@@ -10616,30 +10755,72 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2"
-    // InternalInstanceLanguage.g:3311:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
-    public final void rule__CallRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__1"
+    // InternalInstanceLanguage.g:3363:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3315:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalInstanceLanguage.g:3316:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalInstanceLanguage.g:3367:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalInstanceLanguage.g:3368:2: rule__CallRule__Group_2_1__1__Impl
             {
-            pushFollow(FOLLOW_33);
-            rule__CallRule__Group__2__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2_1__1__Impl();
 
             state._fsp--;
 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2_1__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
+    // InternalInstanceLanguage.g:3374:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3378:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalInstanceLanguage.g:3379:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            {
+            // InternalInstanceLanguage.g:3379:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalInstanceLanguage.g:3380:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            {
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+            // InternalInstanceLanguage.g:3381:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalInstanceLanguage.g:3381:3: rule__CallRule__ParametersAssignment_2_1_1
+            {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3();
+            rule__CallRule__ParametersAssignment_2_1_1();
 
             state._fsp--;
 
 
+            }
+
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+
+            }
+
+
             }
 
         }
@@ -10654,46 +10835,73 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:3323:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
-    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
+    // InternalInstanceLanguage.g:3390:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3327:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalInstanceLanguage.g:3328:1: ( ( rule__CallRule__Group_2__0 )? )
-            {
-            // InternalInstanceLanguage.g:3328:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalInstanceLanguage.g:3329:2: ( rule__CallRule__Group_2__0 )?
+            // InternalInstanceLanguage.g:3394:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalInstanceLanguage.g:3395:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
-            // InternalInstanceLanguage.g:3330:2: ( rule__CallRule__Group_2__0 )?
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+            pushFollow(FOLLOW_32);
+            rule__DoubleLiteralRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__Group__1();
+
+            state._fsp--;
+
 
-            if ( ((LA26_0>=RULE_QUOTED_ID && LA26_0<=RULE_STRING)||LA26_0==15||(LA26_0>=22 && LA26_0<=23)||LA26_0==60||LA26_0==62||(LA26_0>=74 && LA26_0<=75)) ) {
-                alt26=1;
             }
-            switch (alt26) {
-                case 1 :
-                    // InternalInstanceLanguage.g:3330:3: rule__CallRule__Group_2__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__CallRule__Group_2__0();
 
-                    state._fsp--;
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
 
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+
+
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3402:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3406:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:3407:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            {
+            // InternalInstanceLanguage.g:3407:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalInstanceLanguage.g:3408:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            {
+             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalInstanceLanguage.g:3409:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalInstanceLanguage.g:3409:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__LiteralAssignment_0();
+
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
+             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -10712,21 +10920,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__3"
-    // InternalInstanceLanguage.g:3338:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
-    public final void rule__CallRule__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
+    // InternalInstanceLanguage.g:3417:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3342:1: ( rule__CallRule__Group__3__Impl )
-            // InternalInstanceLanguage.g:3343:2: rule__CallRule__Group__3__Impl
+            // InternalInstanceLanguage.g:3421:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:3422:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3__Impl();
+            rule__DoubleLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10745,25 +10953,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalInstanceLanguage.g:3349:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
-    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3428:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3353:1: ( ( ')' ) )
-            // InternalInstanceLanguage.g:3354:1: ( ')' )
+            // InternalInstanceLanguage.g:3432:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalInstanceLanguage.g:3433:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalInstanceLanguage.g:3354:1: ( ')' )
-            // InternalInstanceLanguage.g:3355:2: ')'
+            // InternalInstanceLanguage.g:3433:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalInstanceLanguage.g:3434:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
-            match(input,61,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalInstanceLanguage.g:3435:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            int alt27=2;
+            int LA27_0 = input.LA(1);
+
+            if ( ((LA27_0>=27 && LA27_0<=46)) ) {
+                alt27=1;
+            }
+            switch (alt27) {
+                case 1 :
+                    // InternalInstanceLanguage.g:3435:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DoubleLiteralRule__FactorAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -10782,26 +11011,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalInstanceLanguage.g:3365:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
-    public final void rule__CallRule__Group_2__0() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
+    // InternalInstanceLanguage.g:3444:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3369:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalInstanceLanguage.g:3370:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
-            {
-            pushFollow(FOLLOW_11);
-            rule__CallRule__Group_2__0__Impl();
+            // InternalInstanceLanguage.g:3448:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalInstanceLanguage.g:3449:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            {
+            pushFollow(FOLLOW_32);
+            rule__IntegerLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1();
+            rule__IntegerLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -10820,35 +11049,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalInstanceLanguage.g:3377:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
-    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3456:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3381:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalInstanceLanguage.g:3382:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalInstanceLanguage.g:3460:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:3461:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:3382:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalInstanceLanguage.g:3383:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalInstanceLanguage.g:3461:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalInstanceLanguage.g:3462:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
-            // InternalInstanceLanguage.g:3384:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalInstanceLanguage.g:3384:3: rule__CallRule__ParametersAssignment_2_0
+             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalInstanceLanguage.g:3463:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalInstanceLanguage.g:3463:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_0();
+            rule__IntegerLiteralRule__LiteralAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -10867,21 +11096,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalInstanceLanguage.g:3392:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
-    public final void rule__CallRule__Group_2__1() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
+    // InternalInstanceLanguage.g:3471:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3396:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalInstanceLanguage.g:3397:2: rule__CallRule__Group_2__1__Impl
+            // InternalInstanceLanguage.g:3475:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:3476:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1__Impl();
+            rule__IntegerLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10900,53 +11129,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalInstanceLanguage.g:3403:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
-    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3482:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3407:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalInstanceLanguage.g:3408:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalInstanceLanguage.g:3486:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalInstanceLanguage.g:3487:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalInstanceLanguage.g:3408:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalInstanceLanguage.g:3409:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalInstanceLanguage.g:3487:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalInstanceLanguage.g:3488:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
-            // InternalInstanceLanguage.g:3410:2: ( rule__CallRule__Group_2_1__0 )*
-            loop27:
-            do {
-                int alt27=2;
-                int LA27_0 = input.LA(1);
-
-                if ( (LA27_0==53) ) {
-                    alt27=1;
-                }
-
+             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalInstanceLanguage.g:3489:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
 
-                switch (alt27) {
-            	case 1 :
-            	    // InternalInstanceLanguage.g:3410:3: rule__CallRule__Group_2_1__0
-            	    {
-            	    pushFollow(FOLLOW_12);
-            	    rule__CallRule__Group_2_1__0();
+            if ( ((LA28_0>=27 && LA28_0<=46)) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalInstanceLanguage.g:3489:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__IntegerLiteralRule__FactorAssignment_1();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop27;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -10965,26 +11187,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalInstanceLanguage.g:3419:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
-    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
+    // InternalInstanceLanguage.g:3498:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3423:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalInstanceLanguage.g:3424:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalInstanceLanguage.g:3502:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalInstanceLanguage.g:3503:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__CallRule__Group_2_1__0__Impl();
+            pushFollow(FOLLOW_7);
+            rule__BooleanLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1();
+            rule__BooleanLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -11003,25 +11225,29 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalInstanceLanguage.g:3431:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
-    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3510:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3435:1: ( ( ',' ) )
-            // InternalInstanceLanguage.g:3436:1: ( ',' )
+            // InternalInstanceLanguage.g:3514:1: ( ( () ) )
+            // InternalInstanceLanguage.g:3515:1: ( () )
             {
-            // InternalInstanceLanguage.g:3436:1: ( ',' )
-            // InternalInstanceLanguage.g:3437:2: ','
+            // InternalInstanceLanguage.g:3515:1: ( () )
+            // InternalInstanceLanguage.g:3516:2: ()
             {
-             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
-            match(input,53,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+            // InternalInstanceLanguage.g:3517:2: ()
+            // InternalInstanceLanguage.g:3517:3: 
+            {
+            }
+
+             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
 
             }
 
@@ -11029,10 +11255,6 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
 
         }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -11040,21 +11262,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalInstanceLanguage.g:3446:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
-    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
+    // InternalInstanceLanguage.g:3525:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3450:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalInstanceLanguage.g:3451:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalInstanceLanguage.g:3529:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:3530:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1__Impl();
+            rule__BooleanLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -11073,35 +11295,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalInstanceLanguage.g:3457:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
-    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3536:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3461:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalInstanceLanguage.g:3462:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalInstanceLanguage.g:3540:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalInstanceLanguage.g:3541:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalInstanceLanguage.g:3462:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalInstanceLanguage.g:3463:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalInstanceLanguage.g:3541:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalInstanceLanguage.g:3542:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
-            // InternalInstanceLanguage.g:3464:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalInstanceLanguage.g:3464:3: rule__CallRule__ParametersAssignment_2_1_1
+             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+            // InternalInstanceLanguage.g:3543:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalInstanceLanguage.g:3543:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_1_1();
+            rule__BooleanLiteralRule__Alternatives_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
 
             }
 
@@ -11120,26 +11342,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalInstanceLanguage.g:3473:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalInstanceLanguage.g:3552:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3477:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalInstanceLanguage.g:3478:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
+            // InternalInstanceLanguage.g:3556:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalInstanceLanguage.g:3557:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__ValueReferenceRule__Group__0__Impl();
+            pushFollow(FOLLOW_33);
+            rule__TypeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
+            rule__TypeDefinitionRule__Group__1();
 
             state._fsp--;
 
@@ -11158,29 +11380,46 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3485:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalInstanceLanguage.g:3564:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3489:1: ( ( () ) )
-            // InternalInstanceLanguage.g:3490:1: ( () )
-            {
-            // InternalInstanceLanguage.g:3490:1: ( () )
-            // InternalInstanceLanguage.g:3491:2: ()
+            // InternalInstanceLanguage.g:3568:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalInstanceLanguage.g:3569:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-            // InternalInstanceLanguage.g:3492:2: ()
-            // InternalInstanceLanguage.g:3492:3: 
+            // InternalInstanceLanguage.g:3569:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalInstanceLanguage.g:3570:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+            // InternalInstanceLanguage.g:3571:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==77) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // InternalInstanceLanguage.g:3571:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
 
             }
 
@@ -11188,6 +11427,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -11195,21 +11438,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalInstanceLanguage.g:3500:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalInstanceLanguage.g:3579:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3504:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3505:2: rule__ValueReferenceRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3583:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalInstanceLanguage.g:3584:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
             {
+            pushFollow(FOLLOW_14);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__2();
 
             state._fsp--;
 
@@ -11228,25 +11476,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3511:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalInstanceLanguage.g:3591:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3515:1: ( ( 'value' ) )
-            // InternalInstanceLanguage.g:3516:1: ( 'value' )
+            // InternalInstanceLanguage.g:3595:1: ( ( 'type' ) )
+            // InternalInstanceLanguage.g:3596:1: ( 'type' )
             {
-            // InternalInstanceLanguage.g:3516:1: ( 'value' )
-            // InternalInstanceLanguage.g:3517:2: 'value'
+            // InternalInstanceLanguage.g:3596:1: ( 'type' )
+            // InternalInstanceLanguage.g:3597:2: 'type'
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-            match(input,62,FOLLOW_2); 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
 
             }
 
@@ -11265,26 +11513,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalInstanceLanguage.g:3527:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
-    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalInstanceLanguage.g:3606:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3531:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalInstanceLanguage.g:3532:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalInstanceLanguage.g:3610:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalInstanceLanguage.g:3611:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_34);
-            rule__DoubleLiteralRule__Group__0__Impl();
+            rule__TypeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__3();
 
             state._fsp--;
 
@@ -11303,35 +11551,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3539:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalInstanceLanguage.g:3618:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3543:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:3544:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalInstanceLanguage.g:3622:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalInstanceLanguage.g:3623:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalInstanceLanguage.g:3544:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalInstanceLanguage.g:3545:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalInstanceLanguage.g:3623:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalInstanceLanguage.g:3624:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalInstanceLanguage.g:3546:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalInstanceLanguage.g:3546:3: rule__DoubleLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            // InternalInstanceLanguage.g:3625:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalInstanceLanguage.g:3625:3: rule__TypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__NameAssignment_2();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
 
             }
 
@@ -11350,21 +11598,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalInstanceLanguage.g:3554:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
-    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalInstanceLanguage.g:3633:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3558:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3559:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3637:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalInstanceLanguage.g:3638:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
             {
+            pushFollow(FOLLOW_34);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__4();
 
             state._fsp--;
 
@@ -11383,36 +11636,36 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3565:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalInstanceLanguage.g:3645:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3569:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalInstanceLanguage.g:3570:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalInstanceLanguage.g:3649:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalInstanceLanguage.g:3650:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalInstanceLanguage.g:3570:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalInstanceLanguage.g:3571:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalInstanceLanguage.g:3650:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalInstanceLanguage.g:3651:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalInstanceLanguage.g:3572:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            // InternalInstanceLanguage.g:3652:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            if ( ((LA28_0>=27 && LA28_0<=46)) ) {
-                alt28=1;
+            if ( (LA30_0==62) ) {
+                alt30=1;
             }
-            switch (alt28) {
+            switch (alt30) {
                 case 1 :
-                    // InternalInstanceLanguage.g:3572:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalInstanceLanguage.g:3652:3: rule__TypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
-                    rule__DoubleLiteralRule__FactorAssignment_1();
+                    rule__TypeDefinitionRule__Group_3__0();
 
                     state._fsp--;
 
@@ -11422,7 +11675,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
 
             }
 
@@ -11441,26 +11694,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalInstanceLanguage.g:3581:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
-    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalInstanceLanguage.g:3660:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3585:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalInstanceLanguage.g:3586:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalInstanceLanguage.g:3664:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalInstanceLanguage.g:3665:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
             {
-            pushFollow(FOLLOW_34);
-            rule__IntegerLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_4);
+            rule__TypeDefinitionRule__Group__4__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__5();
 
             state._fsp--;
 
@@ -11479,35 +11732,128 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3593:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalInstanceLanguage.g:3672:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3597:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:3598:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalInstanceLanguage.g:3676:1: ( ( '{' ) )
+            // InternalInstanceLanguage.g:3677:1: ( '{' )
             {
-            // InternalInstanceLanguage.g:3598:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalInstanceLanguage.g:3599:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalInstanceLanguage.g:3677:1: ( '{' )
+            // InternalInstanceLanguage.g:3678:2: '{'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalInstanceLanguage.g:3600:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalInstanceLanguage.g:3600:3: rule__IntegerLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,47,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalInstanceLanguage.g:3687:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3691:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalInstanceLanguage.g:3692:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
             {
+            pushFollow(FOLLOW_4);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__Group__6();
 
             state._fsp--;
 
 
-            }
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalInstanceLanguage.g:3699:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:3703:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalInstanceLanguage.g:3704:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalInstanceLanguage.g:3704:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalInstanceLanguage.g:3705:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            // InternalInstanceLanguage.g:3706:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop31:
+            do {
+                int alt31=2;
+                int LA31_0 = input.LA(1);
+
+                if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_ID)) ) {
+                    alt31=1;
+                }
+
+
+                switch (alt31) {
+            	case 1 :
+            	    // InternalInstanceLanguage.g:3706:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_5);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop31;
+                }
+            } while (true);
 
-             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
 
             }
 
@@ -11526,21 +11872,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalInstanceLanguage.g:3608:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
-    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalInstanceLanguage.g:3714:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3612:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3613:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3718:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalInstanceLanguage.g:3719:2: rule__TypeDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__6__Impl();
 
             state._fsp--;
 
@@ -11559,46 +11905,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3619:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalInstanceLanguage.g:3725:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3623:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalInstanceLanguage.g:3624:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalInstanceLanguage.g:3729:1: ( ( '}' ) )
+            // InternalInstanceLanguage.g:3730:1: ( '}' )
             {
-            // InternalInstanceLanguage.g:3624:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalInstanceLanguage.g:3625:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalInstanceLanguage.g:3730:1: ( '}' )
+            // InternalInstanceLanguage.g:3731:2: '}'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalInstanceLanguage.g:3626:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
-
-            if ( ((LA29_0>=27 && LA29_0<=46)) ) {
-                alt29=1;
-            }
-            switch (alt29) {
-                case 1 :
-                    // InternalInstanceLanguage.g:3626:3: rule__IntegerLiteralRule__FactorAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__IntegerLiteralRule__FactorAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,48,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
 
             }
 
@@ -11617,26 +11942,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalInstanceLanguage.g:3635:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
-    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalInstanceLanguage.g:3741:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3639:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalInstanceLanguage.g:3640:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalInstanceLanguage.g:3745:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalInstanceLanguage.g:3746:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_7);
-            rule__BooleanLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_14);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group_3__1();
 
             state._fsp--;
 
@@ -11655,29 +11980,25 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3647:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
-    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalInstanceLanguage.g:3753:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3651:1: ( ( () ) )
-            // InternalInstanceLanguage.g:3652:1: ( () )
-            {
-            // InternalInstanceLanguage.g:3652:1: ( () )
-            // InternalInstanceLanguage.g:3653:2: ()
+            // InternalInstanceLanguage.g:3757:1: ( ( 'extends' ) )
+            // InternalInstanceLanguage.g:3758:1: ( 'extends' )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
-            // InternalInstanceLanguage.g:3654:2: ()
-            // InternalInstanceLanguage.g:3654:3: 
+            // InternalInstanceLanguage.g:3758:1: ( 'extends' )
+            // InternalInstanceLanguage.g:3759:2: 'extends'
             {
-            }
-
-             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            match(input,62,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
 
             }
 
@@ -11685,6 +12006,10 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -11692,21 +12017,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalInstanceLanguage.g:3662:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
-    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalInstanceLanguage.g:3768:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3666:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3667:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalInstanceLanguage.g:3772:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalInstanceLanguage.g:3773:2: rule__TypeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group_3__1__Impl();
 
             state._fsp--;
 
@@ -11725,35 +12050,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3673:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
-    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalInstanceLanguage.g:3779:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3677:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalInstanceLanguage.g:3678:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalInstanceLanguage.g:3783:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalInstanceLanguage.g:3784:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
             {
-            // InternalInstanceLanguage.g:3678:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalInstanceLanguage.g:3679:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalInstanceLanguage.g:3784:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalInstanceLanguage.g:3785:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
-            // InternalInstanceLanguage.g:3680:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalInstanceLanguage.g:3680:3: rule__BooleanLiteralRule__Alternatives_1
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            // InternalInstanceLanguage.g:3786:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalInstanceLanguage.g:3786:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Alternatives_1();
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
 
             }
 
@@ -11772,18 +12097,18 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalInstanceLanguage.g:3689:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalInstanceLanguage.g:3795:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3693:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalInstanceLanguage.g:3694:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalInstanceLanguage.g:3799:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalInstanceLanguage.g:3800:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_35);
             rule__AttributeDefinitionRule__Group__0__Impl();
@@ -11814,21 +12139,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3701:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalInstanceLanguage.g:3807:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3705:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:3706:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalInstanceLanguage.g:3811:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:3812:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:3706:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalInstanceLanguage.g:3707:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalInstanceLanguage.g:3812:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalInstanceLanguage.g:3813:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
-            // InternalInstanceLanguage.g:3708:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalInstanceLanguage.g:3708:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalInstanceLanguage.g:3814:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalInstanceLanguage.g:3814:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -11861,14 +12186,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalInstanceLanguage.g:3716:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalInstanceLanguage.g:3822:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3720:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalInstanceLanguage.g:3721:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalInstanceLanguage.g:3826:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalInstanceLanguage.g:3827:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_36);
             rule__AttributeDefinitionRule__Group__1__Impl();
@@ -11899,17 +12224,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3728:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalInstanceLanguage.g:3834:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3732:1: ( ( ':' ) )
-            // InternalInstanceLanguage.g:3733:1: ( ':' )
+            // InternalInstanceLanguage.g:3838:1: ( ( ':' ) )
+            // InternalInstanceLanguage.g:3839:1: ( ':' )
             {
-            // InternalInstanceLanguage.g:3733:1: ( ':' )
-            // InternalInstanceLanguage.g:3734:2: ':'
+            // InternalInstanceLanguage.g:3839:1: ( ':' )
+            // InternalInstanceLanguage.g:3840:2: ':'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
             match(input,63,FOLLOW_2); 
@@ -11936,14 +12261,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalInstanceLanguage.g:3743:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalInstanceLanguage.g:3849:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3747:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalInstanceLanguage.g:3748:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalInstanceLanguage.g:3853:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalInstanceLanguage.g:3854:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_37);
             rule__AttributeDefinitionRule__Group__2__Impl();
@@ -11974,21 +12299,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:3755:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalInstanceLanguage.g:3861:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3759:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalInstanceLanguage.g:3760:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalInstanceLanguage.g:3865:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalInstanceLanguage.g:3866:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalInstanceLanguage.g:3760:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalInstanceLanguage.g:3761:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalInstanceLanguage.g:3866:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalInstanceLanguage.g:3867:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
-            // InternalInstanceLanguage.g:3762:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalInstanceLanguage.g:3762:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalInstanceLanguage.g:3868:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalInstanceLanguage.g:3868:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -12021,14 +12346,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalInstanceLanguage.g:3770:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalInstanceLanguage.g:3876:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3774:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalInstanceLanguage.g:3775:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalInstanceLanguage.g:3880:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalInstanceLanguage.g:3881:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_37);
             rule__AttributeDefinitionRule__Group__3__Impl();
@@ -12059,29 +12384,29 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalInstanceLanguage.g:3782:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalInstanceLanguage.g:3888:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3786:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalInstanceLanguage.g:3787:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalInstanceLanguage.g:3892:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalInstanceLanguage.g:3893:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalInstanceLanguage.g:3787:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalInstanceLanguage.g:3788:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalInstanceLanguage.g:3893:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalInstanceLanguage.g:3894:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
-            // InternalInstanceLanguage.g:3789:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt30=2;
-            int LA30_0 = input.LA(1);
+            // InternalInstanceLanguage.g:3895:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
 
-            if ( (LA30_0==49) ) {
-                alt30=1;
+            if ( (LA32_0==49) ) {
+                alt32=1;
             }
-            switch (alt30) {
+            switch (alt32) {
                 case 1 :
-                    // InternalInstanceLanguage.g:3789:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalInstanceLanguage.g:3895:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -12117,14 +12442,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalInstanceLanguage.g:3797:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalInstanceLanguage.g:3903:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3801:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalInstanceLanguage.g:3802:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalInstanceLanguage.g:3907:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalInstanceLanguage.g:3908:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -12150,17 +12475,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalInstanceLanguage.g:3808:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalInstanceLanguage.g:3914:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3812:1: ( ( ';' ) )
-            // InternalInstanceLanguage.g:3813:1: ( ';' )
+            // InternalInstanceLanguage.g:3918:1: ( ( ';' ) )
+            // InternalInstanceLanguage.g:3919:1: ( ';' )
             {
-            // InternalInstanceLanguage.g:3813:1: ( ';' )
-            // InternalInstanceLanguage.g:3814:2: ';'
+            // InternalInstanceLanguage.g:3919:1: ( ';' )
+            // InternalInstanceLanguage.g:3920:2: ';'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
             match(input,50,FOLLOW_2); 
@@ -12187,16 +12512,16 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalInstanceLanguage.g:3824:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalInstanceLanguage.g:3930:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3828:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalInstanceLanguage.g:3829:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalInstanceLanguage.g:3934:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalInstanceLanguage.g:3935:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_19);
+            pushFollow(FOLLOW_17);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
@@ -12225,17 +12550,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalInstanceLanguage.g:3836:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalInstanceLanguage.g:3942:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3840:1: ( ( ':=' ) )
-            // InternalInstanceLanguage.g:3841:1: ( ':=' )
+            // InternalInstanceLanguage.g:3946:1: ( ( ':=' ) )
+            // InternalInstanceLanguage.g:3947:1: ( ':=' )
             {
-            // InternalInstanceLanguage.g:3841:1: ( ':=' )
-            // InternalInstanceLanguage.g:3842:2: ':='
+            // InternalInstanceLanguage.g:3947:1: ( ':=' )
+            // InternalInstanceLanguage.g:3948:2: ':='
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
             match(input,49,FOLLOW_2); 
@@ -12262,14 +12587,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalInstanceLanguage.g:3851:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalInstanceLanguage.g:3957:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3855:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalInstanceLanguage.g:3856:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalInstanceLanguage.g:3961:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalInstanceLanguage.g:3962:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -12295,21 +12620,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalInstanceLanguage.g:3862:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalInstanceLanguage.g:3968:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3866:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalInstanceLanguage.g:3867:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalInstanceLanguage.g:3972:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalInstanceLanguage.g:3973:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalInstanceLanguage.g:3867:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalInstanceLanguage.g:3868:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalInstanceLanguage.g:3973:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalInstanceLanguage.g:3974:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
-            // InternalInstanceLanguage.g:3869:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalInstanceLanguage.g:3869:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalInstanceLanguage.g:3975:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalInstanceLanguage.g:3975:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -12342,14 +12667,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalInstanceLanguage.g:3878:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:3984:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3882:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:3883:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalInstanceLanguage.g:3988:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:3989:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
             pushFollow(FOLLOW_38);
             rule__LiteralTypeRule__Group__0__Impl();
@@ -12380,21 +12705,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3890:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:3996:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3894:1: ( ( () ) )
-            // InternalInstanceLanguage.g:3895:1: ( () )
+            // InternalInstanceLanguage.g:4000:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4001:1: ( () )
             {
-            // InternalInstanceLanguage.g:3895:1: ( () )
-            // InternalInstanceLanguage.g:3896:2: ()
+            // InternalInstanceLanguage.g:4001:1: ( () )
+            // InternalInstanceLanguage.g:4002:2: ()
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
-            // InternalInstanceLanguage.g:3897:2: ()
-            // InternalInstanceLanguage.g:3897:3: 
+            // InternalInstanceLanguage.g:4003:2: ()
+            // InternalInstanceLanguage.g:4003:3: 
             {
             }
 
@@ -12417,14 +12742,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalInstanceLanguage.g:3905:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4011:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3909:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:3910:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4015:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4016:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -12450,17 +12775,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3916:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalInstanceLanguage.g:4022:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3920:1: ( ( 'literal' ) )
-            // InternalInstanceLanguage.g:3921:1: ( 'literal' )
+            // InternalInstanceLanguage.g:4026:1: ( ( 'literal' ) )
+            // InternalInstanceLanguage.g:4027:1: ( 'literal' )
             {
-            // InternalInstanceLanguage.g:3921:1: ( 'literal' )
-            // InternalInstanceLanguage.g:3922:2: 'literal'
+            // InternalInstanceLanguage.g:4027:1: ( 'literal' )
+            // InternalInstanceLanguage.g:4028:2: 'literal'
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
             match(input,64,FOLLOW_2); 
@@ -12487,14 +12812,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalInstanceLanguage.g:3932:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4038:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3936:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:3937:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalInstanceLanguage.g:4042:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4043:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__InstanceTypeRule__Group__0__Impl();
@@ -12525,21 +12850,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:3944:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4050:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3948:1: ( ( () ) )
-            // InternalInstanceLanguage.g:3949:1: ( () )
+            // InternalInstanceLanguage.g:4054:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4055:1: ( () )
             {
-            // InternalInstanceLanguage.g:3949:1: ( () )
-            // InternalInstanceLanguage.g:3950:2: ()
+            // InternalInstanceLanguage.g:4055:1: ( () )
+            // InternalInstanceLanguage.g:4056:2: ()
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
-            // InternalInstanceLanguage.g:3951:2: ()
-            // InternalInstanceLanguage.g:3951:3: 
+            // InternalInstanceLanguage.g:4057:2: ()
+            // InternalInstanceLanguage.g:4057:3: 
             {
             }
 
@@ -12562,14 +12887,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalInstanceLanguage.g:3959:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalInstanceLanguage.g:4065:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3963:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalInstanceLanguage.g:3964:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalInstanceLanguage.g:4069:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalInstanceLanguage.g:4070:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_14);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -12600,17 +12925,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:3971:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalInstanceLanguage.g:4077:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3975:1: ( ( 'instance' ) )
-            // InternalInstanceLanguage.g:3976:1: ( 'instance' )
+            // InternalInstanceLanguage.g:4081:1: ( ( 'instance' ) )
+            // InternalInstanceLanguage.g:4082:1: ( 'instance' )
             {
-            // InternalInstanceLanguage.g:3976:1: ( 'instance' )
-            // InternalInstanceLanguage.g:3977:2: 'instance'
+            // InternalInstanceLanguage.g:4082:1: ( 'instance' )
+            // InternalInstanceLanguage.g:4083:2: 'instance'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
             match(input,65,FOLLOW_2); 
@@ -12637,14 +12962,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalInstanceLanguage.g:3986:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalInstanceLanguage.g:4092:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:3990:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalInstanceLanguage.g:3991:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalInstanceLanguage.g:4096:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalInstanceLanguage.g:4097:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
             pushFollow(FOLLOW_40);
             rule__InstanceTypeRule__Group__2__Impl();
@@ -12675,21 +13000,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalInstanceLanguage.g:3998:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalInstanceLanguage.g:4104:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4002:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalInstanceLanguage.g:4003:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalInstanceLanguage.g:4108:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalInstanceLanguage.g:4109:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalInstanceLanguage.g:4003:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalInstanceLanguage.g:4004:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalInstanceLanguage.g:4109:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalInstanceLanguage.g:4110:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
-            // InternalInstanceLanguage.g:4005:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalInstanceLanguage.g:4005:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalInstanceLanguage.g:4111:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalInstanceLanguage.g:4111:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -12722,14 +13047,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalInstanceLanguage.g:4013:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalInstanceLanguage.g:4119:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4017:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalInstanceLanguage.g:4018:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalInstanceLanguage.g:4123:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalInstanceLanguage.g:4124:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -12755,33 +13080,33 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalInstanceLanguage.g:4024:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalInstanceLanguage.g:4130:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4028:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalInstanceLanguage.g:4029:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalInstanceLanguage.g:4134:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalInstanceLanguage.g:4135:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalInstanceLanguage.g:4029:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalInstanceLanguage.g:4030:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalInstanceLanguage.g:4135:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalInstanceLanguage.g:4136:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
-            // InternalInstanceLanguage.g:4031:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop31:
+            // InternalInstanceLanguage.g:4137:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop33:
             do {
-                int alt31=2;
-                int LA31_0 = input.LA(1);
+                int alt33=2;
+                int LA33_0 = input.LA(1);
 
-                if ( (LA31_0==66) ) {
-                    alt31=1;
+                if ( (LA33_0==66) ) {
+                    alt33=1;
                 }
 
 
-                switch (alt31) {
+                switch (alt33) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:4031:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalInstanceLanguage.g:4137:3: rule__InstanceTypeRule__Group_3__0
             	    {
             	    pushFollow(FOLLOW_41);
             	    rule__InstanceTypeRule__Group_3__0();
@@ -12793,7 +13118,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             	    break;
 
             	default :
-            	    break loop31;
+            	    break loop33;
                 }
             } while (true);
 
@@ -12820,14 +13145,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalInstanceLanguage.g:4040:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalInstanceLanguage.g:4146:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4044:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalInstanceLanguage.g:4045:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalInstanceLanguage.g:4150:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalInstanceLanguage.g:4151:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_14);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -12858,17 +13183,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalInstanceLanguage.g:4052:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalInstanceLanguage.g:4158:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4056:1: ( ( '|' ) )
-            // InternalInstanceLanguage.g:4057:1: ( '|' )
+            // InternalInstanceLanguage.g:4162:1: ( ( '|' ) )
+            // InternalInstanceLanguage.g:4163:1: ( '|' )
             {
-            // InternalInstanceLanguage.g:4057:1: ( '|' )
-            // InternalInstanceLanguage.g:4058:2: '|'
+            // InternalInstanceLanguage.g:4163:1: ( '|' )
+            // InternalInstanceLanguage.g:4164:2: '|'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
             match(input,66,FOLLOW_2); 
@@ -12895,14 +13220,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalInstanceLanguage.g:4067:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalInstanceLanguage.g:4173:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4071:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalInstanceLanguage.g:4072:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalInstanceLanguage.g:4177:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalInstanceLanguage.g:4178:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -12928,21 +13253,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalInstanceLanguage.g:4078:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalInstanceLanguage.g:4184:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4082:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalInstanceLanguage.g:4083:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalInstanceLanguage.g:4188:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalInstanceLanguage.g:4189:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalInstanceLanguage.g:4083:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalInstanceLanguage.g:4084:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalInstanceLanguage.g:4189:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalInstanceLanguage.g:4190:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
-            // InternalInstanceLanguage.g:4085:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalInstanceLanguage.g:4085:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalInstanceLanguage.g:4191:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalInstanceLanguage.g:4191:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -12975,14 +13300,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4094:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4200:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4098:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4099:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalInstanceLanguage.g:4204:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4205:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
             pushFollow(FOLLOW_42);
             rule__StringTypeRule__Group__0__Impl();
@@ -13013,21 +13338,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4106:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4212:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4110:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4111:1: ( () )
+            // InternalInstanceLanguage.g:4216:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4217:1: ( () )
             {
-            // InternalInstanceLanguage.g:4111:1: ( () )
-            // InternalInstanceLanguage.g:4112:2: ()
+            // InternalInstanceLanguage.g:4217:1: ( () )
+            // InternalInstanceLanguage.g:4218:2: ()
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
-            // InternalInstanceLanguage.g:4113:2: ()
-            // InternalInstanceLanguage.g:4113:3: 
+            // InternalInstanceLanguage.g:4219:2: ()
+            // InternalInstanceLanguage.g:4219:3: 
             {
             }
 
@@ -13050,14 +13375,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4121:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4227:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4125:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4126:2: rule__StringTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4231:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4232:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -13083,17 +13408,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4132:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalInstanceLanguage.g:4238:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4136:1: ( ( 'string' ) )
-            // InternalInstanceLanguage.g:4137:1: ( 'string' )
+            // InternalInstanceLanguage.g:4242:1: ( ( 'string' ) )
+            // InternalInstanceLanguage.g:4243:1: ( 'string' )
             {
-            // InternalInstanceLanguage.g:4137:1: ( 'string' )
-            // InternalInstanceLanguage.g:4138:2: 'string'
+            // InternalInstanceLanguage.g:4243:1: ( 'string' )
+            // InternalInstanceLanguage.g:4244:2: 'string'
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
             match(input,67,FOLLOW_2); 
@@ -13120,14 +13445,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4148:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4254:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4152:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4153:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalInstanceLanguage.g:4258:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4259:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__ExpressionTypeRule__Group__0__Impl();
@@ -13158,21 +13483,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4160:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4266:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4164:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4165:1: ( () )
+            // InternalInstanceLanguage.g:4270:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4271:1: ( () )
             {
-            // InternalInstanceLanguage.g:4165:1: ( () )
-            // InternalInstanceLanguage.g:4166:2: ()
+            // InternalInstanceLanguage.g:4271:1: ( () )
+            // InternalInstanceLanguage.g:4272:2: ()
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
-            // InternalInstanceLanguage.g:4167:2: ()
-            // InternalInstanceLanguage.g:4167:3: 
+            // InternalInstanceLanguage.g:4273:2: ()
+            // InternalInstanceLanguage.g:4273:3: 
             {
             }
 
@@ -13195,14 +13520,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4175:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4281:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4179:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4180:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4285:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4286:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -13228,17 +13553,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4186:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalInstanceLanguage.g:4292:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4190:1: ( ( 'expression' ) )
-            // InternalInstanceLanguage.g:4191:1: ( 'expression' )
+            // InternalInstanceLanguage.g:4296:1: ( ( 'expression' ) )
+            // InternalInstanceLanguage.g:4297:1: ( 'expression' )
             {
-            // InternalInstanceLanguage.g:4191:1: ( 'expression' )
-            // InternalInstanceLanguage.g:4192:2: 'expression'
+            // InternalInstanceLanguage.g:4297:1: ( 'expression' )
+            // InternalInstanceLanguage.g:4298:2: 'expression'
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
             match(input,68,FOLLOW_2); 
@@ -13265,14 +13590,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4202:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4308:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4206:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4207:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalInstanceLanguage.g:4312:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4313:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
             pushFollow(FOLLOW_44);
             rule__IntTypeRule__Group__0__Impl();
@@ -13303,21 +13628,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4214:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4320:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4218:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4219:1: ( () )
+            // InternalInstanceLanguage.g:4324:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4325:1: ( () )
             {
-            // InternalInstanceLanguage.g:4219:1: ( () )
-            // InternalInstanceLanguage.g:4220:2: ()
+            // InternalInstanceLanguage.g:4325:1: ( () )
+            // InternalInstanceLanguage.g:4326:2: ()
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
-            // InternalInstanceLanguage.g:4221:2: ()
-            // InternalInstanceLanguage.g:4221:3: 
+            // InternalInstanceLanguage.g:4327:2: ()
+            // InternalInstanceLanguage.g:4327:3: 
             {
             }
 
@@ -13340,14 +13665,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4229:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4335:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4233:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4234:2: rule__IntTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4339:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4340:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -13373,17 +13698,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4240:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalInstanceLanguage.g:4346:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4244:1: ( ( 'int' ) )
-            // InternalInstanceLanguage.g:4245:1: ( 'int' )
+            // InternalInstanceLanguage.g:4350:1: ( ( 'int' ) )
+            // InternalInstanceLanguage.g:4351:1: ( 'int' )
             {
-            // InternalInstanceLanguage.g:4245:1: ( 'int' )
-            // InternalInstanceLanguage.g:4246:2: 'int'
+            // InternalInstanceLanguage.g:4351:1: ( 'int' )
+            // InternalInstanceLanguage.g:4352:2: 'int'
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
             match(input,69,FOLLOW_2); 
@@ -13410,14 +13735,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4256:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4362:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4260:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4261:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalInstanceLanguage.g:4366:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4367:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
             pushFollow(FOLLOW_45);
             rule__FloatTypeRule__Group__0__Impl();
@@ -13448,21 +13773,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4268:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4374:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4272:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4273:1: ( () )
+            // InternalInstanceLanguage.g:4378:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4379:1: ( () )
             {
-            // InternalInstanceLanguage.g:4273:1: ( () )
-            // InternalInstanceLanguage.g:4274:2: ()
+            // InternalInstanceLanguage.g:4379:1: ( () )
+            // InternalInstanceLanguage.g:4380:2: ()
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
-            // InternalInstanceLanguage.g:4275:2: ()
-            // InternalInstanceLanguage.g:4275:3: 
+            // InternalInstanceLanguage.g:4381:2: ()
+            // InternalInstanceLanguage.g:4381:3: 
             {
             }
 
@@ -13485,14 +13810,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4283:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4389:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4287:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4288:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4393:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4394:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -13518,17 +13843,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4294:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalInstanceLanguage.g:4400:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4298:1: ( ( 'float' ) )
-            // InternalInstanceLanguage.g:4299:1: ( 'float' )
+            // InternalInstanceLanguage.g:4404:1: ( ( 'float' ) )
+            // InternalInstanceLanguage.g:4405:1: ( 'float' )
             {
-            // InternalInstanceLanguage.g:4299:1: ( 'float' )
-            // InternalInstanceLanguage.g:4300:2: 'float'
+            // InternalInstanceLanguage.g:4405:1: ( 'float' )
+            // InternalInstanceLanguage.g:4406:2: 'float'
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
             match(input,70,FOLLOW_2); 
@@ -13555,14 +13880,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4310:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4416:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4314:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4315:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalInstanceLanguage.g:4420:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4421:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
             pushFollow(FOLLOW_46);
             rule__BooleanTypeRule__Group__0__Impl();
@@ -13593,21 +13918,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4322:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4428:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4326:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4327:1: ( () )
+            // InternalInstanceLanguage.g:4432:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4433:1: ( () )
             {
-            // InternalInstanceLanguage.g:4327:1: ( () )
-            // InternalInstanceLanguage.g:4328:2: ()
+            // InternalInstanceLanguage.g:4433:1: ( () )
+            // InternalInstanceLanguage.g:4434:2: ()
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
-            // InternalInstanceLanguage.g:4329:2: ()
-            // InternalInstanceLanguage.g:4329:3: 
+            // InternalInstanceLanguage.g:4435:2: ()
+            // InternalInstanceLanguage.g:4435:3: 
             {
             }
 
@@ -13630,14 +13955,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4337:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4443:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4341:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4342:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4447:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4448:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -13663,17 +13988,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4348:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalInstanceLanguage.g:4454:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4352:1: ( ( 'boolean' ) )
-            // InternalInstanceLanguage.g:4353:1: ( 'boolean' )
+            // InternalInstanceLanguage.g:4458:1: ( ( 'boolean' ) )
+            // InternalInstanceLanguage.g:4459:1: ( 'boolean' )
             {
-            // InternalInstanceLanguage.g:4353:1: ( 'boolean' )
-            // InternalInstanceLanguage.g:4354:2: 'boolean'
+            // InternalInstanceLanguage.g:4459:1: ( 'boolean' )
+            // InternalInstanceLanguage.g:4460:2: 'boolean'
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
             match(input,71,FOLLOW_2); 
@@ -13700,14 +14025,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4364:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4470:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4368:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4369:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalInstanceLanguage.g:4474:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4475:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
             pushFollow(FOLLOW_47);
             rule__VoidTypeRule__Group__0__Impl();
@@ -13738,21 +14063,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4376:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4482:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4380:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4381:1: ( () )
+            // InternalInstanceLanguage.g:4486:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4487:1: ( () )
             {
-            // InternalInstanceLanguage.g:4381:1: ( () )
-            // InternalInstanceLanguage.g:4382:2: ()
+            // InternalInstanceLanguage.g:4487:1: ( () )
+            // InternalInstanceLanguage.g:4488:2: ()
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
-            // InternalInstanceLanguage.g:4383:2: ()
-            // InternalInstanceLanguage.g:4383:3: 
+            // InternalInstanceLanguage.g:4489:2: ()
+            // InternalInstanceLanguage.g:4489:3: 
             {
             }
 
@@ -13775,14 +14100,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4391:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4497:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4395:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4396:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4501:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4502:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -13808,17 +14133,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4402:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalInstanceLanguage.g:4508:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4406:1: ( ( 'void' ) )
-            // InternalInstanceLanguage.g:4407:1: ( 'void' )
+            // InternalInstanceLanguage.g:4512:1: ( ( 'void' ) )
+            // InternalInstanceLanguage.g:4513:1: ( 'void' )
             {
-            // InternalInstanceLanguage.g:4407:1: ( 'void' )
-            // InternalInstanceLanguage.g:4408:2: 'void'
+            // InternalInstanceLanguage.g:4513:1: ( 'void' )
+            // InternalInstanceLanguage.g:4514:2: 'void'
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
             match(input,72,FOLLOW_2); 
@@ -13845,14 +14170,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4418:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4524:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4422:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4423:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalInstanceLanguage.g:4528:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4529:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__DataTypeRule__Group__0__Impl();
@@ -13883,21 +14208,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4430:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalInstanceLanguage.g:4536:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4434:1: ( ( () ) )
-            // InternalInstanceLanguage.g:4435:1: ( () )
+            // InternalInstanceLanguage.g:4540:1: ( ( () ) )
+            // InternalInstanceLanguage.g:4541:1: ( () )
             {
-            // InternalInstanceLanguage.g:4435:1: ( () )
-            // InternalInstanceLanguage.g:4436:2: ()
+            // InternalInstanceLanguage.g:4541:1: ( () )
+            // InternalInstanceLanguage.g:4542:2: ()
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
-            // InternalInstanceLanguage.g:4437:2: ()
-            // InternalInstanceLanguage.g:4437:3: 
+            // InternalInstanceLanguage.g:4543:2: ()
+            // InternalInstanceLanguage.g:4543:3: 
             {
             }
 
@@ -13920,14 +14245,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4445:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4551:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4449:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4450:2: rule__DataTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4555:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4556:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -13953,17 +14278,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4456:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalInstanceLanguage.g:4562:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4460:1: ( ( 'data' ) )
-            // InternalInstanceLanguage.g:4461:1: ( 'data' )
+            // InternalInstanceLanguage.g:4566:1: ( ( 'data' ) )
+            // InternalInstanceLanguage.g:4567:1: ( 'data' )
             {
-            // InternalInstanceLanguage.g:4461:1: ( 'data' )
-            // InternalInstanceLanguage.g:4462:2: 'data'
+            // InternalInstanceLanguage.g:4567:1: ( 'data' )
+            // InternalInstanceLanguage.g:4568:2: 'data'
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
             match(input,54,FOLLOW_2); 
@@ -13990,14 +14315,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalInstanceLanguage.g:4472:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalInstanceLanguage.g:4578:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4476:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalInstanceLanguage.g:4477:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalInstanceLanguage.g:4582:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalInstanceLanguage.g:4583:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
             pushFollow(FOLLOW_36);
             rule__ArrayTypeRule__Group__0__Impl();
@@ -14028,17 +14353,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4484:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalInstanceLanguage.g:4590:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4488:1: ( ( 'array' ) )
-            // InternalInstanceLanguage.g:4489:1: ( 'array' )
+            // InternalInstanceLanguage.g:4594:1: ( ( 'array' ) )
+            // InternalInstanceLanguage.g:4595:1: ( 'array' )
             {
-            // InternalInstanceLanguage.g:4489:1: ( 'array' )
-            // InternalInstanceLanguage.g:4490:2: 'array'
+            // InternalInstanceLanguage.g:4595:1: ( 'array' )
+            // InternalInstanceLanguage.g:4596:2: 'array'
             {
              before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
             match(input,73,FOLLOW_2); 
@@ -14065,14 +14390,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalInstanceLanguage.g:4499:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4605:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4503:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4504:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4609:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4610:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -14098,21 +14423,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4510:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalInstanceLanguage.g:4616:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4514:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:4515:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalInstanceLanguage.g:4620:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:4621:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:4515:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalInstanceLanguage.g:4516:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalInstanceLanguage.g:4621:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalInstanceLanguage.g:4622:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
-            // InternalInstanceLanguage.g:4517:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalInstanceLanguage.g:4517:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalInstanceLanguage.g:4623:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalInstanceLanguage.g:4623:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -14145,14 +14470,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalInstanceLanguage.g:4526:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalInstanceLanguage.g:4632:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4530:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalInstanceLanguage.g:4531:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalInstanceLanguage.g:4636:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalInstanceLanguage.g:4637:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
             pushFollow(FOLLOW_14);
             rule__ParameterRule__Group__0__Impl();
@@ -14183,21 +14508,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalInstanceLanguage.g:4538:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalInstanceLanguage.g:4644:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4542:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalInstanceLanguage.g:4543:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalInstanceLanguage.g:4648:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalInstanceLanguage.g:4649:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalInstanceLanguage.g:4543:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalInstanceLanguage.g:4544:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalInstanceLanguage.g:4649:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalInstanceLanguage.g:4650:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
              before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
-            // InternalInstanceLanguage.g:4545:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalInstanceLanguage.g:4545:3: rule__ParameterRule__TypeAssignment_0
+            // InternalInstanceLanguage.g:4651:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalInstanceLanguage.g:4651:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -14230,14 +14555,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalInstanceLanguage.g:4553:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4659:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4557:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalInstanceLanguage.g:4558:2: rule__ParameterRule__Group__1__Impl
+            // InternalInstanceLanguage.g:4663:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalInstanceLanguage.g:4664:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -14263,21 +14588,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalInstanceLanguage.g:4564:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalInstanceLanguage.g:4670:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4568:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalInstanceLanguage.g:4569:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalInstanceLanguage.g:4674:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalInstanceLanguage.g:4675:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalInstanceLanguage.g:4569:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalInstanceLanguage.g:4570:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalInstanceLanguage.g:4675:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalInstanceLanguage.g:4676:2: ( rule__ParameterRule__NameAssignment_1 )
             {
              before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
-            // InternalInstanceLanguage.g:4571:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalInstanceLanguage.g:4571:3: rule__ParameterRule__NameAssignment_1
+            // InternalInstanceLanguage.g:4677:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalInstanceLanguage.g:4677:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -14310,16 +14635,16 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalInstanceLanguage.g:4580:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalInstanceLanguage.g:4686: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 {
-            // InternalInstanceLanguage.g:4584:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalInstanceLanguage.g:4585:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalInstanceLanguage.g:4690:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalInstanceLanguage.g:4691:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_48);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -14348,17 +14673,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalInstanceLanguage.g:4592:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalInstanceLanguage.g:4698:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4596:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:4597:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4702:1: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4703:1: ( ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:4597:1: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:4598:2: ruleStringOrId
+            // InternalInstanceLanguage.g:4703:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4704:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -14389,14 +14714,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalInstanceLanguage.g:4607:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalInstanceLanguage.g:4713:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4611:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalInstanceLanguage.g:4612:2: rule__QualifiedName__Group__1__Impl
+            // InternalInstanceLanguage.g:4717:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalInstanceLanguage.g:4718:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -14422,35 +14747,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalInstanceLanguage.g:4618:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalInstanceLanguage.g:4724: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 {
-            // InternalInstanceLanguage.g:4622:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalInstanceLanguage.g:4623:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalInstanceLanguage.g:4728:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalInstanceLanguage.g:4729:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalInstanceLanguage.g:4623:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalInstanceLanguage.g:4624:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalInstanceLanguage.g:4729:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalInstanceLanguage.g:4730:2: ( rule__QualifiedName__Group_1__0 )*
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
-            // InternalInstanceLanguage.g:4625:2: ( rule__QualifiedName__Group_1__0 )*
-            loop32:
+            // InternalInstanceLanguage.g:4731:2: ( rule__QualifiedName__Group_1__0 )*
+            loop34:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
+                int alt34=2;
+                int LA34_0 = input.LA(1);
 
-                if ( (LA32_0==55) ) {
-                    alt32=1;
+                if ( (LA34_0==74) ) {
+                    alt34=1;
                 }
 
 
-                switch (alt32) {
+                switch (alt34) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:4625:3: rule__QualifiedName__Group_1__0
+            	    // InternalInstanceLanguage.g:4731:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_16);
+            	    pushFollow(FOLLOW_49);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -14460,7 +14785,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop34;
                 }
             } while (true);
 
@@ -14487,14 +14812,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalInstanceLanguage.g:4634:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalInstanceLanguage.g:4740: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 {
-            // InternalInstanceLanguage.g:4638:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalInstanceLanguage.g:4639:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalInstanceLanguage.g:4744:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalInstanceLanguage.g:4745:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_14);
             rule__QualifiedName__Group_1__0__Impl();
@@ -14525,20 +14850,20 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalInstanceLanguage.g:4646:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalInstanceLanguage.g:4752:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4650:1: ( ( '.' ) )
-            // InternalInstanceLanguage.g:4651:1: ( '.' )
+            // InternalInstanceLanguage.g:4756:1: ( ( '.' ) )
+            // InternalInstanceLanguage.g:4757:1: ( '.' )
             {
-            // InternalInstanceLanguage.g:4651:1: ( '.' )
-            // InternalInstanceLanguage.g:4652:2: '.'
+            // InternalInstanceLanguage.g:4757:1: ( '.' )
+            // InternalInstanceLanguage.g:4758:2: '.'
             {
              before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
-            match(input,55,FOLLOW_2); 
+            match(input,74,FOLLOW_2); 
              after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
 
             }
@@ -14562,14 +14887,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalInstanceLanguage.g:4661:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalInstanceLanguage.g:4767: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 {
-            // InternalInstanceLanguage.g:4665:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalInstanceLanguage.g:4666:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalInstanceLanguage.g:4771:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalInstanceLanguage.g:4772:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -14595,17 +14920,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalInstanceLanguage.g:4672:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalInstanceLanguage.g:4778:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4676:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:4677:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4782:1: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4783:1: ( ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:4677:1: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:4678:2: ruleStringOrId
+            // InternalInstanceLanguage.g:4783:1: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4784:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
@@ -14636,29 +14961,29 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__DefinitionAssignment_0"
-    // InternalInstanceLanguage.g:4688:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedNameRule ) ) ;
+    // InternalInstanceLanguage.g:4794:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4692:1: ( ( ( ruleQualifiedNameRule ) ) )
-            // InternalInstanceLanguage.g:4693:2: ( ( ruleQualifiedNameRule ) )
+            // InternalInstanceLanguage.g:4798:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:4799:2: ( ( ruleQualifiedName ) )
             {
-            // InternalInstanceLanguage.g:4693:2: ( ( ruleQualifiedNameRule ) )
-            // InternalInstanceLanguage.g:4694:3: ( ruleQualifiedNameRule )
+            // InternalInstanceLanguage.g:4799:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:4800:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); 
-            // InternalInstanceLanguage.g:4695:3: ( ruleQualifiedNameRule )
-            // InternalInstanceLanguage.g:4696:4: ruleQualifiedNameRule
+            // InternalInstanceLanguage.g:4801:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:4802:4: ruleQualifiedName
             {
-             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
-             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
 
             }
 
@@ -14685,17 +15010,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceRule__AttributesAssignment_1_1"
-    // InternalInstanceLanguage.g:4707:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
+    // InternalInstanceLanguage.g:4813:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
     public final void rule__InstanceRule__AttributesAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4711:1: ( ( ruleAttributeRule ) )
-            // InternalInstanceLanguage.g:4712:2: ( ruleAttributeRule )
+            // InternalInstanceLanguage.g:4817:1: ( ( ruleAttributeRule ) )
+            // InternalInstanceLanguage.g:4818:2: ( ruleAttributeRule )
             {
-            // InternalInstanceLanguage.g:4712:2: ( ruleAttributeRule )
-            // InternalInstanceLanguage.g:4713:3: ruleAttributeRule
+            // InternalInstanceLanguage.g:4818:2: ( ruleAttributeRule )
+            // InternalInstanceLanguage.g:4819:3: ruleAttributeRule
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAttributeRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -14726,21 +15051,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__DefinitionAssignment_0"
-    // InternalInstanceLanguage.g:4722:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
+    // InternalInstanceLanguage.g:4828:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
     public final void rule__AttributeRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4726:1: ( ( ( ruleStringOrId ) ) )
-            // InternalInstanceLanguage.g:4727:2: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4832:1: ( ( ( ruleStringOrId ) ) )
+            // InternalInstanceLanguage.g:4833:2: ( ( ruleStringOrId ) )
             {
-            // InternalInstanceLanguage.g:4727:2: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:4728:3: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4833:2: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4834:3: ( ruleStringOrId )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionCrossReference_0_0()); 
-            // InternalInstanceLanguage.g:4729:3: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:4730:4: ruleStringOrId
+            // InternalInstanceLanguage.g:4835:3: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4836:4: ruleStringOrId
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionStringOrIdParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
@@ -14775,17 +15100,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeRule__ValueAssignment_2"
-    // InternalInstanceLanguage.g:4741:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
+    // InternalInstanceLanguage.g:4847:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
     public final void rule__AttributeRule__ValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4745:1: ( ( ruleValueRule ) )
-            // InternalInstanceLanguage.g:4746:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4851:1: ( ( ruleValueRule ) )
+            // InternalInstanceLanguage.g:4852:2: ( ruleValueRule )
             {
-            // InternalInstanceLanguage.g:4746:2: ( ruleValueRule )
-            // InternalInstanceLanguage.g:4747:3: ruleValueRule
+            // InternalInstanceLanguage.g:4852:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4853:3: ruleValueRule
             {
              before(grammarAccess.getAttributeRuleAccess().getValueValueRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -14816,17 +15141,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_0"
-    // InternalInstanceLanguage.g:4756:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
+    // InternalInstanceLanguage.g:4862:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4760:1: ( ( ruleValueRule ) )
-            // InternalInstanceLanguage.g:4761:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4866:1: ( ( ruleValueRule ) )
+            // InternalInstanceLanguage.g:4867:2: ( ruleValueRule )
             {
-            // InternalInstanceLanguage.g:4761:2: ( ruleValueRule )
-            // InternalInstanceLanguage.g:4762:3: ruleValueRule
+            // InternalInstanceLanguage.g:4867:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4868:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -14857,17 +15182,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_1_1"
-    // InternalInstanceLanguage.g:4771:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
+    // InternalInstanceLanguage.g:4877:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4775:1: ( ( ruleValueRule ) )
-            // InternalInstanceLanguage.g:4776:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4881:1: ( ( ruleValueRule ) )
+            // InternalInstanceLanguage.g:4882:2: ( ruleValueRule )
             {
-            // InternalInstanceLanguage.g:4776:2: ( ruleValueRule )
-            // InternalInstanceLanguage.g:4777:3: ruleValueRule
+            // InternalInstanceLanguage.g:4882:2: ( ruleValueRule )
+            // InternalInstanceLanguage.g:4883:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -14898,17 +15223,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__LiteralValueRule__LiteralAssignment"
-    // InternalInstanceLanguage.g:4786:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
+    // InternalInstanceLanguage.g:4892:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
     public final void rule__LiteralValueRule__LiteralAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4790:1: ( ( ruleLiteralRule ) )
-            // InternalInstanceLanguage.g:4791:2: ( ruleLiteralRule )
+            // InternalInstanceLanguage.g:4896:1: ( ( ruleLiteralRule ) )
+            // InternalInstanceLanguage.g:4897:2: ( ruleLiteralRule )
             {
-            // InternalInstanceLanguage.g:4791:2: ( ruleLiteralRule )
-            // InternalInstanceLanguage.g:4792:3: ruleLiteralRule
+            // InternalInstanceLanguage.g:4897:2: ( ruleLiteralRule )
+            // InternalInstanceLanguage.g:4898:3: ruleLiteralRule
             {
              before(grammarAccess.getLiteralValueRuleAccess().getLiteralLiteralRuleParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -14939,21 +15264,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DataReferenceRule__DefinitionAssignment_2"
-    // InternalInstanceLanguage.g:4801:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
+    // InternalInstanceLanguage.g:4907:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
     public final void rule__DataReferenceRule__DefinitionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4805:1: ( ( ( ruleStringOrId ) ) )
-            // InternalInstanceLanguage.g:4806:2: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4911:1: ( ( ( ruleStringOrId ) ) )
+            // InternalInstanceLanguage.g:4912:2: ( ( ruleStringOrId ) )
             {
-            // InternalInstanceLanguage.g:4806:2: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:4807:3: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4912:2: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:4913:3: ( ruleStringOrId )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionCrossReference_2_0()); 
-            // InternalInstanceLanguage.g:4808:3: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:4809:4: ruleStringOrId
+            // InternalInstanceLanguage.g:4914:3: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:4915:4: ruleStringOrId
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -14988,17 +15313,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalInstanceLanguage.g:4820:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalInstanceLanguage.g:4926:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4824:1: ( ( ruleXorExpressionRule ) )
-            // InternalInstanceLanguage.g:4825:2: ( ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:4930:1: ( ( ruleXorExpressionRule ) )
+            // InternalInstanceLanguage.g:4931:2: ( ruleXorExpressionRule )
             {
-            // InternalInstanceLanguage.g:4825:2: ( ruleXorExpressionRule )
-            // InternalInstanceLanguage.g:4826:3: ruleXorExpressionRule
+            // InternalInstanceLanguage.g:4931:2: ( ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:4932:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15029,17 +15354,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalInstanceLanguage.g:4835:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalInstanceLanguage.g:4941:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4839:1: ( ( ruleXorExpressionRule ) )
-            // InternalInstanceLanguage.g:4840:2: ( ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:4945:1: ( ( ruleXorExpressionRule ) )
+            // InternalInstanceLanguage.g:4946:2: ( ruleXorExpressionRule )
             {
-            // InternalInstanceLanguage.g:4840:2: ( ruleXorExpressionRule )
-            // InternalInstanceLanguage.g:4841:3: ruleXorExpressionRule
+            // InternalInstanceLanguage.g:4946:2: ( ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:4947:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15070,17 +15395,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalInstanceLanguage.g:4850:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalInstanceLanguage.g:4956:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4854:1: ( ( ruleAndExpressionRule ) )
-            // InternalInstanceLanguage.g:4855:2: ( ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:4960:1: ( ( ruleAndExpressionRule ) )
+            // InternalInstanceLanguage.g:4961:2: ( ruleAndExpressionRule )
             {
-            // InternalInstanceLanguage.g:4855:2: ( ruleAndExpressionRule )
-            // InternalInstanceLanguage.g:4856:3: ruleAndExpressionRule
+            // InternalInstanceLanguage.g:4961:2: ( ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:4962:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15111,17 +15436,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalInstanceLanguage.g:4865:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalInstanceLanguage.g:4971:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4869:1: ( ( ruleAndExpressionRule ) )
-            // InternalInstanceLanguage.g:4870:2: ( ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:4975:1: ( ( ruleAndExpressionRule ) )
+            // InternalInstanceLanguage.g:4976:2: ( ruleAndExpressionRule )
             {
-            // InternalInstanceLanguage.g:4870:2: ( ruleAndExpressionRule )
-            // InternalInstanceLanguage.g:4871:3: ruleAndExpressionRule
+            // InternalInstanceLanguage.g:4976:2: ( ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:4977:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15152,17 +15477,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalInstanceLanguage.g:4880:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalInstanceLanguage.g:4986:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4884:1: ( ( ruleNotExpressionRule ) )
-            // InternalInstanceLanguage.g:4885:2: ( ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:4990:1: ( ( ruleNotExpressionRule ) )
+            // InternalInstanceLanguage.g:4991:2: ( ruleNotExpressionRule )
             {
-            // InternalInstanceLanguage.g:4885:2: ( ruleNotExpressionRule )
-            // InternalInstanceLanguage.g:4886:3: ruleNotExpressionRule
+            // InternalInstanceLanguage.g:4991:2: ( ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:4992:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15193,17 +15518,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalInstanceLanguage.g:4895:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalInstanceLanguage.g:5001:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4899:1: ( ( ruleNotExpressionRule ) )
-            // InternalInstanceLanguage.g:4900:2: ( ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:5005:1: ( ( ruleNotExpressionRule ) )
+            // InternalInstanceLanguage.g:5006:2: ( ruleNotExpressionRule )
             {
-            // InternalInstanceLanguage.g:4900:2: ( ruleNotExpressionRule )
-            // InternalInstanceLanguage.g:4901:3: ruleNotExpressionRule
+            // InternalInstanceLanguage.g:5006:2: ( ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:5007:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15234,24 +15559,24 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalInstanceLanguage.g:4910:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalInstanceLanguage.g:5016:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4914:1: ( ( ( '!' ) ) )
-            // InternalInstanceLanguage.g:4915:2: ( ( '!' ) )
+            // InternalInstanceLanguage.g:5020:1: ( ( ( '!' ) ) )
+            // InternalInstanceLanguage.g:5021:2: ( ( '!' ) )
             {
-            // InternalInstanceLanguage.g:4915:2: ( ( '!' ) )
-            // InternalInstanceLanguage.g:4916:3: ( '!' )
+            // InternalInstanceLanguage.g:5021:2: ( ( '!' ) )
+            // InternalInstanceLanguage.g:5022:3: ( '!' )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            // InternalInstanceLanguage.g:4917:3: ( '!' )
-            // InternalInstanceLanguage.g:4918:4: '!'
+            // InternalInstanceLanguage.g:5023:3: ( '!' )
+            // InternalInstanceLanguage.g:5024:4: '!'
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            match(input,74,FOLLOW_2); 
+            match(input,75,FOLLOW_2); 
              after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
 
             }
@@ -15279,17 +15604,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalInstanceLanguage.g:4929:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalInstanceLanguage.g:5035:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4933:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalInstanceLanguage.g:4934:2: ( ruleComparisonExpressionRule )
+            // InternalInstanceLanguage.g:5039:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalInstanceLanguage.g:5040:2: ( ruleComparisonExpressionRule )
             {
-            // InternalInstanceLanguage.g:4934:2: ( ruleComparisonExpressionRule )
-            // InternalInstanceLanguage.g:4935:3: ruleComparisonExpressionRule
+            // InternalInstanceLanguage.g:5040:2: ( ruleComparisonExpressionRule )
+            // InternalInstanceLanguage.g:5041:3: ruleComparisonExpressionRule
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15320,17 +15645,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalInstanceLanguage.g:4944:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalInstanceLanguage.g:5050:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4948:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:4949:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5054:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:5055:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:4949:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:4950:3: ruleAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:5055:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5056:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15361,17 +15686,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalInstanceLanguage.g:4959:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalInstanceLanguage.g:5065:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4963:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalInstanceLanguage.g:4964:2: ( rulePartialComparisonExpressionRule )
+            // InternalInstanceLanguage.g:5069:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalInstanceLanguage.g:5070:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalInstanceLanguage.g:4964:2: ( rulePartialComparisonExpressionRule )
-            // InternalInstanceLanguage.g:4965:3: rulePartialComparisonExpressionRule
+            // InternalInstanceLanguage.g:5070:2: ( rulePartialComparisonExpressionRule )
+            // InternalInstanceLanguage.g:5071:3: rulePartialComparisonExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15402,17 +15727,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalInstanceLanguage.g:4974:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalInstanceLanguage.g:5080:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4978:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalInstanceLanguage.g:4979:2: ( ruleComparisonOperatorRule )
+            // InternalInstanceLanguage.g:5084:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalInstanceLanguage.g:5085:2: ( ruleComparisonOperatorRule )
             {
-            // InternalInstanceLanguage.g:4979:2: ( ruleComparisonOperatorRule )
-            // InternalInstanceLanguage.g:4980:3: ruleComparisonOperatorRule
+            // InternalInstanceLanguage.g:5085:2: ( ruleComparisonOperatorRule )
+            // InternalInstanceLanguage.g:5086:3: ruleComparisonOperatorRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15443,17 +15768,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalInstanceLanguage.g:4989:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalInstanceLanguage.g:5095:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:4993:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:4994:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5099:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:5100:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:4994:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:4995:3: ruleAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:5100:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5101:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15484,17 +15809,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalInstanceLanguage.g:5004:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalInstanceLanguage.g:5110:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5008:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalInstanceLanguage.g:5009:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:5114:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalInstanceLanguage.g:5115:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalInstanceLanguage.g:5009:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalInstanceLanguage.g:5010:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalInstanceLanguage.g:5115:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:5116:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15525,17 +15850,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalInstanceLanguage.g:5019:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalInstanceLanguage.g:5125:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5023:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalInstanceLanguage.g:5024:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalInstanceLanguage.g:5129:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalInstanceLanguage.g:5130:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalInstanceLanguage.g:5024:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalInstanceLanguage.g:5025:3: ruleAddOrSubtractOperatorRule
+            // InternalInstanceLanguage.g:5130:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalInstanceLanguage.g:5131:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15566,17 +15891,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalInstanceLanguage.g:5034:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalInstanceLanguage.g:5140:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5038:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalInstanceLanguage.g:5039:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:5144:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalInstanceLanguage.g:5145:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalInstanceLanguage.g:5039:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalInstanceLanguage.g:5040:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalInstanceLanguage.g:5145:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:5146:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15607,17 +15932,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalInstanceLanguage.g:5049:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalInstanceLanguage.g:5155:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5053:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalInstanceLanguage.g:5054:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5159:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalInstanceLanguage.g:5160:2: ( rulePowerOfExpressionRule )
             {
-            // InternalInstanceLanguage.g:5054:2: ( rulePowerOfExpressionRule )
-            // InternalInstanceLanguage.g:5055:3: rulePowerOfExpressionRule
+            // InternalInstanceLanguage.g:5160:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5161:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15648,17 +15973,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalInstanceLanguage.g:5064:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalInstanceLanguage.g:5170:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5068:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalInstanceLanguage.g:5069:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalInstanceLanguage.g:5174:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalInstanceLanguage.g:5175:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalInstanceLanguage.g:5069:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalInstanceLanguage.g:5070:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalInstanceLanguage.g:5175:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalInstanceLanguage.g:5176:3: ruleMultiplyDivideModuloOperatorRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15689,17 +16014,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalInstanceLanguage.g:5079:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalInstanceLanguage.g:5185:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5083:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalInstanceLanguage.g:5084:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5189:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalInstanceLanguage.g:5190:2: ( rulePowerOfExpressionRule )
             {
-            // InternalInstanceLanguage.g:5084:2: ( rulePowerOfExpressionRule )
-            // InternalInstanceLanguage.g:5085:3: rulePowerOfExpressionRule
+            // InternalInstanceLanguage.g:5190:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5191:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15730,17 +16055,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalInstanceLanguage.g:5094:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalInstanceLanguage.g:5200:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5098:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:5099:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5204:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:5205:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:5099:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:5100:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:5205:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:5206:3: ruleUnaryAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15771,17 +16096,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalInstanceLanguage.g:5109:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalInstanceLanguage.g:5215:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5113:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalInstanceLanguage.g:5114:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5219:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalInstanceLanguage.g:5220:2: ( rulePowerOfExpressionRule )
             {
-            // InternalInstanceLanguage.g:5114:2: ( rulePowerOfExpressionRule )
-            // InternalInstanceLanguage.g:5115:3: rulePowerOfExpressionRule
+            // InternalInstanceLanguage.g:5220:2: ( rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:5221:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15812,17 +16137,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalInstanceLanguage.g:5124:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalInstanceLanguage.g:5230:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5128:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalInstanceLanguage.g:5129:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalInstanceLanguage.g:5234:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalInstanceLanguage.g:5235:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalInstanceLanguage.g:5129:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalInstanceLanguage.g:5130:3: ruleAddOrSubtractOperatorRule
+            // InternalInstanceLanguage.g:5235:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalInstanceLanguage.g:5236:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15853,17 +16178,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalInstanceLanguage.g:5139:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalInstanceLanguage.g:5245:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5143:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalInstanceLanguage.g:5144:2: ( ruleLiteralOrReferenceRule )
+            // InternalInstanceLanguage.g:5249:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalInstanceLanguage.g:5250:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalInstanceLanguage.g:5144:2: ( ruleLiteralOrReferenceRule )
-            // InternalInstanceLanguage.g:5145:3: ruleLiteralOrReferenceRule
+            // InternalInstanceLanguage.g:5250:2: ( ruleLiteralOrReferenceRule )
+            // InternalInstanceLanguage.g:5251:3: ruleLiteralOrReferenceRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15894,17 +16219,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalInstanceLanguage.g:5154:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalInstanceLanguage.g:5260:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5158:1: ( ( ruleExpressionRule ) )
-            // InternalInstanceLanguage.g:5159:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5264:1: ( ( ruleExpressionRule ) )
+            // InternalInstanceLanguage.g:5265:2: ( ruleExpressionRule )
             {
-            // InternalInstanceLanguage.g:5159:2: ( ruleExpressionRule )
-            // InternalInstanceLanguage.g:5160:3: ruleExpressionRule
+            // InternalInstanceLanguage.g:5265:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5266:3: ruleExpressionRule
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -15935,17 +16260,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalInstanceLanguage.g:5169:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalInstanceLanguage.g:5275:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5173:1: ( ( ruleFunctionNameRule ) )
-            // InternalInstanceLanguage.g:5174:2: ( ruleFunctionNameRule )
+            // InternalInstanceLanguage.g:5279:1: ( ( ruleFunctionNameRule ) )
+            // InternalInstanceLanguage.g:5280:2: ( ruleFunctionNameRule )
             {
-            // InternalInstanceLanguage.g:5174:2: ( ruleFunctionNameRule )
-            // InternalInstanceLanguage.g:5175:3: ruleFunctionNameRule
+            // InternalInstanceLanguage.g:5280:2: ( ruleFunctionNameRule )
+            // InternalInstanceLanguage.g:5281:3: ruleFunctionNameRule
             {
              before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -15976,17 +16301,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalInstanceLanguage.g:5184:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalInstanceLanguage.g:5290:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5188:1: ( ( ruleExpressionRule ) )
-            // InternalInstanceLanguage.g:5189:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5294:1: ( ( ruleExpressionRule ) )
+            // InternalInstanceLanguage.g:5295:2: ( ruleExpressionRule )
             {
-            // InternalInstanceLanguage.g:5189:2: ( ruleExpressionRule )
-            // InternalInstanceLanguage.g:5190:3: ruleExpressionRule
+            // InternalInstanceLanguage.g:5295:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5296:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16017,17 +16342,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalInstanceLanguage.g:5199:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalInstanceLanguage.g:5305:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5203:1: ( ( ruleExpressionRule ) )
-            // InternalInstanceLanguage.g:5204:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5309:1: ( ( ruleExpressionRule ) )
+            // InternalInstanceLanguage.g:5310:2: ( ruleExpressionRule )
             {
-            // InternalInstanceLanguage.g:5204:2: ( ruleExpressionRule )
-            // InternalInstanceLanguage.g:5205:3: ruleExpressionRule
+            // InternalInstanceLanguage.g:5310:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5311:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16057,18 +16382,67 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalInstanceLanguage.g:5320:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:5324:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:5325:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalInstanceLanguage.g:5325:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5326:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            // InternalInstanceLanguage.g:5327:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5328:4: ruleQualifiedName
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalInstanceLanguage.g:5214:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalInstanceLanguage.g:5339:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5218:1: ( ( RULE_DOUBLE ) )
-            // InternalInstanceLanguage.g:5219:2: ( RULE_DOUBLE )
+            // InternalInstanceLanguage.g:5343:1: ( ( RULE_DOUBLE ) )
+            // InternalInstanceLanguage.g:5344:2: ( RULE_DOUBLE )
             {
-            // InternalInstanceLanguage.g:5219:2: ( RULE_DOUBLE )
-            // InternalInstanceLanguage.g:5220:3: RULE_DOUBLE
+            // InternalInstanceLanguage.g:5344:2: ( RULE_DOUBLE )
+            // InternalInstanceLanguage.g:5345:3: RULE_DOUBLE
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
             match(input,RULE_DOUBLE,FOLLOW_2); 
@@ -16095,17 +16469,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalInstanceLanguage.g:5229:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalInstanceLanguage.g:5354:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5233:1: ( ( ruleFactorRule ) )
-            // InternalInstanceLanguage.g:5234:2: ( ruleFactorRule )
+            // InternalInstanceLanguage.g:5358:1: ( ( ruleFactorRule ) )
+            // InternalInstanceLanguage.g:5359:2: ( ruleFactorRule )
             {
-            // InternalInstanceLanguage.g:5234:2: ( ruleFactorRule )
-            // InternalInstanceLanguage.g:5235:3: ruleFactorRule
+            // InternalInstanceLanguage.g:5359:2: ( ruleFactorRule )
+            // InternalInstanceLanguage.g:5360:3: ruleFactorRule
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16136,17 +16510,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalInstanceLanguage.g:5244:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalInstanceLanguage.g:5369:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5248:1: ( ( RULE_INT ) )
-            // InternalInstanceLanguage.g:5249:2: ( RULE_INT )
+            // InternalInstanceLanguage.g:5373:1: ( ( RULE_INT ) )
+            // InternalInstanceLanguage.g:5374:2: ( RULE_INT )
             {
-            // InternalInstanceLanguage.g:5249:2: ( RULE_INT )
-            // InternalInstanceLanguage.g:5250:3: RULE_INT
+            // InternalInstanceLanguage.g:5374:2: ( RULE_INT )
+            // InternalInstanceLanguage.g:5375:3: RULE_INT
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -16173,17 +16547,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalInstanceLanguage.g:5259:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalInstanceLanguage.g:5384:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5263:1: ( ( ruleFactorRule ) )
-            // InternalInstanceLanguage.g:5264:2: ( ruleFactorRule )
+            // InternalInstanceLanguage.g:5388:1: ( ( ruleFactorRule ) )
+            // InternalInstanceLanguage.g:5389:2: ( ruleFactorRule )
             {
-            // InternalInstanceLanguage.g:5264:2: ( ruleFactorRule )
-            // InternalInstanceLanguage.g:5265:3: ruleFactorRule
+            // InternalInstanceLanguage.g:5389:2: ( ruleFactorRule )
+            // InternalInstanceLanguage.g:5390:3: ruleFactorRule
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16214,17 +16588,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalInstanceLanguage.g:5274:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalInstanceLanguage.g:5399:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5278:1: ( ( RULE_STRING ) )
-            // InternalInstanceLanguage.g:5279:2: ( RULE_STRING )
+            // InternalInstanceLanguage.g:5403:1: ( ( RULE_STRING ) )
+            // InternalInstanceLanguage.g:5404:2: ( RULE_STRING )
             {
-            // InternalInstanceLanguage.g:5279:2: ( RULE_STRING )
-            // InternalInstanceLanguage.g:5280:3: RULE_STRING
+            // InternalInstanceLanguage.g:5404:2: ( RULE_STRING )
+            // InternalInstanceLanguage.g:5405:3: RULE_STRING
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -16251,24 +16625,24 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalInstanceLanguage.g:5289:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalInstanceLanguage.g:5414:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5293:1: ( ( ( 'true' ) ) )
-            // InternalInstanceLanguage.g:5294:2: ( ( 'true' ) )
+            // InternalInstanceLanguage.g:5418:1: ( ( ( 'true' ) ) )
+            // InternalInstanceLanguage.g:5419:2: ( ( 'true' ) )
             {
-            // InternalInstanceLanguage.g:5294:2: ( ( 'true' ) )
-            // InternalInstanceLanguage.g:5295:3: ( 'true' )
+            // InternalInstanceLanguage.g:5419:2: ( ( 'true' ) )
+            // InternalInstanceLanguage.g:5420:3: ( 'true' )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            // InternalInstanceLanguage.g:5296:3: ( 'true' )
-            // InternalInstanceLanguage.g:5297:4: 'true'
+            // InternalInstanceLanguage.g:5421:3: ( 'true' )
+            // InternalInstanceLanguage.g:5422:4: 'true'
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            match(input,75,FOLLOW_2); 
+            match(input,76,FOLLOW_2); 
              after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
 
             }
@@ -16295,18 +16669,194 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalInstanceLanguage.g:5433:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:5437:1: ( ( ( 'abstract' ) ) )
+            // InternalInstanceLanguage.g:5438:2: ( ( 'abstract' ) )
+            {
+            // InternalInstanceLanguage.g:5438:2: ( ( 'abstract' ) )
+            // InternalInstanceLanguage.g:5439:3: ( 'abstract' )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            // InternalInstanceLanguage.g:5440:3: ( 'abstract' )
+            // InternalInstanceLanguage.g:5441:4: 'abstract'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            match(input,77,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalInstanceLanguage.g:5452:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:5456:1: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:5457:2: ( ruleStringOrId )
+            {
+            // InternalInstanceLanguage.g:5457:2: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:5458:3: ruleStringOrId
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalInstanceLanguage.g:5467:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:5471:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:5472:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalInstanceLanguage.g:5472:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5473:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            // InternalInstanceLanguage.g:5474:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5475:4: ruleQualifiedName
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalInstanceLanguage.g:5486:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalInstanceLanguage.g:5490:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalInstanceLanguage.g:5491:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalInstanceLanguage.g:5491:2: ( ruleAttributeDefinitionRule )
+            // InternalInstanceLanguage.g:5492:3: ruleAttributeDefinitionRule
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalInstanceLanguage.g:5308:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalInstanceLanguage.g:5501:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5312:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:5313:2: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:5505:1: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:5506:2: ( ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:5313:2: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:5314:3: ruleStringOrId
+            // InternalInstanceLanguage.g:5506:2: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:5507:3: ruleStringOrId
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16337,17 +16887,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalInstanceLanguage.g:5323:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalInstanceLanguage.g:5516:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5327:1: ( ( ruleTypeRule ) )
-            // InternalInstanceLanguage.g:5328:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5520:1: ( ( ruleTypeRule ) )
+            // InternalInstanceLanguage.g:5521:2: ( ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:5328:2: ( ruleTypeRule )
-            // InternalInstanceLanguage.g:5329:3: ruleTypeRule
+            // InternalInstanceLanguage.g:5521:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5522:3: ruleTypeRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -16378,17 +16928,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalInstanceLanguage.g:5338:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalInstanceLanguage.g:5531:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5342:1: ( ( ruleExpressionRule ) )
-            // InternalInstanceLanguage.g:5343:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5535:1: ( ( ruleExpressionRule ) )
+            // InternalInstanceLanguage.g:5536:2: ( ruleExpressionRule )
             {
-            // InternalInstanceLanguage.g:5343:2: ( ruleExpressionRule )
-            // InternalInstanceLanguage.g:5344:3: ruleExpressionRule
+            // InternalInstanceLanguage.g:5536:2: ( ruleExpressionRule )
+            // InternalInstanceLanguage.g:5537:3: ruleExpressionRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16419,21 +16969,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalInstanceLanguage.g:5353:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalInstanceLanguage.g:5546:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5357:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalInstanceLanguage.g:5358:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5550:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:5551:2: ( ( ruleQualifiedName ) )
             {
-            // InternalInstanceLanguage.g:5358:2: ( ( ruleQualifiedName ) )
-            // InternalInstanceLanguage.g:5359:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5551:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5552:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
-            // InternalInstanceLanguage.g:5360:3: ( ruleQualifiedName )
-            // InternalInstanceLanguage.g:5361:4: ruleQualifiedName
+            // InternalInstanceLanguage.g:5553:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5554:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16468,21 +17018,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalInstanceLanguage.g:5372:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalInstanceLanguage.g:5565:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5376:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalInstanceLanguage.g:5377:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5569:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:5570:2: ( ( ruleQualifiedName ) )
             {
-            // InternalInstanceLanguage.g:5377:2: ( ( ruleQualifiedName ) )
-            // InternalInstanceLanguage.g:5378:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5570:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5571:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
-            // InternalInstanceLanguage.g:5379:3: ( ruleQualifiedName )
-            // InternalInstanceLanguage.g:5380:4: ruleQualifiedName
+            // InternalInstanceLanguage.g:5572:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5573:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16517,17 +17067,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalInstanceLanguage.g:5391:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalInstanceLanguage.g:5584:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5395:1: ( ( ruleTypeRule ) )
-            // InternalInstanceLanguage.g:5396:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5588:1: ( ( ruleTypeRule ) )
+            // InternalInstanceLanguage.g:5589:2: ( ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:5396:2: ( ruleTypeRule )
-            // InternalInstanceLanguage.g:5397:3: ruleTypeRule
+            // InternalInstanceLanguage.g:5589:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5590:3: ruleTypeRule
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16558,17 +17108,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalInstanceLanguage.g:5406:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalInstanceLanguage.g:5599:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5410:1: ( ( ruleTypeRule ) )
-            // InternalInstanceLanguage.g:5411:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5603:1: ( ( ruleTypeRule ) )
+            // InternalInstanceLanguage.g:5604:2: ( ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:5411:2: ( ruleTypeRule )
-            // InternalInstanceLanguage.g:5412:3: ruleTypeRule
+            // InternalInstanceLanguage.g:5604:2: ( ruleTypeRule )
+            // InternalInstanceLanguage.g:5605:3: ruleTypeRule
             {
              before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -16599,17 +17149,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalInstanceLanguage.g:5421:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalInstanceLanguage.g:5614:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5425:1: ( ( ruleStringOrId ) )
-            // InternalInstanceLanguage.g:5426:2: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:5618:1: ( ( ruleStringOrId ) )
+            // InternalInstanceLanguage.g:5619:2: ( ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:5426:2: ( ruleStringOrId )
-            // InternalInstanceLanguage.g:5427:3: ruleStringOrId
+            // InternalInstanceLanguage.g:5619:2: ( ruleStringOrId )
+            // InternalInstanceLanguage.g:5620:3: ruleStringOrId
             {
              before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -16640,21 +17190,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalInstanceLanguage.g:5436:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalInstanceLanguage.g:5629:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalInstanceLanguage.g:5440:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalInstanceLanguage.g:5441:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5633:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:5634:2: ( ( ruleQualifiedName ) )
             {
-            // InternalInstanceLanguage.g:5441:2: ( ( ruleQualifiedName ) )
-            // InternalInstanceLanguage.g:5442:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5634:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:5635:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
-            // InternalInstanceLanguage.g:5443:3: ( ruleQualifiedName )
-            // InternalInstanceLanguage.g:5444:4: ruleQualifiedName
+            // InternalInstanceLanguage.g:5636:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:5637:4: ruleQualifiedName
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
             pushFollow(FOLLOW_2);
@@ -16690,6 +17240,51 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     // Delegated rules
 
 
+    protected DFA2 dfa2 = new DFA2(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\114\2\112\2\uffff\1\5\2\uffff\2\112";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\53\uffff\1\4\20\uffff\1\3",
+            "\13\7\27\uffff\1\7\2\uffff\1\7\1\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\27\uffff\1\7\2\uffff\1\7\1\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\27\uffff\1\7\2\uffff\1\7\1\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\27\uffff\1\7\2\uffff\1\7\1\uffff\4\7\1\6\1\7\15\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA2 extends DFA {
+
+        public DFA2(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 2;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1275:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -16698,34 +17293,34 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0001000000000030L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000000032L});
     public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00480000000081F0L,0x0000000000000800L});
+    public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x00480000000081F0L,0x0000000000001000L});
     public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x0004000000000000L});
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0008000000000000L});
-    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00580000000081F0L,0x0000000000000800L});
+    public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x00580000000081F0L,0x0000000000001000L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0020000000000000L});
     public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0020000000000002L});
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0040000000000000L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000000000030L});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0080000000000000L});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0080000000000002L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0100000000000000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0100000000000002L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x5048000000C081F0L,0x0000000000000C00L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0848000000C081F0L,0x0000000000001800L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0100000000000000L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0100000000000002L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0200000000000000L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0200000000000002L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0400000000000000L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0400000000000002L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x00000000003F0000L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x00000000003F0002L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000C00000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000C00002L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000007000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00000000003F0000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x00000000003F0002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000C00000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000C00002L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000007000000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0400000000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x1000000000000000L});
     public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0800000000000000L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x2000000000000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x1000000000000000L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x7048000000C081F0L,0x0000000000000C00L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x1848000000C081F0L,0x0000000000001800L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x2000000000000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x4000800000000000L});
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x8000000000000000L});
     public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0040000000000000L,0x00000000000003FBL});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0006000000000000L});
@@ -16739,5 +17334,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalContentAssis
     public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
     public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.instance.dsl.ui/src-gen/de/evoal/languages/model/instance/dsl/ui/contentassist/AbstractInstanceLanguageProposalProvider.java b/src/languages/de.evoal.languages.model.instance.dsl.ui/src-gen/de/evoal/languages/model/instance/dsl/ui/contentassist/AbstractInstanceLanguageProposalProvider.java
index 8c438856..ee9e98a3 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl.ui/src-gen/de/evoal/languages/model/instance/dsl/ui/contentassist/AbstractInstanceLanguageProposalProvider.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl.ui/src-gen/de/evoal/languages/model/instance/dsl/ui/contentassist/AbstractInstanceLanguageProposalProvider.java
@@ -59,7 +59,4 @@ public abstract class AbstractInstanceLanguageProposalProvider extends BaseLangu
 	public void complete_DataReferenceRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
 		// subclasses may override
 	}
-	public void complete_QualifiedNameRule(EObject model, RuleCall ruleCall, ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
-		// subclasses may override
-	}
 }
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtextbin b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtextbin
index 849ae0a69c648a218efe03ef185287f919cf83a8..469486c0febe09b56571ca16b0ba53a0eb9d86a3 100644
GIT binary patch
delta 3620
zcmZu!X<$^<70#WRH<Nu55|V)gLcl13&D7S~ih%DPq7{vxND-uJUy=um3^QS7!cwsh
z1>DdEd>|?=D4-~c2uLYb?QVCAUFl-A*hRWfTU%SP+VkCaZ-!XrN0PbcJKy=v_wGIS
z<v{1_m+U@hiL>@TYaNe!RhC>SDnkuZvYC9r$rNU|^W2=9>2_!IrQNW+L4-s0?6ABs
z6fOzZCzJmN6A`&eR9h82?z~hcRY+ws(a@xrTrFxXxke}7gyf;c<c<NXxFRZV7FCwL
zUkv`pTSP1rI?oErTSe3gT`lBoT%{_Pn!lhhz1Ph-nI2VVEt1#jTzNZ^#&OaeerrQr
z`R6$(`$as|>i0G@*9RS~)1uagA|>G#e@ny2IQMX;u&jvmMU5pl_?sKr>o=n8I3eU+
zSlbk`O2VfyxW#|Bp|t*P1d|-R2f=$ya8zx!r!Sq2%FT$kL6yI*v8irA-vdV9gV1;3
z7Kq=(G!JoaW!a#ud^9|s4SX1}HKwtxq8g1=bY~a!I=NJyT~?@V=y1FLa${TBBf76g
z?@Y8!*&$-=!eaxpg=|jQ^*Hc5*^$O615C<J1_bszp=qA<7bKc1cd;!o`4qa`?XOFm
zR`WD>7M?tbHSfXVUjN0!*!VuQJDJy>!P<WRy+mvL3s?j00M@?fw+|ara}dd`SbP?X
zU-F${ZSm&-oXBg>W9<ch<FHeveHp-s48%u%h1;mk_jR4WtT*T8^Ja^E6%Kg;#{86D
zGY)^9DI#)Ohmha!<?zJlZvwqo<K&A5_AS6>PoE*=w*hPY4qyun?7If`JqQBo`#{Mb
z0Oe|weU0tf3+=`Ba=BgZv^{&1y+-!iYwh*+R++bV$Q5#>eb|1*J|ZucGiAA4AYbwi
z4Nr{yp|<)Ejz?`WIdgfhd&1F($d~ykmdYRbwM|34AG3lorz>B`Io$;|<tO~zDsYC7
zKV^TcjI+p9kN9WMc90Q2hj^Tz!wfBTmlfPhPhQAhFuFY7$D0lHRLU=LSbt^Ih^YKE
zIMk7puW)kcIx$B6MsGo<P{^ga`U<YzsIM|szQ!XY;lJ5b7Y}yPZ#CHw|7g>QYhUL+
zqVjixWd7dB`~wP15b}=*qah{f4X_?%)-tFJNdKfs{|vukfnR)d|H6B;LjDyA$Na_3
z_1@n!?oHsTlF7?iaArPu82xv3GX5dzEcuqfv049Q6)`rKfq1O)U!Z%N>sL<A6p9l5
ztyBI3>hfe#2buRB#e1B2J^8LdG0}gSIFicnBjYdcf%Sc6t-c_gb&9-H5@e77Z)Gw$
z5Ec;%ftkY0Oc4VUf-EME&I1joDazCoW9k}z)ri{8QjIJFVRbS|*=*W%GJy$Ht|%)&
zS!saGQN@&{T>(;&R)aL|zdB-QXN|_yYQoM`fv0d<6An>?bs(%aKqedt!gPRCgbg5U
z^ySDpFQIY6bjvcAbCzqm;fk&a9XePR)Xcl1%uTzC+)N?Zcr*fL9tEwSk>G9N?rW#2
zYpmNHcxE(87ivYJIG!0UIxm2*zoWUBMPs1-6a!_-Hm+Wl(rkiGWdW7NOHOMzjZY4Z
z4YK4R5v9{vh&nkmPR|Y+&qSdWg3cJk;AJ$$hd|MO0!7kLsLno&&d%h{s%B+VJ;km*
zqNRQmT~#ELCdv(+rQG`%8amscgrJYJ4r>XMC|>UqAU=nQ>xy%=NIyX*o(p=OO@lF9
zWTGlE2}LFwEEhSCi&VG+gIblcQAwhO4yWMg8lD>_(uq@a4<^j?9g6;Z&|hFsO#eyr
z(8DYs#)mG{Q;w!`C_G`3po`e&xOx|H(y6>-UP<U;_&OIkoeUixIyWG=gujHY=fCA^
z@+ifrMINJb<lFLniqV-Qsgb7n?~H2prUx?YeXQ<MR#!@wab|?KgrFH*a$t7R<y;6G
zlV)Ps3}*Ti>hoZxS*SQx&=p4dY{pgaz0M<?50%~*bKu&Q>{|7uh<FI8IY@H@CG=_7
z#=}Cz5oTpqDc`Ohq~{u==QD%!I9d;Epf0mpyCLojK|LSP<l%jT+&~mE<^g!Rp!xU>
zFKGdb<@XA8WD3QLED)UvM9Z64<h3j^N((tL+6}m%^dP~DAowL_%oGJ*#?`Z0G4*n)
zde(~>5MAP=`_!#LIRNm81zl<HviI8u?YHdX_A&bnImdopL?e_Jkq{L^q9oGpdsd6T
zbo7vDAJ&%m{iDzJmhzwWoUqm9<XsVq(K75>Gg5*^mUAPN57TGa{RkgC6Xm|HQ|7OL
zbHz!4>x{0)A^#jQmxk4x@SqeoEUgT7L4<A)Q4d!w-FWhwmR4~Nt;UX!<_-=d;XNCY
z@SYvv4KWaAO*gY9i*7lIrdy%uHm&Ih&#twC{~N##6?D5X_>RE_<Bgj7Swi_Nm>!hJ
z8#T(WNBL47MF??eyi;4`BV_|p)PxUGHtLkSbczazh)0{0+`Dn^?=cwGb1yd8TtS=7
zk-3j`#ngk>$L0P&nIQ9yO%Ec6ck-4GLLbsl=6x8LtJH?s%BvyT=2y2hmTlLiAMxAU
z8oftZQ-pRv(_<#UxsP*hFpFsCN$h<B_C5)GUzm1rpVp9M5)-b&&3ETgy_idE`cqt1
zc@EomL)kJxPviF<_N<n#*&OcK6YSorHSB|Te4pu?*tq@-YcY4O+I#y^;V^o{ht!L?
Xo_z<<K4zbw)znWLXb)}UR}k?(j)NPd

delta 3537
zcmZu!d3;pW70!Kc-XxPrW=KfL3TX(bg2<><+X4x5PXm@3Q4kQNN?(!}m@>?SnF$3!
zo*Ssd4W5=NE+~qiNZo2J+I?^7Vs~0g7p05c?XIou`R==KX84);Bgx$Jo$q|-oO{o`
zdF6uV`ky#riL;)5-g+b6TWOi{YBAB0*9g-{t}x|RA>_3pY=t-2=}||NedKkb(lF++
z!}V-8t`KsYw`x-3Ion08l^oMRc>_Q*7<8kES=HGQCubM3xqR3>t*27n#8A0I#Enj`
zwyC{g$!OX!<(Q6qvk|H=JG^Mql(-1VTZCnW<gH?YC2#Y>O|#;+Bj^lPw-al-ysb^s
zn)*^3QbSHydaxzfb_Z;CvTdgOVXSrgvgB?S6H#I^Lt4v6PLh3BAp7odWbXlVH`Cwq
zR+@WZ+ZJShpNJv*=wQ~H-W&_xk9_xfJ<Z*b2XvMXdTX1zr|c6b{6j@LE>YOv0zC|e
z{odi`_ShrZ;Q-3g=)Ks|(7<Im$YrUNk0Q;-46DNIWJBZB^Ky<|aB@r6*qN|A#EF}|
zJuLTezzzd86)>;ACD!m!l%<!APr&#jjBPNs&0jxir^E6o*x~#%?9aeH8TOWC8OKL_
z4E&vdJPXLjy`wGN@#o++m)AalwIjP)r!9IOxVenON4~(h#`2>B^EZy<oP0i&&8UPw
ziSoHVCip2o6*S}1Oc9cc`h@(9cc`^_>SuvouW|Bo0qpaDt+;TBkY50-^NWD34Paji
zU|)tHpuPf>_^S72Ytt!v<^H6b+@0JecO=J>JCpllK6yZHNghicPrfYAmrG@}TqD2c
z^|m!fzOGwx)LYfo?0$oLSS7!Sj?c3q_CUUnvj+=da~}8cTO6vm#MytFzgvY(BaV<S
zav`jYz0Ohje+N>JFygyViNp0hhE_Qn3l8s8A-~V)>ij4lqowSvTz(+xEcrt*$3L$}
zMOgj_B+nvWd5pb{%|iZIZ$!IL$fX8G3y$9PKVhhR$vd-sa^$Bvo8#Uk?UUV~aW-N3
z^OMB=A`tgWu+A3pWtfqM67mYTPKX*K0&V_b{*@;EwP9A6m5Br_ylsEO+cqkH3x`+P
zA$~Ed%B(KA{my%#y~eFgBuWPM`hz+pf5dqDlji+B=lEw<Q_0n429@()K>Hfg)-22v
zN}PYyE`NiR>O?{tnfLFC_aET>X8>Ye_g_pLN@WU)_1|E9ompcG(pkHV_YLjxAMn;B
z5=ApJ|5q`;3FiL=Fd?XdiNnL70W}GxCWEObP&S)(?2Iqk<!MN!??xf8#}bJ$gb0xZ
zehM=`RR%yNtYZGE0iR1nh#*2WBJ`(tFxcs0StzRgYIJ}Sz~xR+t%?vsgm{4D2on$?
z?Q^LJb%;=p^2l7y-c;hBsJ$9=d5UHxZ&c)yPz@Vif|__oMVz#=&dC&9e~(f#Dt`h|
z1hpVcD~G9Dn8_FH%%D?>)TSe~BT^g<E+IJBWDaK06lBs7Aer%P96gfKP(ht6pk~M!
zPGwTwl^xO3r}F8dE*~%XaM3hYpbi&x>p?<qX9{DBpi{h&jz;%XcuX(zm=SoW3{FD^
zGdY9W<=NCwN&V?s(=4cuCK7>_l_yl0&VceW1C$VS7KgPqFp1)Q2YAmGHLfwSG*e6T
z=V-@sL0^|hoQ&Zh?^HqFg&^+^upDGI2Z=hxA+18qL8!S%q0cVZr5HW%b61$ut8)m<
zOg~T2CqXYYJ>NP+$YF?CK#UK)M-M*gW0N_%N6>t3Nu2vpNZILB-Y)37f)=2zE8%k<
zLybAUzx!T%xr)EYm*femrdIhXoh@IJuaiMDX)e{%LYCgNU^Fubsy@|g{G}!qz0X&d
ze1=7z&!VfSp9w>}B?MhiKJRD|$H%^;3$YxGaF;HEE}r4E7)nkRv?NIBVg^P>>>N*f
zK81RFFGV$%v832VfyGy{+*d-Epqe~bie^@}LY4E<lk{As^bBy|mF0ry{aO#|Lzf4e
z_6mrbDQMMrnm*ubf`bj*bU_37jT+N3?~JZV;Xx5HXvpjDIycI5!k}S8R9Mr!#a$iV
zp{{y&HLoQvHLU?V?}*AOT7&HpoJc>vlrRk%H0gt!Ux;^nVCD4Is`S#3=AXr4)7Rm2
zW#GBmROc}ZsUyr@znC8^so|6}w8&oP`u7j5XJqm+vx+%$iZkyQg9<?%Mv>PnK^w}d
zB<Mqa%R;mf=FNgOjemjCl?cBX-IKx9itJpIw&?V(LVDc3qMfyDWi1xD<K%ZW^26gB
z`5otZb8VoDu45_cKwQs${(BtvE^UK^?JS{sIo{~1xGvqG!{3PTRXk7B`#nTA@zrb5
z4)~10N6lluAvbH6TeOQZvD#ae+S_n;Zx0|s&`y+QrJ!BG_V!p;rTRZ1@2Uqr-Qi0U
zbZ1a*^$h22hZnfU`cS;TISXvCyFh%o`txqA?m>4kOO`mpPR`+>@9Vusi@6tiCnOSO
z5O)xl*L^HJME67Z-T=$|4=}$!bm+lxTCfi-cnEmDe;;OUtKR4CbMk|^)Cl$>H)cOe
z!!cJnAA!y_f)3#KK~b~GsM8l|sVDTP*6<kg@&#3nV6}%>OK_*E#y*Y+$NUH^`!LF)
Yr<{7WW5@~GOxtOU4$>Yz1%@g94>^?nvj6}9

diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.g b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.g
index 07de05b0..241e0ec6 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.g
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.g
@@ -88,7 +88,7 @@ ruleInstanceRule returns [EObject current=null]
 				{
 					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
 				}
-				ruleQualifiedNameRule
+				ruleQualifiedName
 				{
 					afterParserOrEnumRuleCall();
 				}
@@ -404,52 +404,6 @@ ruleDataReferenceRule returns [EObject current=null]
 	)
 ;
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule returns [String current=null]:
-	{ newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); }
-	iv_ruleQualifiedNameRule=ruleQualifiedNameRule
-	{ $current=$iv_ruleQualifiedNameRule.current.getText(); }
-	EOF;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		{
-			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-		}
-		this_StringOrId_0=ruleStringOrId
-		{
-			$current.merge(this_StringOrId_0);
-		}
-		{
-			afterParserOrEnumRuleCall();
-		}
-		(
-			kw='.'
-			{
-				$current.merge(kw);
-				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-			}
-			{
-				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-			}
-			this_StringOrId_2=ruleStringOrId
-			{
-				$current.merge(this_StringOrId_2);
-			}
-			{
-				afterParserOrEnumRuleCall();
-			}
-		)*
-	)
-;
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getExpressionRuleRule()); }
@@ -1310,21 +1264,49 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
 	(
 		(
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -1603,6 +1585,111 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.tokens b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.tokens
index 0fffa610..7b71ef17 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguage.tokens
@@ -1,63 +1,65 @@
-'!'=27
-'!='=48
-'%'=55
-'('=29
-')'=30
-'*'=53
-'+'=51
+'!'=26
+'!='=50
+'%'=57
+'('=28
+')'=29
+'*'=55
+'+'=53
 ','=20
-'-'=52
-'.'=23
-'/'=54
-':'=34
+'-'=54
+'.'=46
+'/'=56
+':'=35
 ':='=17
 ';'=18
-'<'=49
-'<='=50
-'='=47
-'>'=46
-'>='=45
-'AND'=26
-'E'=58
-'G'=61
-'M'=62
-'OR'=24
-'P'=59
-'T'=60
-'XOR'=25
-'Y'=56
-'Z'=57
+'<'=51
+'<='=52
+'='=49
+'>'=48
+'>='=47
+'AND'=25
+'E'=60
+'G'=63
+'M'=64
+'OR'=23
+'P'=61
+'T'=62
+'XOR'=24
+'Y'=58
+'Z'=59
 '['=19
-'\u00B5'=69
+'\u00B5'=71
 ']'=21
-'^'=28
-'a'=73
-'array'=44
-'boolean'=42
-'c'=67
-'d'=66
-'da'=65
+'^'=27
+'a'=75
+'abstract'=32
+'array'=45
+'boolean'=43
+'c'=69
+'d'=68
+'da'=67
 'data'=22
-'expression'=39
-'f'=72
-'false'=33
-'float'=41
-'h'=64
-'instance'=36
-'int'=40
-'k'=63
-'literal'=35
-'m'=68
-'n'=70
-'p'=71
-'string'=38
-'true'=32
-'value'=31
-'void'=43
-'y'=75
-'z'=74
+'expression'=40
+'extends'=34
+'f'=74
+'false'=31
+'float'=42
+'h'=66
+'instance'=37
+'int'=41
+'k'=65
+'literal'=36
+'m'=70
+'n'=72
+'p'=73
+'string'=39
+'true'=30
+'type'=33
+'void'=44
+'y'=77
+'z'=76
 '{'=15
-'|'=37
+'|'=38
 '}'=16
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
@@ -131,3 +133,5 @@ T__72=72
 T__73=73
 T__74=74
 T__75=75
+T__76=76
+T__77=77
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageLexer.java b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageLexer.java
index 23d62d15..4bac5625 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageLexer.java
@@ -62,6 +62,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
     public static final int T__38=38;
     public static final int T__39=39;
     public static final int T__33=33;
+    public static final int T__77=77;
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
@@ -72,6 +73,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
     public static final int T__31=31;
     public static final int T__75=75;
     public static final int T__32=32;
+    public static final int T__76=76;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -266,10 +268,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__23;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:19:7: ( '.' )
-            // InternalInstanceLanguage.g:19:9: '.'
+            // InternalInstanceLanguage.g:19:7: ( 'OR' )
+            // InternalInstanceLanguage.g:19:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -286,10 +289,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__24;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:20:7: ( 'OR' )
-            // InternalInstanceLanguage.g:20:9: 'OR'
+            // InternalInstanceLanguage.g:20:7: ( 'XOR' )
+            // InternalInstanceLanguage.g:20:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -307,10 +310,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__25;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:21:7: ( 'XOR' )
-            // InternalInstanceLanguage.g:21:9: 'XOR'
+            // InternalInstanceLanguage.g:21:7: ( 'AND' )
+            // InternalInstanceLanguage.g:21:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -328,11 +331,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__26;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:22:7: ( 'AND' )
-            // InternalInstanceLanguage.g:22:9: 'AND'
+            // InternalInstanceLanguage.g:22:7: ( '!' )
+            // InternalInstanceLanguage.g:22:9: '!'
             {
-            match("AND"); 
-
+            match('!'); 
 
             }
 
@@ -349,10 +351,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__27;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:23:7: ( '!' )
-            // InternalInstanceLanguage.g:23:9: '!'
+            // InternalInstanceLanguage.g:23:7: ( '^' )
+            // InternalInstanceLanguage.g:23:9: '^'
             {
-            match('!'); 
+            match('^'); 
 
             }
 
@@ -369,10 +371,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__28;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:24:7: ( '^' )
-            // InternalInstanceLanguage.g:24:9: '^'
+            // InternalInstanceLanguage.g:24:7: ( '(' )
+            // InternalInstanceLanguage.g:24:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -389,10 +391,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__29;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:25:7: ( '(' )
-            // InternalInstanceLanguage.g:25:9: '('
+            // InternalInstanceLanguage.g:25:7: ( ')' )
+            // InternalInstanceLanguage.g:25:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -409,10 +411,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__30;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:26:7: ( ')' )
-            // InternalInstanceLanguage.g:26:9: ')'
+            // InternalInstanceLanguage.g:26:7: ( 'true' )
+            // InternalInstanceLanguage.g:26:9: 'true'
             {
-            match(')'); 
+            match("true"); 
+
 
             }
 
@@ -429,10 +432,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:27:7: ( 'value' )
-            // InternalInstanceLanguage.g:27:9: 'value'
+            // InternalInstanceLanguage.g:27:7: ( 'false' )
+            // InternalInstanceLanguage.g:27:9: 'false'
             {
-            match("value"); 
+            match("false"); 
 
 
             }
@@ -450,10 +453,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:28:7: ( 'true' )
-            // InternalInstanceLanguage.g:28:9: 'true'
+            // InternalInstanceLanguage.g:28:7: ( 'abstract' )
+            // InternalInstanceLanguage.g:28:9: 'abstract'
             {
-            match("true"); 
+            match("abstract"); 
 
 
             }
@@ -471,10 +474,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:29:7: ( 'false' )
-            // InternalInstanceLanguage.g:29:9: 'false'
+            // InternalInstanceLanguage.g:29:7: ( 'type' )
+            // InternalInstanceLanguage.g:29:9: 'type'
             {
-            match("false"); 
+            match("type"); 
 
 
             }
@@ -492,10 +495,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:30:7: ( ':' )
-            // InternalInstanceLanguage.g:30:9: ':'
+            // InternalInstanceLanguage.g:30:7: ( 'extends' )
+            // InternalInstanceLanguage.g:30:9: 'extends'
             {
-            match(':'); 
+            match("extends"); 
+
 
             }
 
@@ -512,11 +516,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:31:7: ( 'literal' )
-            // InternalInstanceLanguage.g:31:9: 'literal'
+            // InternalInstanceLanguage.g:31:7: ( ':' )
+            // InternalInstanceLanguage.g:31:9: ':'
             {
-            match("literal"); 
-
+            match(':'); 
 
             }
 
@@ -533,10 +536,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:32:7: ( 'instance' )
-            // InternalInstanceLanguage.g:32:9: 'instance'
+            // InternalInstanceLanguage.g:32:7: ( 'literal' )
+            // InternalInstanceLanguage.g:32:9: 'literal'
             {
-            match("instance"); 
+            match("literal"); 
 
 
             }
@@ -554,10 +557,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:33:7: ( '|' )
-            // InternalInstanceLanguage.g:33:9: '|'
+            // InternalInstanceLanguage.g:33:7: ( 'instance' )
+            // InternalInstanceLanguage.g:33:9: 'instance'
             {
-            match('|'); 
+            match("instance"); 
+
 
             }
 
@@ -574,11 +578,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:34:7: ( 'string' )
-            // InternalInstanceLanguage.g:34:9: 'string'
+            // InternalInstanceLanguage.g:34:7: ( '|' )
+            // InternalInstanceLanguage.g:34:9: '|'
             {
-            match("string"); 
-
+            match('|'); 
 
             }
 
@@ -595,10 +598,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:35:7: ( 'expression' )
-            // InternalInstanceLanguage.g:35:9: 'expression'
+            // InternalInstanceLanguage.g:35:7: ( 'string' )
+            // InternalInstanceLanguage.g:35:9: 'string'
             {
-            match("expression"); 
+            match("string"); 
 
 
             }
@@ -616,10 +619,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:36:7: ( 'int' )
-            // InternalInstanceLanguage.g:36:9: 'int'
+            // InternalInstanceLanguage.g:36:7: ( 'expression' )
+            // InternalInstanceLanguage.g:36:9: 'expression'
             {
-            match("int"); 
+            match("expression"); 
 
 
             }
@@ -637,10 +640,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:37:7: ( 'float' )
-            // InternalInstanceLanguage.g:37:9: 'float'
+            // InternalInstanceLanguage.g:37:7: ( 'int' )
+            // InternalInstanceLanguage.g:37:9: 'int'
             {
-            match("float"); 
+            match("int"); 
 
 
             }
@@ -658,10 +661,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:38:7: ( 'boolean' )
-            // InternalInstanceLanguage.g:38:9: 'boolean'
+            // InternalInstanceLanguage.g:38:7: ( 'float' )
+            // InternalInstanceLanguage.g:38:9: 'float'
             {
-            match("boolean"); 
+            match("float"); 
 
 
             }
@@ -679,10 +682,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:39:7: ( 'void' )
-            // InternalInstanceLanguage.g:39:9: 'void'
+            // InternalInstanceLanguage.g:39:7: ( 'boolean' )
+            // InternalInstanceLanguage.g:39:9: 'boolean'
             {
-            match("void"); 
+            match("boolean"); 
 
 
             }
@@ -700,10 +703,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:40:7: ( 'array' )
-            // InternalInstanceLanguage.g:40:9: 'array'
+            // InternalInstanceLanguage.g:40:7: ( 'void' )
+            // InternalInstanceLanguage.g:40:9: 'void'
             {
-            match("array"); 
+            match("void"); 
 
 
             }
@@ -721,10 +724,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:41:7: ( '>=' )
-            // InternalInstanceLanguage.g:41:9: '>='
+            // InternalInstanceLanguage.g:41:7: ( 'array' )
+            // InternalInstanceLanguage.g:41:9: 'array'
             {
-            match(">="); 
+            match("array"); 
 
 
             }
@@ -742,10 +745,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:42:7: ( '>' )
-            // InternalInstanceLanguage.g:42:9: '>'
+            // InternalInstanceLanguage.g:42:7: ( '.' )
+            // InternalInstanceLanguage.g:42:9: '.'
             {
-            match('>'); 
+            match('.'); 
 
             }
 
@@ -762,10 +765,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:43:7: ( '=' )
-            // InternalInstanceLanguage.g:43:9: '='
+            // InternalInstanceLanguage.g:43:7: ( '>=' )
+            // InternalInstanceLanguage.g:43:9: '>='
             {
-            match('='); 
+            match(">="); 
+
 
             }
 
@@ -782,11 +786,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:44:7: ( '!=' )
-            // InternalInstanceLanguage.g:44:9: '!='
+            // InternalInstanceLanguage.g:44:7: ( '>' )
+            // InternalInstanceLanguage.g:44:9: '>'
             {
-            match("!="); 
-
+            match('>'); 
 
             }
 
@@ -803,10 +806,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:45:7: ( '<' )
-            // InternalInstanceLanguage.g:45:9: '<'
+            // InternalInstanceLanguage.g:45:7: ( '=' )
+            // InternalInstanceLanguage.g:45:9: '='
             {
-            match('<'); 
+            match('='); 
 
             }
 
@@ -823,10 +826,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:46:7: ( '<=' )
-            // InternalInstanceLanguage.g:46:9: '<='
+            // InternalInstanceLanguage.g:46:7: ( '!=' )
+            // InternalInstanceLanguage.g:46:9: '!='
             {
-            match("<="); 
+            match("!="); 
 
 
             }
@@ -844,10 +847,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:47:7: ( '+' )
-            // InternalInstanceLanguage.g:47:9: '+'
+            // InternalInstanceLanguage.g:47:7: ( '<' )
+            // InternalInstanceLanguage.g:47:9: '<'
             {
-            match('+'); 
+            match('<'); 
 
             }
 
@@ -864,10 +867,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:48:7: ( '-' )
-            // InternalInstanceLanguage.g:48:9: '-'
+            // InternalInstanceLanguage.g:48:7: ( '<=' )
+            // InternalInstanceLanguage.g:48:9: '<='
             {
-            match('-'); 
+            match("<="); 
+
 
             }
 
@@ -884,10 +888,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:49:7: ( '*' )
-            // InternalInstanceLanguage.g:49:9: '*'
+            // InternalInstanceLanguage.g:49:7: ( '+' )
+            // InternalInstanceLanguage.g:49:9: '+'
             {
-            match('*'); 
+            match('+'); 
 
             }
 
@@ -904,10 +908,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:50:7: ( '/' )
-            // InternalInstanceLanguage.g:50:9: '/'
+            // InternalInstanceLanguage.g:50:7: ( '-' )
+            // InternalInstanceLanguage.g:50:9: '-'
             {
-            match('/'); 
+            match('-'); 
 
             }
 
@@ -924,10 +928,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:51:7: ( '%' )
-            // InternalInstanceLanguage.g:51:9: '%'
+            // InternalInstanceLanguage.g:51:7: ( '*' )
+            // InternalInstanceLanguage.g:51:9: '*'
             {
-            match('%'); 
+            match('*'); 
 
             }
 
@@ -944,10 +948,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:52:7: ( 'Y' )
-            // InternalInstanceLanguage.g:52:9: 'Y'
+            // InternalInstanceLanguage.g:52:7: ( '/' )
+            // InternalInstanceLanguage.g:52:9: '/'
             {
-            match('Y'); 
+            match('/'); 
 
             }
 
@@ -964,10 +968,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:53:7: ( 'Z' )
-            // InternalInstanceLanguage.g:53:9: 'Z'
+            // InternalInstanceLanguage.g:53:7: ( '%' )
+            // InternalInstanceLanguage.g:53:9: '%'
             {
-            match('Z'); 
+            match('%'); 
 
             }
 
@@ -984,10 +988,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:54:7: ( 'E' )
-            // InternalInstanceLanguage.g:54:9: 'E'
+            // InternalInstanceLanguage.g:54:7: ( 'Y' )
+            // InternalInstanceLanguage.g:54:9: 'Y'
             {
-            match('E'); 
+            match('Y'); 
 
             }
 
@@ -1004,10 +1008,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:55:7: ( 'P' )
-            // InternalInstanceLanguage.g:55:9: 'P'
+            // InternalInstanceLanguage.g:55:7: ( 'Z' )
+            // InternalInstanceLanguage.g:55:9: 'Z'
             {
-            match('P'); 
+            match('Z'); 
 
             }
 
@@ -1024,10 +1028,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:56:7: ( 'T' )
-            // InternalInstanceLanguage.g:56:9: 'T'
+            // InternalInstanceLanguage.g:56:7: ( 'E' )
+            // InternalInstanceLanguage.g:56:9: 'E'
             {
-            match('T'); 
+            match('E'); 
 
             }
 
@@ -1044,10 +1048,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:57:7: ( 'G' )
-            // InternalInstanceLanguage.g:57:9: 'G'
+            // InternalInstanceLanguage.g:57:7: ( 'P' )
+            // InternalInstanceLanguage.g:57:9: 'P'
             {
-            match('G'); 
+            match('P'); 
 
             }
 
@@ -1064,10 +1068,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:58:7: ( 'M' )
-            // InternalInstanceLanguage.g:58:9: 'M'
+            // InternalInstanceLanguage.g:58:7: ( 'T' )
+            // InternalInstanceLanguage.g:58:9: 'T'
             {
-            match('M'); 
+            match('T'); 
 
             }
 
@@ -1084,10 +1088,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:59:7: ( 'k' )
-            // InternalInstanceLanguage.g:59:9: 'k'
+            // InternalInstanceLanguage.g:59:7: ( 'G' )
+            // InternalInstanceLanguage.g:59:9: 'G'
             {
-            match('k'); 
+            match('G'); 
 
             }
 
@@ -1104,10 +1108,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:60:7: ( 'h' )
-            // InternalInstanceLanguage.g:60:9: 'h'
+            // InternalInstanceLanguage.g:60:7: ( 'M' )
+            // InternalInstanceLanguage.g:60:9: 'M'
             {
-            match('h'); 
+            match('M'); 
 
             }
 
@@ -1124,11 +1128,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:61:7: ( 'da' )
-            // InternalInstanceLanguage.g:61:9: 'da'
+            // InternalInstanceLanguage.g:61:7: ( 'k' )
+            // InternalInstanceLanguage.g:61:9: 'k'
             {
-            match("da"); 
-
+            match('k'); 
 
             }
 
@@ -1145,10 +1148,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:62:7: ( 'd' )
-            // InternalInstanceLanguage.g:62:9: 'd'
+            // InternalInstanceLanguage.g:62:7: ( 'h' )
+            // InternalInstanceLanguage.g:62:9: 'h'
             {
-            match('d'); 
+            match('h'); 
 
             }
 
@@ -1165,10 +1168,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:63:7: ( 'c' )
-            // InternalInstanceLanguage.g:63:9: 'c'
+            // InternalInstanceLanguage.g:63:7: ( 'da' )
+            // InternalInstanceLanguage.g:63:9: 'da'
             {
-            match('c'); 
+            match("da"); 
+
 
             }
 
@@ -1185,10 +1189,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:64:7: ( 'm' )
-            // InternalInstanceLanguage.g:64:9: 'm'
+            // InternalInstanceLanguage.g:64:7: ( 'd' )
+            // InternalInstanceLanguage.g:64:9: 'd'
             {
-            match('m'); 
+            match('d'); 
 
             }
 
@@ -1205,10 +1209,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:65:7: ( '\\u00B5' )
-            // InternalInstanceLanguage.g:65:9: '\\u00B5'
+            // InternalInstanceLanguage.g:65:7: ( 'c' )
+            // InternalInstanceLanguage.g:65:9: 'c'
             {
-            match('\u00B5'); 
+            match('c'); 
 
             }
 
@@ -1225,10 +1229,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:66:7: ( 'n' )
-            // InternalInstanceLanguage.g:66:9: 'n'
+            // InternalInstanceLanguage.g:66:7: ( 'm' )
+            // InternalInstanceLanguage.g:66:9: 'm'
             {
-            match('n'); 
+            match('m'); 
 
             }
 
@@ -1245,10 +1249,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:67:7: ( 'p' )
-            // InternalInstanceLanguage.g:67:9: 'p'
+            // InternalInstanceLanguage.g:67:7: ( '\\u00B5' )
+            // InternalInstanceLanguage.g:67:9: '\\u00B5'
             {
-            match('p'); 
+            match('\u00B5'); 
 
             }
 
@@ -1265,10 +1269,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:68:7: ( 'f' )
-            // InternalInstanceLanguage.g:68:9: 'f'
+            // InternalInstanceLanguage.g:68:7: ( 'n' )
+            // InternalInstanceLanguage.g:68:9: 'n'
             {
-            match('f'); 
+            match('n'); 
 
             }
 
@@ -1285,10 +1289,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:69:7: ( 'a' )
-            // InternalInstanceLanguage.g:69:9: 'a'
+            // InternalInstanceLanguage.g:69:7: ( 'p' )
+            // InternalInstanceLanguage.g:69:9: 'p'
             {
-            match('a'); 
+            match('p'); 
 
             }
 
@@ -1305,10 +1309,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:70:7: ( 'z' )
-            // InternalInstanceLanguage.g:70:9: 'z'
+            // InternalInstanceLanguage.g:70:7: ( 'f' )
+            // InternalInstanceLanguage.g:70:9: 'f'
             {
-            match('z'); 
+            match('f'); 
 
             }
 
@@ -1325,10 +1329,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:71:7: ( 'y' )
-            // InternalInstanceLanguage.g:71:9: 'y'
+            // InternalInstanceLanguage.g:71:7: ( 'a' )
+            // InternalInstanceLanguage.g:71:9: 'a'
             {
-            match('y'); 
+            match('a'); 
 
             }
 
@@ -1340,11 +1344,51 @@ public class InternalInstanceLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__75"
 
+    // $ANTLR start "T__76"
+    public final void mT__76() throws RecognitionException {
+        try {
+            int _type = T__76;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalInstanceLanguage.g:72:7: ( 'z' )
+            // InternalInstanceLanguage.g:72:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__76"
+
+    // $ANTLR start "T__77"
+    public final void mT__77() throws RecognitionException {
+        try {
+            int _type = T__77;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalInstanceLanguage.g:73:7: ( 'y' )
+            // InternalInstanceLanguage.g:73:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__77"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:2616:21: ( '0' .. '9' )
-            // InternalInstanceLanguage.g:2616:23: '0' .. '9'
+            // InternalInstanceLanguage.g:2703:21: ( '0' .. '9' )
+            // InternalInstanceLanguage.g:2703:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1359,11 +1403,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalInstanceLanguage.g:2618:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalInstanceLanguage.g:2618:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:2705:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalInstanceLanguage.g:2705:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalInstanceLanguage.g:2618:30: ( '+' | '-' )?
+            // InternalInstanceLanguage.g:2705:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1389,7 +1433,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
             }
 
-            // InternalInstanceLanguage.g:2618:41: ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:2705:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1403,7 +1447,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2618:41: RULE_DIGIT
+            	    // InternalInstanceLanguage.g:2705:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1433,10 +1477,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2620:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalInstanceLanguage.g:2620:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:2707:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalInstanceLanguage.g:2707:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalInstanceLanguage.g:2620:12: ( '-' )?
+            // InternalInstanceLanguage.g:2707:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1445,7 +1489,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2620:12: '-'
+                    // InternalInstanceLanguage.g:2707:12: '-'
                     {
                     match('-'); 
 
@@ -1454,7 +1498,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
             }
 
-            // InternalInstanceLanguage.g:2620:17: ( RULE_DIGIT )+
+            // InternalInstanceLanguage.g:2707:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1468,7 +1512,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2620:17: RULE_DIGIT
+            	    // InternalInstanceLanguage.g:2707:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1500,15 +1544,15 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2622:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalInstanceLanguage.g:2622:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalInstanceLanguage.g:2709:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalInstanceLanguage.g:2709:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalInstanceLanguage.g:2622:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalInstanceLanguage.g:2709:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2622:16: RULE_INT RULE_EXPONENT
+                    // InternalInstanceLanguage.g:2709:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1516,11 +1560,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2622:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalInstanceLanguage.g:2709:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalInstanceLanguage.g:2622:52: ( RULE_DIGIT )*
+                    // InternalInstanceLanguage.g:2709:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1533,7 +1577,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalInstanceLanguage.g:2622:52: RULE_DIGIT
+                    	    // InternalInstanceLanguage.g:2709:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1545,7 +1589,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalInstanceLanguage.g:2622:64: ( RULE_EXPONENT )?
+                    // InternalInstanceLanguage.g:2709:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1554,7 +1598,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalInstanceLanguage.g:2622:64: RULE_EXPONENT
+                            // InternalInstanceLanguage.g:2709:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1585,11 +1629,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2624:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalInstanceLanguage.g:2624:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalInstanceLanguage.g:2711:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalInstanceLanguage.g:2711:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalInstanceLanguage.g:2624:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalInstanceLanguage.g:2711:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1605,7 +1649,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2624:20: '\\\\' .
+            	    // InternalInstanceLanguage.g:2711:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1613,7 +1657,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalInstanceLanguage.g:2624:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalInstanceLanguage.g:2711:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1650,11 +1694,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2626:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalInstanceLanguage.g:2626:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalInstanceLanguage.g:2713:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalInstanceLanguage.g:2713:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalInstanceLanguage.g:2626:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalInstanceLanguage.g:2713:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1670,7 +1714,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2626:24: '\\\\' .
+            	    // InternalInstanceLanguage.g:2713:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1678,7 +1722,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalInstanceLanguage.g:2626:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalInstanceLanguage.g:2713:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1715,10 +1759,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2628:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalInstanceLanguage.g:2628:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalInstanceLanguage.g:2715:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalInstanceLanguage.g:2715:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalInstanceLanguage.g:2628:11: ( '^' )?
+            // InternalInstanceLanguage.g:2715:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1727,7 +1771,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2628:11: '^'
+                    // InternalInstanceLanguage.g:2715:11: '^'
                     {
                     match('^'); 
 
@@ -1745,7 +1789,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalInstanceLanguage.g:2628:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalInstanceLanguage.g:2715:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1794,12 +1838,12 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2630:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalInstanceLanguage.g:2630:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalInstanceLanguage.g:2717:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalInstanceLanguage.g:2717:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalInstanceLanguage.g:2630:24: ( options {greedy=false; } : . )*
+            // InternalInstanceLanguage.g:2717:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1824,7 +1868,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2630:52: .
+            	    // InternalInstanceLanguage.g:2717:52: .
             	    {
             	    matchAny(); 
 
@@ -1854,12 +1898,12 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2632:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalInstanceLanguage.g:2632:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalInstanceLanguage.g:2719:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalInstanceLanguage.g:2719:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalInstanceLanguage.g:2632:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalInstanceLanguage.g:2719:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -1872,7 +1916,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2632:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalInstanceLanguage.g:2719: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();
@@ -1892,7 +1936,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalInstanceLanguage.g:2632:40: ( ( '\\r' )? '\\n' )?
+            // InternalInstanceLanguage.g:2719:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -1901,9 +1945,9 @@ public class InternalInstanceLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2632:41: ( '\\r' )? '\\n'
+                    // InternalInstanceLanguage.g:2719:41: ( '\\r' )? '\\n'
                     {
-                    // InternalInstanceLanguage.g:2632:41: ( '\\r' )?
+                    // InternalInstanceLanguage.g:2719:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -1912,7 +1956,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalInstanceLanguage.g:2632:41: '\\r'
+                            // InternalInstanceLanguage.g:2719:41: '\\r'
                             {
                             match('\r'); 
 
@@ -1944,10 +1988,10 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2634:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalInstanceLanguage.g:2634:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalInstanceLanguage.g:2721:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalInstanceLanguage.g:2721:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalInstanceLanguage.g:2634:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalInstanceLanguage.g:2721:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2001,8 +2045,8 @@ public class InternalInstanceLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalInstanceLanguage.g:2636:16: ( . )
-            // InternalInstanceLanguage.g:2636:18: .
+            // InternalInstanceLanguage.g:2723:16: ( . )
+            // InternalInstanceLanguage.g:2723:18: .
             {
             matchAny(); 
 
@@ -2017,8 +2061,8 @@ public class InternalInstanceLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalInstanceLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=70;
+        // InternalInstanceLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=72;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2449,63 +2493,77 @@ public class InternalInstanceLanguageLexer extends Lexer {
                 }
                 break;
             case 62 :
-                // InternalInstanceLanguage.g:1:376: RULE_INT
+                // InternalInstanceLanguage.g:1:376: T__76
                 {
-                mRULE_INT(); 
+                mT__76(); 
 
                 }
                 break;
             case 63 :
-                // InternalInstanceLanguage.g:1:385: RULE_DOUBLE
+                // InternalInstanceLanguage.g:1:382: T__77
                 {
-                mRULE_DOUBLE(); 
+                mT__77(); 
 
                 }
                 break;
             case 64 :
-                // InternalInstanceLanguage.g:1:397: RULE_STRING
+                // InternalInstanceLanguage.g:1:388: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 65 :
-                // InternalInstanceLanguage.g:1:409: RULE_QUOTED_ID
+                // InternalInstanceLanguage.g:1:397: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 66 :
-                // InternalInstanceLanguage.g:1:424: RULE_ID
+                // InternalInstanceLanguage.g:1:409: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 67 :
-                // InternalInstanceLanguage.g:1:432: RULE_ML_COMMENT
+                // InternalInstanceLanguage.g:1:421: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 68 :
-                // InternalInstanceLanguage.g:1:448: RULE_SL_COMMENT
+                // InternalInstanceLanguage.g:1:436: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 69 :
-                // InternalInstanceLanguage.g:1:464: RULE_WS
+                // InternalInstanceLanguage.g:1:444: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 70 :
-                // InternalInstanceLanguage.g:1:472: RULE_ANY_OTHER
+                // InternalInstanceLanguage.g:1:460: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 71 :
+                // InternalInstanceLanguage.g:1:476: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 72 :
+                // InternalInstanceLanguage.g:1:484: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2528,13 +2586,13 @@ public class InternalInstanceLanguageLexer extends Lexer {
     static final String DFA7_maxS =
         "\2\71\1\145\2\uffff";
     static final String DFA7_acceptS =
-        "\3\uffff\1\2\1\1";
+        "\3\uffff\1\1\1\2";
     static final String DFA7_specialS =
         "\5\uffff}>";
     static final String[] DFA7_transitionS = {
             "\1\1\2\uffff\12\2",
             "\12\2",
-            "\1\3\1\uffff\12\2\53\uffff\1\4",
+            "\1\4\1\uffff\12\2\53\uffff\1\3",
             "",
             ""
     };
@@ -2569,23 +2627,23 @@ public class InternalInstanceLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "2622:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "2709:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\3\uffff\1\74\4\uffff\1\102\1\uffff\3\103\1\111\1\112\2\uffff\2\103\1\122\2\103\1\uffff\3\103\1\132\1\134\1\uffff\1\137\1\uffff\1\142\1\uffff\1\146\1\uffff\1\150\1\151\1\152\1\153\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\uffff\1\164\1\165\1\166\1\167\1\170\2\70\13\uffff\1\176\3\uffff\1\177\2\103\5\uffff\5\103\1\uffff\2\103\1\uffff\4\103\7\uffff\1\170\33\uffff\1\103\2\uffff\1\u008f\1\u0090\7\103\1\u0098\4\103\1\u009d\2\uffff\1\103\1\u009f\1\u00a0\4\103\1\uffff\4\103\1\uffff\1\u00a9\2\uffff\1\u00aa\1\u00ab\5\103\1\u00b1\3\uffff\2\103\1\u00b4\2\103\1\uffff\1\u00b7\1\103\1\uffff\1\103\1\u00ba\1\uffff\1\u00bb\1\103\2\uffff\1\103\1\u00be\1\uffff";
+        "\3\uffff\1\74\4\uffff\1\102\3\103\1\110\1\111\2\uffff\1\103\1\120\1\123\3\103\1\uffff\3\103\1\uffff\1\135\1\uffff\1\140\1\uffff\1\142\1\uffff\1\147\1\uffff\1\151\1\152\1\153\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\163\1\uffff\1\165\1\166\1\167\1\170\1\171\2\70\13\uffff\1\177\2\uffff\1\u0080\2\103\5\uffff\4\103\1\uffff\2\103\1\uffff\3\103\1\uffff\3\103\10\uffff\1\171\32\uffff\1\103\2\uffff\1\u0092\1\u0093\12\103\1\u009e\3\103\1\u00a2\2\uffff\1\u00a3\1\u00a4\10\103\1\uffff\2\103\1\u00af\3\uffff\1\u00b0\1\u00b1\1\103\1\u00b3\6\103\3\uffff\1\103\1\uffff\4\103\1\u00bf\2\103\1\u00c2\1\103\1\u00c4\1\103\1\uffff\1\u00c6\1\u00c7\1\uffff\1\103\1\uffff\1\u00c9\2\uffff\1\103\1\uffff\1\u00cb\1\uffff";
     static final String DFA17_eofS =
-        "\u00bf\uffff";
+        "\u00cc\uffff";
     static final String DFA17_minS =
-        "\1\0\2\uffff\1\75\4\uffff\1\60\1\uffff\1\122\1\117\1\116\1\75\1\101\2\uffff\1\141\1\162\1\60\1\151\1\156\1\uffff\1\164\1\170\1\157\1\60\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\13\uffff\1\60\3\uffff\1\60\1\122\1\104\5\uffff\1\154\1\151\1\165\1\154\1\157\1\uffff\1\164\1\163\1\uffff\1\162\1\160\1\157\1\162\7\uffff\1\56\33\uffff\1\141\2\uffff\2\60\1\165\1\144\1\145\1\163\1\141\1\145\1\164\1\60\1\151\1\162\1\154\1\141\1\60\2\uffff\1\145\2\60\1\145\1\164\1\162\1\141\1\uffff\1\156\2\145\1\171\1\uffff\1\60\2\uffff\2\60\1\141\1\156\1\147\1\163\1\141\1\60\3\uffff\1\154\1\143\1\60\1\163\1\156\1\uffff\1\60\1\145\1\uffff\1\151\1\60\1\uffff\1\60\1\157\2\uffff\1\156\1\60\1\uffff";
+        "\1\0\2\uffff\1\75\4\uffff\1\60\1\122\1\117\1\116\1\75\1\101\2\uffff\1\162\2\60\1\170\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\13\uffff\1\60\2\uffff\1\60\1\122\1\104\5\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\1\160\1\164\1\163\1\uffff\1\162\1\157\1\151\10\uffff\1\56\32\uffff\1\141\2\uffff\2\60\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\60\1\151\1\154\1\144\1\60\2\uffff\2\60\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\1\60\3\uffff\2\60\1\141\1\60\1\144\1\163\1\141\1\156\1\147\1\141\3\uffff\1\143\1\uffff\2\163\1\154\1\143\1\60\1\156\1\164\1\60\1\151\1\60\1\145\1\uffff\2\60\1\uffff\1\157\1\uffff\1\60\2\uffff\1\156\1\uffff\1\60\1\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\2\uffff\1\75\4\uffff\1\172\1\uffff\1\122\1\117\1\116\1\75\1\172\2\uffff\1\157\1\162\1\172\1\151\1\156\1\uffff\1\164\1\170\1\157\1\172\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\13\uffff\1\172\3\uffff\1\172\1\122\1\104\5\uffff\1\154\1\151\1\165\1\154\1\157\1\uffff\2\164\1\uffff\1\162\1\160\1\157\1\162\7\uffff\1\145\33\uffff\1\141\2\uffff\2\172\1\165\1\144\1\145\1\163\1\141\1\145\1\164\1\172\1\151\1\162\1\154\1\141\1\172\2\uffff\1\145\2\172\1\145\1\164\1\162\1\141\1\uffff\1\156\2\145\1\171\1\uffff\1\172\2\uffff\2\172\1\141\1\156\1\147\1\163\1\141\1\172\3\uffff\1\154\1\143\1\172\1\163\1\156\1\uffff\1\172\1\145\1\uffff\1\151\1\172\1\uffff\1\172\1\157\2\uffff\1\156\1\172\1\uffff";
+        "\1\uffff\2\uffff\1\75\4\uffff\1\172\1\122\1\117\1\116\1\75\1\172\2\uffff\1\171\2\172\1\170\1\151\1\156\1\uffff\1\164\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\13\uffff\1\172\2\uffff\1\172\1\122\1\104\5\uffff\1\165\1\160\1\154\1\157\1\uffff\1\163\1\162\1\uffff\3\164\1\uffff\1\162\1\157\1\151\10\uffff\1\145\32\uffff\1\141\2\uffff\2\172\2\145\1\163\1\141\1\164\1\141\1\145\1\162\1\145\1\164\1\172\1\151\1\154\1\144\1\172\2\uffff\2\172\1\145\1\164\1\162\1\171\1\156\1\145\1\162\1\141\1\uffff\1\156\1\145\1\172\3\uffff\2\172\1\141\1\172\1\144\1\163\1\141\1\156\1\147\1\141\3\uffff\1\143\1\uffff\2\163\1\154\1\143\1\172\1\156\1\164\1\172\1\151\1\172\1\145\1\uffff\2\172\1\uffff\1\157\1\uffff\1\172\2\uffff\1\156\1\uffff\1\172\1\uffff";
     static final String DFA17_acceptS =
-        "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\6\1\7\1\uffff\1\11\5\uffff\1\17\1\20\5\uffff\1\27\5\uffff\1\41\1\uffff\1\45\1\uffff\1\47\1\uffff\1\51\13\uffff\1\67\7\uffff\1\102\1\105\1\106\1\1\1\2\1\3\1\24\1\4\1\5\1\6\1\7\1\uffff\1\64\1\102\1\11\3\uffff\1\42\1\15\1\16\1\17\1\20\5\uffff\1\72\2\uffff\1\27\4\uffff\1\73\1\37\1\40\1\41\1\44\1\43\1\45\1\uffff\1\46\1\47\1\103\1\104\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\65\1\66\1\67\1\70\1\71\1\74\1\75\1\76\1\77\1\100\1\101\1\105\1\uffff\1\63\1\12\17\uffff\1\13\1\14\7\uffff\1\32\4\uffff\1\10\1\uffff\1\35\1\22\10\uffff\1\21\1\23\1\33\5\uffff\1\36\2\uffff\1\30\2\uffff\1\25\2\uffff\1\34\1\26\2\uffff\1\31";
+        "\1\uffff\1\1\1\2\1\uffff\1\4\1\5\1\6\1\7\6\uffff\1\16\1\17\6\uffff\1\30\3\uffff\1\40\1\uffff\1\43\1\uffff\1\47\1\uffff\1\51\1\uffff\1\53\13\uffff\1\71\7\uffff\1\104\1\107\1\110\1\1\1\2\1\3\1\25\1\4\1\5\1\6\1\7\1\uffff\1\66\1\104\3\uffff\1\44\1\14\1\15\1\16\1\17\4\uffff\1\74\2\uffff\1\75\3\uffff\1\30\3\uffff\1\40\1\41\1\42\1\43\1\46\1\45\1\47\1\50\1\uffff\1\51\1\105\1\106\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64\1\67\1\70\1\71\1\72\1\73\1\76\1\77\1\100\1\101\1\102\1\103\1\107\1\uffff\1\65\1\11\21\uffff\1\12\1\13\12\uffff\1\33\3\uffff\1\10\1\20\1\23\12\uffff\1\36\1\21\1\34\1\uffff\1\37\13\uffff\1\31\2\uffff\1\24\1\uffff\1\26\1\uffff\1\35\1\22\1\uffff\1\27\1\uffff\1\32";
     static final String DFA17_specialS =
-        "\1\2\63\uffff\1\1\1\0\u0089\uffff}>";
+        "\1\1\63\uffff\1\2\1\0\u0096\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\70\2\67\2\70\1\67\22\70\1\67\1\15\1\64\2\70\1\42\1\70\1\65\1\17\1\20\1\40\1\36\1\6\1\37\1\11\1\41\12\63\1\3\1\4\1\35\1\34\1\33\2\70\1\14\3\66\1\45\1\66\1\50\5\66\1\51\1\66\1\12\1\46\3\66\1\47\3\66\1\13\1\43\1\44\1\5\1\70\1\7\1\16\1\66\1\70\1\32\1\31\1\54\1\10\1\30\1\23\1\66\1\53\1\25\1\66\1\52\1\24\1\55\1\57\1\66\1\60\2\66\1\27\1\22\1\66\1\21\2\66\1\62\1\61\1\1\1\26\1\2\67\70\1\56\uff4a\70",
+            "\11\70\2\67\2\70\1\67\22\70\1\67\1\14\1\64\2\70\1\42\1\70\1\65\1\16\1\17\1\40\1\36\1\6\1\37\1\32\1\41\12\63\1\3\1\4\1\35\1\34\1\33\2\70\1\13\3\66\1\45\1\66\1\50\5\66\1\51\1\66\1\11\1\46\3\66\1\47\3\66\1\12\1\43\1\44\1\5\1\70\1\7\1\15\1\66\1\70\1\22\1\30\1\54\1\10\1\23\1\21\1\66\1\53\1\25\1\66\1\52\1\24\1\55\1\57\1\66\1\60\2\66\1\27\1\20\1\66\1\31\2\66\1\62\1\61\1\1\1\26\1\2\67\70\1\56\uff4a\70",
             "",
             "",
             "\1\73",
@@ -2594,31 +2652,31 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\1\101\31\103",
-            "",
+            "\1\104",
             "\1\105",
             "\1\106",
             "\1\107",
-            "\1\110",
             "\32\103\4\uffff\1\103\1\uffff\32\103",
             "",
             "",
-            "\1\115\15\uffff\1\116",
-            "\1\117",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\1\120\12\103\1\121\16\103",
-            "\1\123",
+            "\1\114\6\uffff\1\115",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\1\116\12\103\1\117\16\103",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\1\103\1\121\17\103\1\122\10\103",
             "\1\124",
-            "",
+            "\1\125",
             "\1\126",
-            "\1\127",
+            "",
             "\1\130",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\21\103\1\131\10\103",
-            "\1\133",
+            "\1\131",
+            "\1\132",
+            "",
+            "\1\134",
             "",
-            "\1\136",
+            "\1\137",
             "",
-            "\12\141",
+            "\12\143",
             "",
-            "\1\144\4\uffff\1\145",
+            "\1\145\4\uffff\1\146",
             "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
@@ -2636,9 +2694,9 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\171\1\uffff\12\141\53\uffff\1\171",
-            "\0\172",
+            "\1\172\1\uffff\12\143\53\uffff\1\172",
             "\0\173",
+            "\0\174",
             "",
             "",
             "",
@@ -2650,41 +2708,41 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\23\103\1\175\6\103",
-            "",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\23\103\1\176\6\103",
             "",
             "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\u0080",
             "\1\u0081",
+            "\1\u0082",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0082",
             "\1\u0083",
             "\1\u0084",
             "\1\u0085",
             "\1\u0086",
             "",
             "\1\u0087",
-            "\1\u0088\1\u0089",
+            "\1\u0088",
             "",
-            "\1\u008a",
+            "\1\u008a\3\uffff\1\u0089",
             "\1\u008b",
-            "\1\u008c",
-            "\1\u008d",
+            "\1\u008c\1\u008d",
             "",
+            "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\1\171\1\uffff\12\141\53\uffff\1\171",
             "",
             "",
+            "\1\172\1\uffff\12\143\53\uffff\1\172",
             "",
             "",
             "",
@@ -2710,70 +2768,83 @@ public class InternalInstanceLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u008e",
+            "",
+            "\1\u0091",
             "",
             "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\u0091",
-            "\1\u0092",
-            "\1\u0093",
             "\1\u0094",
             "\1\u0095",
             "\1\u0096",
             "\1\u0097",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u0098",
             "\1\u0099",
             "\1\u009a",
             "\1\u009b",
             "\1\u009c",
+            "\1\u009d",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u009f",
+            "\1\u00a0",
+            "\1\u00a1",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "",
             "",
-            "\1\u009e",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\u00a1",
-            "\1\u00a2",
-            "\1\u00a3",
-            "\1\u00a4",
-            "",
             "\1\u00a5",
             "\1\u00a6",
             "\1\u00a7",
             "\1\u00a8",
-            "",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "",
-            "",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\1\u00ab",
             "\1\u00ac",
+            "",
             "\1\u00ad",
             "\1\u00ae",
-            "\1\u00af",
-            "\1\u00b0",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "",
             "",
             "",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             "\1\u00b2",
-            "\1\u00b3",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
+            "\1\u00b7",
+            "\1\u00b8",
+            "\1\u00b9",
+            "",
             "",
+            "",
+            "\1\u00ba",
+            "",
+            "\1\u00bb",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\u00b8",
+            "\1\u00c0",
+            "\1\u00c1",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u00c3",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\1\u00c5",
             "",
-            "\1\u00b9",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
+            "",
+            "\1\u00c8",
             "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
-            "\1\u00bc",
             "",
             "",
-            "\1\u00bd",
+            "\1\u00ca",
+            "",
             "\12\103\7\uffff\32\103\4\uffff\1\103\1\uffff\32\103",
             ""
     };
@@ -2808,7 +2879,7 @@ public class InternalInstanceLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
@@ -2818,23 +2889,13 @@ public class InternalInstanceLanguageLexer extends Lexer {
                         int LA17_53 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 123;}
+                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 124;}
 
                         else s = 56;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA17_52 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_52>='\u0000' && LA17_52<='\uFFFF')) ) {s = 122;}
-
-                        else s = 56;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -2854,27 +2915,27 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='d') ) {s = 8;}
 
-                        else if ( (LA17_0=='.') ) {s = 9;}
+                        else if ( (LA17_0=='O') ) {s = 9;}
 
-                        else if ( (LA17_0=='O') ) {s = 10;}
+                        else if ( (LA17_0=='X') ) {s = 10;}
 
-                        else if ( (LA17_0=='X') ) {s = 11;}
+                        else if ( (LA17_0=='A') ) {s = 11;}
 
-                        else if ( (LA17_0=='A') ) {s = 12;}
+                        else if ( (LA17_0=='!') ) {s = 12;}
 
-                        else if ( (LA17_0=='!') ) {s = 13;}
+                        else if ( (LA17_0=='^') ) {s = 13;}
 
-                        else if ( (LA17_0=='^') ) {s = 14;}
+                        else if ( (LA17_0=='(') ) {s = 14;}
 
-                        else if ( (LA17_0=='(') ) {s = 15;}
+                        else if ( (LA17_0==')') ) {s = 15;}
 
-                        else if ( (LA17_0==')') ) {s = 16;}
+                        else if ( (LA17_0=='t') ) {s = 16;}
 
-                        else if ( (LA17_0=='v') ) {s = 17;}
+                        else if ( (LA17_0=='f') ) {s = 17;}
 
-                        else if ( (LA17_0=='t') ) {s = 18;}
+                        else if ( (LA17_0=='a') ) {s = 18;}
 
-                        else if ( (LA17_0=='f') ) {s = 19;}
+                        else if ( (LA17_0=='e') ) {s = 19;}
 
                         else if ( (LA17_0=='l') ) {s = 20;}
 
@@ -2884,11 +2945,11 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='s') ) {s = 23;}
 
-                        else if ( (LA17_0=='e') ) {s = 24;}
+                        else if ( (LA17_0=='b') ) {s = 24;}
 
-                        else if ( (LA17_0=='b') ) {s = 25;}
+                        else if ( (LA17_0=='v') ) {s = 25;}
 
-                        else if ( (LA17_0=='a') ) {s = 26;}
+                        else if ( (LA17_0=='.') ) {s = 26;}
 
                         else if ( (LA17_0=='>') ) {s = 27;}
 
@@ -2950,6 +3011,16 @@ public class InternalInstanceLanguageLexer extends Lexer {
 
                         else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||LA17_0=='\\'||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 56;}
 
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA17_52 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_52>='\u0000' && LA17_52<='\uFFFF')) ) {s = 123;}
+
+                        else s = 56;
+
                         if ( s>=0 ) return s;
                         break;
             }
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageParser.java b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageParser.java
index 41eb95e4..f43b0a6d 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/parser/antlr/internal/InternalInstanceLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'{'", "'}'", "':='", "';'", "'['", "','", "']'", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'value'", "'true'", "'false'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'{'", "'}'", "':='", "';'", "'['", "','", "']'", "'data'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -74,6 +74,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     public static final int T__38=38;
     public static final int T__39=39;
     public static final int T__33=33;
+    public static final int T__77=77;
     public static final int T__34=34;
     public static final int T__35=35;
     public static final int T__36=36;
@@ -84,6 +85,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     public static final int T__31=31;
     public static final int T__75=75;
     public static final int T__32=32;
+    public static final int T__76=76;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -174,7 +176,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleInstanceRule"
-    // InternalInstanceLanguage.g:73:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
+    // InternalInstanceLanguage.g:73:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
     public final EObject ruleInstanceRule() throws RecognitionException {
         EObject current = null;
 
@@ -187,17 +189,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:79:2: ( ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
-            // InternalInstanceLanguage.g:80:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalInstanceLanguage.g:79:2: ( ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
+            // InternalInstanceLanguage.g:80:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
             {
-            // InternalInstanceLanguage.g:80:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
-            // InternalInstanceLanguage.g:81:3: ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
+            // InternalInstanceLanguage.g:80:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalInstanceLanguage.g:81:3: ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
             {
-            // InternalInstanceLanguage.g:81:3: ( ( ruleQualifiedNameRule ) )
-            // InternalInstanceLanguage.g:82:4: ( ruleQualifiedNameRule )
+            // InternalInstanceLanguage.g:81:3: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:82:4: ( ruleQualifiedName )
             {
-            // InternalInstanceLanguage.g:82:4: ( ruleQualifiedNameRule )
-            // InternalInstanceLanguage.g:83:5: ruleQualifiedNameRule
+            // InternalInstanceLanguage.g:82:4: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:83:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -208,7 +210,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
             				
             pushFollow(FOLLOW_3);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
@@ -541,8 +543,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             case RULE_DOUBLE:
             case RULE_INT:
             case RULE_STRING:
-            case 32:
-            case 33:
+            case 30:
+            case 31:
                 {
                 alt3=4;
                 }
@@ -727,7 +729,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             int alt5=2;
             int LA5_0 = input.LA(1);
 
-            if ( ((LA5_0>=RULE_DOUBLE && LA5_0<=RULE_ID)||LA5_0==19||LA5_0==22||(LA5_0>=32 && LA5_0<=33)) ) {
+            if ( ((LA5_0>=RULE_DOUBLE && LA5_0<=RULE_ID)||LA5_0==19||LA5_0==22||(LA5_0>=30 && LA5_0<=31)) ) {
                 alt5=1;
             }
             switch (alt5) {
@@ -1075,144 +1077,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalInstanceLanguage.g:408:1: entryRuleQualifiedNameRule returns [String current=null] : iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF ;
-    public final String entryRuleQualifiedNameRule() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleQualifiedNameRule = null;
-
-
-        try {
-            // InternalInstanceLanguage.g:408:57: (iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF )
-            // InternalInstanceLanguage.g:409:2: iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF
-            {
-             newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            iv_ruleQualifiedNameRule=ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             current =iv_ruleQualifiedNameRule.getText(); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalInstanceLanguage.g:415:1: ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
-    public final AntlrDatatypeRuleToken ruleQualifiedNameRule() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-        AntlrDatatypeRuleToken this_StringOrId_0 = null;
-
-        AntlrDatatypeRuleToken this_StringOrId_2 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalInstanceLanguage.g:421:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalInstanceLanguage.g:422:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            {
-            // InternalInstanceLanguage.g:422:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalInstanceLanguage.g:423:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            {
-
-            			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-            		
-            pushFollow(FOLLOW_11);
-            this_StringOrId_0=ruleStringOrId();
-
-            state._fsp--;
-
-
-            			current.merge(this_StringOrId_0);
-            		
-
-            			afterParserOrEnumRuleCall();
-            		
-            // InternalInstanceLanguage.g:433:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop6:
-            do {
-                int alt6=2;
-                int LA6_0 = input.LA(1);
-
-                if ( (LA6_0==23) ) {
-                    alt6=1;
-                }
-
-
-                switch (alt6) {
-            	case 1 :
-            	    // InternalInstanceLanguage.g:434:4: kw= '.' this_StringOrId_2= ruleStringOrId
-            	    {
-            	    kw=(Token)match(input,23,FOLLOW_10); 
-
-            	    				current.merge(kw);
-            	    				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-            	    			
-
-            	    				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-            	    			
-            	    pushFollow(FOLLOW_11);
-            	    this_StringOrId_2=ruleStringOrId();
-
-            	    state._fsp--;
-
-
-            	    				current.merge(this_StringOrId_2);
-            	    			
-
-            	    				afterParserOrEnumRuleCall();
-            	    			
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop6;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-
-            	leaveRule();
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalInstanceLanguage.g:454:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalInstanceLanguage.g:408:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1220,8 +1086,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:454:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalInstanceLanguage.g:455:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalInstanceLanguage.g:408:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalInstanceLanguage.g:409:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1248,7 +1114,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalInstanceLanguage.g:461:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalInstanceLanguage.g:415:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1259,8 +1125,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:467:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalInstanceLanguage.g:468:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalInstanceLanguage.g:421:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalInstanceLanguage.g:422:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
 
             		newCompositeNode(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall());
@@ -1294,7 +1160,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalInstanceLanguage.g:479:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalInstanceLanguage.g:433:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1302,8 +1168,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:479:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalInstanceLanguage.g:480:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalInstanceLanguage.g:433:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalInstanceLanguage.g:434:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1330,7 +1196,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalInstanceLanguage.g:486:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalInstanceLanguage.g:440:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1344,22 +1210,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:492:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalInstanceLanguage.g:493:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:446:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalInstanceLanguage.g:447:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalInstanceLanguage.g:493:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalInstanceLanguage.g:494:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalInstanceLanguage.g:447:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:448:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalInstanceLanguage.g:494:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalInstanceLanguage.g:495:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:448:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalInstanceLanguage.g:449:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalInstanceLanguage.g:495:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalInstanceLanguage.g:496:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalInstanceLanguage.g:449:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalInstanceLanguage.g:450:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_12);
+            pushFollow(FOLLOW_11);
             lv_subExpressions_0_0=ruleXorExpressionRule();
 
             state._fsp--;
@@ -1381,35 +1247,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:513:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
-            loop7:
+            // InternalInstanceLanguage.g:467:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            loop6:
             do {
-                int alt7=2;
-                int LA7_0 = input.LA(1);
+                int alt6=2;
+                int LA6_0 = input.LA(1);
 
-                if ( (LA7_0==24) ) {
-                    alt7=1;
+                if ( (LA6_0==23) ) {
+                    alt6=1;
                 }
 
 
-                switch (alt7) {
+                switch (alt6) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:514:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalInstanceLanguage.g:468:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,24,FOLLOW_13); 
+            	    otherlv_1=(Token)match(input,23,FOLLOW_12); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	    			
-            	    // InternalInstanceLanguage.g:518:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalInstanceLanguage.g:519:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalInstanceLanguage.g:472:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalInstanceLanguage.g:473:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:519:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalInstanceLanguage.g:520:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalInstanceLanguage.g:473:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalInstanceLanguage.g:474:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_12);
+            	    pushFollow(FOLLOW_11);
             	    lv_subExpressions_2_0=ruleXorExpressionRule();
 
             	    state._fsp--;
@@ -1436,7 +1302,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop7;
+            	    break loop6;
                 }
             } while (true);
 
@@ -1463,7 +1329,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalInstanceLanguage.g:542:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalInstanceLanguage.g:496:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1471,8 +1337,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:542:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalInstanceLanguage.g:543:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalInstanceLanguage.g:496:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalInstanceLanguage.g:497:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1499,7 +1365,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalInstanceLanguage.g:549:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalInstanceLanguage.g:503:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1513,22 +1379,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:555:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalInstanceLanguage.g:556:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:509:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalInstanceLanguage.g:510:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalInstanceLanguage.g:556:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalInstanceLanguage.g:557:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalInstanceLanguage.g:510:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:511:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalInstanceLanguage.g:557:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalInstanceLanguage.g:558:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:511:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalInstanceLanguage.g:512:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalInstanceLanguage.g:558:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalInstanceLanguage.g:559:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalInstanceLanguage.g:512:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalInstanceLanguage.g:513:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_14);
+            pushFollow(FOLLOW_13);
             lv_subExpressions_0_0=ruleAndExpressionRule();
 
             state._fsp--;
@@ -1550,35 +1416,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:576:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
-            loop8:
+            // InternalInstanceLanguage.g:530:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            loop7:
             do {
-                int alt8=2;
-                int LA8_0 = input.LA(1);
+                int alt7=2;
+                int LA7_0 = input.LA(1);
 
-                if ( (LA8_0==25) ) {
-                    alt8=1;
+                if ( (LA7_0==24) ) {
+                    alt7=1;
                 }
 
 
-                switch (alt8) {
+                switch (alt7) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:577:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalInstanceLanguage.g:531:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,25,FOLLOW_13); 
+            	    otherlv_1=(Token)match(input,24,FOLLOW_12); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	    			
-            	    // InternalInstanceLanguage.g:581:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalInstanceLanguage.g:582:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalInstanceLanguage.g:535:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalInstanceLanguage.g:536:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:582:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalInstanceLanguage.g:583:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalInstanceLanguage.g:536:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalInstanceLanguage.g:537:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_14);
+            	    pushFollow(FOLLOW_13);
             	    lv_subExpressions_2_0=ruleAndExpressionRule();
 
             	    state._fsp--;
@@ -1605,7 +1471,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop8;
+            	    break loop7;
                 }
             } while (true);
 
@@ -1632,7 +1498,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalInstanceLanguage.g:605:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalInstanceLanguage.g:559:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1640,8 +1506,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:605:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalInstanceLanguage.g:606:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalInstanceLanguage.g:559:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalInstanceLanguage.g:560:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1668,7 +1534,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalInstanceLanguage.g:612:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalInstanceLanguage.g:566:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1682,22 +1548,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:618:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalInstanceLanguage.g:619:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:572:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalInstanceLanguage.g:573:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalInstanceLanguage.g:619:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalInstanceLanguage.g:620:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalInstanceLanguage.g:573:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:574:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalInstanceLanguage.g:620:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalInstanceLanguage.g:621:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:574:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalInstanceLanguage.g:575:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalInstanceLanguage.g:621:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalInstanceLanguage.g:622:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalInstanceLanguage.g:575:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalInstanceLanguage.g:576:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_15);
+            pushFollow(FOLLOW_14);
             lv_subExpressions_0_0=ruleNotExpressionRule();
 
             state._fsp--;
@@ -1719,35 +1585,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:639:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
-            loop9:
+            // InternalInstanceLanguage.g:593:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            loop8:
             do {
-                int alt9=2;
-                int LA9_0 = input.LA(1);
+                int alt8=2;
+                int LA8_0 = input.LA(1);
 
-                if ( (LA9_0==26) ) {
-                    alt9=1;
+                if ( (LA8_0==25) ) {
+                    alt8=1;
                 }
 
 
-                switch (alt9) {
+                switch (alt8) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:640:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalInstanceLanguage.g:594:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,26,FOLLOW_13); 
+            	    otherlv_1=(Token)match(input,25,FOLLOW_12); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	    			
-            	    // InternalInstanceLanguage.g:644:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalInstanceLanguage.g:645:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalInstanceLanguage.g:598:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalInstanceLanguage.g:599:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:645:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalInstanceLanguage.g:646:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalInstanceLanguage.g:599:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalInstanceLanguage.g:600:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_15);
+            	    pushFollow(FOLLOW_14);
             	    lv_subExpressions_2_0=ruleNotExpressionRule();
 
             	    state._fsp--;
@@ -1774,7 +1640,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop9;
+            	    break loop8;
                 }
             } while (true);
 
@@ -1801,7 +1667,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalInstanceLanguage.g:668:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalInstanceLanguage.g:622:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1809,8 +1675,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:668:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalInstanceLanguage.g:669:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalInstanceLanguage.g:622:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalInstanceLanguage.g:623:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1837,7 +1703,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalInstanceLanguage.g:675:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalInstanceLanguage.g:629:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1849,27 +1715,27 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:681:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalInstanceLanguage.g:682:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalInstanceLanguage.g:635:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalInstanceLanguage.g:636:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalInstanceLanguage.g:682:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalInstanceLanguage.g:683:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalInstanceLanguage.g:636:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalInstanceLanguage.g:637:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalInstanceLanguage.g:683:3: ( (lv_negated_0_0= '!' ) )?
-            int alt10=2;
-            int LA10_0 = input.LA(1);
+            // InternalInstanceLanguage.g:637:3: ( (lv_negated_0_0= '!' ) )?
+            int alt9=2;
+            int LA9_0 = input.LA(1);
 
-            if ( (LA10_0==27) ) {
-                alt10=1;
+            if ( (LA9_0==26) ) {
+                alt9=1;
             }
-            switch (alt10) {
+            switch (alt9) {
                 case 1 :
-                    // InternalInstanceLanguage.g:684:4: (lv_negated_0_0= '!' )
+                    // InternalInstanceLanguage.g:638:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalInstanceLanguage.g:684:4: (lv_negated_0_0= '!' )
-                    // InternalInstanceLanguage.g:685:5: lv_negated_0_0= '!'
+                    // InternalInstanceLanguage.g:638:4: (lv_negated_0_0= '!' )
+                    // InternalInstanceLanguage.g:639:5: lv_negated_0_0= '!'
                     {
-                    lv_negated_0_0=(Token)match(input,27,FOLLOW_13); 
+                    lv_negated_0_0=(Token)match(input,26,FOLLOW_12); 
 
                     					newLeafNode(lv_negated_0_0, grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0());
                     				
@@ -1888,11 +1754,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:697:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalInstanceLanguage.g:698:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalInstanceLanguage.g:651:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalInstanceLanguage.g:652:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalInstanceLanguage.g:698:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalInstanceLanguage.g:699:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalInstanceLanguage.g:652:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalInstanceLanguage.g:653:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0());
@@ -1942,7 +1808,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalInstanceLanguage.g:720:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalInstanceLanguage.g:674:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1950,8 +1816,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:720:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalInstanceLanguage.g:721:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalInstanceLanguage.g:674:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalInstanceLanguage.g:675:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1978,7 +1844,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalInstanceLanguage.g:727:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalInstanceLanguage.g:681:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1991,22 +1857,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:733:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalInstanceLanguage.g:734:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalInstanceLanguage.g:687:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalInstanceLanguage.g:688:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalInstanceLanguage.g:734:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalInstanceLanguage.g:735:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalInstanceLanguage.g:688:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalInstanceLanguage.g:689:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalInstanceLanguage.g:735:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:736:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:689:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:690:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:736:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:737:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:690:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:691:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_16);
+            pushFollow(FOLLOW_15);
             lv_leftOperand_0_0=ruleAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -2028,28 +1894,28 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:754:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
-            loop11:
+            // InternalInstanceLanguage.g:708:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            loop10:
             do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
+                int alt10=2;
+                int LA10_0 = input.LA(1);
 
-                if ( ((LA11_0>=45 && LA11_0<=50)) ) {
-                    alt11=1;
+                if ( ((LA10_0>=47 && LA10_0<=52)) ) {
+                    alt10=1;
                 }
 
 
-                switch (alt11) {
+                switch (alt10) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:755:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalInstanceLanguage.g:709:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:755:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalInstanceLanguage.g:756:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalInstanceLanguage.g:709:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalInstanceLanguage.g:710:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0());
             	    				
-            	    pushFollow(FOLLOW_16);
+            	    pushFollow(FOLLOW_15);
             	    lv_comparison_1_0=rulePartialComparisonExpressionRule();
 
             	    state._fsp--;
@@ -2073,7 +1939,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop11;
+            	    break loop10;
                 }
             } while (true);
 
@@ -2100,7 +1966,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalInstanceLanguage.g:777:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalInstanceLanguage.g:731:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2108,8 +1974,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:777:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalInstanceLanguage.g:778:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalInstanceLanguage.g:731:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalInstanceLanguage.g:732:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2136,7 +2002,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalInstanceLanguage.g:784:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalInstanceLanguage.g:738:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2149,22 +2015,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:790:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalInstanceLanguage.g:791:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalInstanceLanguage.g:744:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalInstanceLanguage.g:745:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalInstanceLanguage.g:791:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalInstanceLanguage.g:792:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:745:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalInstanceLanguage.g:746:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalInstanceLanguage.g:792:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalInstanceLanguage.g:793:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalInstanceLanguage.g:746:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalInstanceLanguage.g:747:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalInstanceLanguage.g:793:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalInstanceLanguage.g:794:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalInstanceLanguage.g:747:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalInstanceLanguage.g:748:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0());
             				
-            pushFollow(FOLLOW_13);
+            pushFollow(FOLLOW_12);
             lv_operator_0_0=ruleComparisonOperatorRule();
 
             state._fsp--;
@@ -2186,11 +2052,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:811:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:812:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:765:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:766:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:812:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:813:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:766:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:767:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0());
@@ -2240,7 +2106,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:834:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalInstanceLanguage.g:788:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2248,8 +2114,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:834:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalInstanceLanguage.g:835:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalInstanceLanguage.g:788:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalInstanceLanguage.g:789:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2276,7 +2142,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:841:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalInstanceLanguage.g:795:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2291,22 +2157,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:847:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalInstanceLanguage.g:848:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:801:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalInstanceLanguage.g:802:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalInstanceLanguage.g:848:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalInstanceLanguage.g:849:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalInstanceLanguage.g:802:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:803:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalInstanceLanguage.g:849:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalInstanceLanguage.g:850:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:803:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalInstanceLanguage.g:804:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalInstanceLanguage.g:850:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalInstanceLanguage.g:851:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalInstanceLanguage.g:804:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalInstanceLanguage.g:805:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_17);
+            pushFollow(FOLLOW_16);
             lv_leftOperand_0_0=ruleMultiplyDivideModuloExpressionRule();
 
             state._fsp--;
@@ -2328,31 +2194,31 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:868:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
-            loop12:
+            // InternalInstanceLanguage.g:822:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            loop11:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
+                int alt11=2;
+                int LA11_0 = input.LA(1);
 
-                if ( ((LA12_0>=51 && LA12_0<=52)) ) {
-                    alt12=1;
+                if ( ((LA11_0>=53 && LA11_0<=54)) ) {
+                    alt11=1;
                 }
 
 
-                switch (alt12) {
+                switch (alt11) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:869:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalInstanceLanguage.g:823:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalInstanceLanguage.g:869:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalInstanceLanguage.g:870:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalInstanceLanguage.g:823:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalInstanceLanguage.g:824:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalInstanceLanguage.g:870:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalInstanceLanguage.g:871:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalInstanceLanguage.g:824:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalInstanceLanguage.g:825:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_13);
+            	    pushFollow(FOLLOW_12);
             	    lv_operators_1_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -2374,16 +2240,16 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             	    }
 
-            	    // InternalInstanceLanguage.g:888:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalInstanceLanguage.g:889:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalInstanceLanguage.g:842:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalInstanceLanguage.g:843:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:889:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalInstanceLanguage.g:890:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalInstanceLanguage.g:843:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalInstanceLanguage.g:844:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_17);
+            	    pushFollow(FOLLOW_16);
             	    lv_operands_2_0=ruleMultiplyDivideModuloExpressionRule();
 
             	    state._fsp--;
@@ -2410,7 +2276,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop11;
                 }
             } while (true);
 
@@ -2437,7 +2303,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalInstanceLanguage.g:912:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalInstanceLanguage.g:866:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2445,8 +2311,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:912:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalInstanceLanguage.g:913:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalInstanceLanguage.g:866:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalInstanceLanguage.g:867:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2473,7 +2339,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalInstanceLanguage.g:919:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalInstanceLanguage.g:873:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2488,22 +2354,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:925:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalInstanceLanguage.g:926:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:879:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalInstanceLanguage.g:880:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalInstanceLanguage.g:926:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalInstanceLanguage.g:927:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalInstanceLanguage.g:880:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalInstanceLanguage.g:881:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalInstanceLanguage.g:927:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalInstanceLanguage.g:928:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:881:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalInstanceLanguage.g:882:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalInstanceLanguage.g:928:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalInstanceLanguage.g:929:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalInstanceLanguage.g:882:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalInstanceLanguage.g:883:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_18);
+            pushFollow(FOLLOW_17);
             lv_leftOperand_0_0=rulePowerOfExpressionRule();
 
             state._fsp--;
@@ -2525,31 +2391,31 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:946:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
-            loop13:
+            // InternalInstanceLanguage.g:900:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            loop12:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
+                int alt12=2;
+                int LA12_0 = input.LA(1);
 
-                if ( ((LA13_0>=53 && LA13_0<=55)) ) {
-                    alt13=1;
+                if ( ((LA12_0>=55 && LA12_0<=57)) ) {
+                    alt12=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt12) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:947:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalInstanceLanguage.g:901:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalInstanceLanguage.g:947:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalInstanceLanguage.g:948:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalInstanceLanguage.g:901:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalInstanceLanguage.g:902:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalInstanceLanguage.g:948:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalInstanceLanguage.g:949:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalInstanceLanguage.g:902:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalInstanceLanguage.g:903:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_13);
+            	    pushFollow(FOLLOW_12);
             	    lv_operators_1_0=ruleMultiplyDivideModuloOperatorRule();
 
             	    state._fsp--;
@@ -2571,16 +2437,16 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             	    }
 
-            	    // InternalInstanceLanguage.g:966:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalInstanceLanguage.g:967:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalInstanceLanguage.g:920:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalInstanceLanguage.g:921:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalInstanceLanguage.g:967:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalInstanceLanguage.g:968:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalInstanceLanguage.g:921:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalInstanceLanguage.g:922:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_18);
+            	    pushFollow(FOLLOW_17);
             	    lv_operands_2_0=rulePowerOfExpressionRule();
 
             	    state._fsp--;
@@ -2607,7 +2473,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop12;
                 }
             } while (true);
 
@@ -2634,7 +2500,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalInstanceLanguage.g:990:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalInstanceLanguage.g:944:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2642,8 +2508,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:990:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalInstanceLanguage.g:991:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalInstanceLanguage.g:944:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalInstanceLanguage.g:945:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2670,7 +2536,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalInstanceLanguage.g:997:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalInstanceLanguage.g:951:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2684,22 +2550,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1003:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalInstanceLanguage.g:1004:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalInstanceLanguage.g:957:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalInstanceLanguage.g:958:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalInstanceLanguage.g:1004:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalInstanceLanguage.g:1005:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalInstanceLanguage.g:958:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalInstanceLanguage.g:959:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalInstanceLanguage.g:1005:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalInstanceLanguage.g:1006:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:959:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalInstanceLanguage.g:960:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalInstanceLanguage.g:1006:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalInstanceLanguage.g:1007:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalInstanceLanguage.g:960:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalInstanceLanguage.g:961:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_19);
+            pushFollow(FOLLOW_18);
             lv_leftOperand_0_0=ruleUnaryAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -2721,26 +2587,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1024:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
-            int alt14=2;
-            int LA14_0 = input.LA(1);
+            // InternalInstanceLanguage.g:978:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            int alt13=2;
+            int LA13_0 = input.LA(1);
 
-            if ( (LA14_0==28) ) {
-                alt14=1;
+            if ( (LA13_0==27) ) {
+                alt13=1;
             }
-            switch (alt14) {
+            switch (alt13) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1025:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalInstanceLanguage.g:979:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
-                    otherlv_1=(Token)match(input,28,FOLLOW_13); 
+                    otherlv_1=(Token)match(input,27,FOLLOW_12); 
 
                     				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                     			
-                    // InternalInstanceLanguage.g:1029:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalInstanceLanguage.g:1030:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalInstanceLanguage.g:983:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalInstanceLanguage.g:984:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalInstanceLanguage.g:1030:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalInstanceLanguage.g:1031:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalInstanceLanguage.g:984:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalInstanceLanguage.g:985:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0());
@@ -2796,7 +2662,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:1053:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalInstanceLanguage.g:1007:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2804,8 +2670,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1053:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalInstanceLanguage.g:1054:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalInstanceLanguage.g:1007:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalInstanceLanguage.g:1008:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2832,7 +2698,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalInstanceLanguage.g:1060:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalInstanceLanguage.g:1014:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2845,34 +2711,34 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1066:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalInstanceLanguage.g:1067:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalInstanceLanguage.g:1020:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalInstanceLanguage.g:1021:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalInstanceLanguage.g:1067:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalInstanceLanguage.g:1068:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalInstanceLanguage.g:1021:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalInstanceLanguage.g:1022:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalInstanceLanguage.g:1068:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
-            loop15:
+            // InternalInstanceLanguage.g:1022:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            loop14:
             do {
-                int alt15=2;
-                int LA15_0 = input.LA(1);
+                int alt14=2;
+                int LA14_0 = input.LA(1);
 
-                if ( ((LA15_0>=51 && LA15_0<=52)) ) {
-                    alt15=1;
+                if ( ((LA14_0>=53 && LA14_0<=54)) ) {
+                    alt14=1;
                 }
 
 
-                switch (alt15) {
+                switch (alt14) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:1069:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalInstanceLanguage.g:1023:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalInstanceLanguage.g:1069:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalInstanceLanguage.g:1070:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalInstanceLanguage.g:1023:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalInstanceLanguage.g:1024:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0());
             	    				
-            	    pushFollow(FOLLOW_13);
+            	    pushFollow(FOLLOW_12);
             	    lv_operators_0_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -2896,15 +2762,15 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop15;
+            	    break loop14;
                 }
             } while (true);
 
-            // InternalInstanceLanguage.g:1087:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalInstanceLanguage.g:1088:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalInstanceLanguage.g:1041:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalInstanceLanguage.g:1042:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalInstanceLanguage.g:1088:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalInstanceLanguage.g:1089:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalInstanceLanguage.g:1042:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalInstanceLanguage.g:1043:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
 
             					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0());
@@ -2954,7 +2820,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalInstanceLanguage.g:1110:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalInstanceLanguage.g:1064:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -2962,8 +2828,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1110:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalInstanceLanguage.g:1111:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalInstanceLanguage.g:1064:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalInstanceLanguage.g:1065:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2990,7 +2856,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalInstanceLanguage.g:1117:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalInstanceLanguage.g:1071:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -3007,47 +2873,15 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1123:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalInstanceLanguage.g:1124:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalInstanceLanguage.g:1077:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalInstanceLanguage.g:1078:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalInstanceLanguage.g:1124:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
-            int alt16=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt16=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 32:
-            case 33:
-                {
-                alt16=2;
-                }
-                break;
-            case 29:
-                {
-                alt16=3;
-                }
-                break;
-            case 31:
-                {
-                alt16=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 16, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt16) {
+            // InternalInstanceLanguage.g:1078:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            int alt15=4;
+            alt15 = dfa15.predict(input);
+            switch (alt15) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1125:3: this_CallRule_0= ruleCallRule
+                    // InternalInstanceLanguage.g:1079:3: this_CallRule_0= ruleCallRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0());
@@ -3065,7 +2899,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1134:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalInstanceLanguage.g:1088:3: this_LiteralRule_1= ruleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1());
@@ -3083,7 +2917,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1143:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalInstanceLanguage.g:1097:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2());
@@ -3101,7 +2935,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1152:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalInstanceLanguage.g:1106:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3());
@@ -3141,7 +2975,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalInstanceLanguage.g:1164:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalInstanceLanguage.g:1118:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -3149,8 +2983,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1164:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalInstanceLanguage.g:1165:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalInstanceLanguage.g:1118:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalInstanceLanguage.g:1119:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
              newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3177,7 +3011,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalInstanceLanguage.g:1171:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalInstanceLanguage.g:1125:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -3190,26 +3024,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1177:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalInstanceLanguage.g:1178:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalInstanceLanguage.g:1131:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalInstanceLanguage.g:1132:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalInstanceLanguage.g:1178:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalInstanceLanguage.g:1179:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalInstanceLanguage.g:1132:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalInstanceLanguage.g:1133:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,29,FOLLOW_13); 
+            otherlv_0=(Token)match(input,28,FOLLOW_12); 
 
             			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalInstanceLanguage.g:1183:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalInstanceLanguage.g:1184:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalInstanceLanguage.g:1137:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalInstanceLanguage.g:1138:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalInstanceLanguage.g:1184:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalInstanceLanguage.g:1185:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalInstanceLanguage.g:1138:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalInstanceLanguage.g:1139:5: lv_subExpression_1_0= ruleExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0());
             				
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_19);
             lv_subExpression_1_0=ruleExpressionRule();
 
             state._fsp--;
@@ -3231,7 +3065,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_2=(Token)match(input,30,FOLLOW_2); 
+            otherlv_2=(Token)match(input,29,FOLLOW_2); 
 
             			newLeafNode(otherlv_2, grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2());
             		
@@ -3258,7 +3092,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalInstanceLanguage.g:1210:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalInstanceLanguage.g:1164:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -3266,8 +3100,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1210:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalInstanceLanguage.g:1211:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalInstanceLanguage.g:1164:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalInstanceLanguage.g:1165:2: iv_ruleCallRule= ruleCallRule EOF
             {
              newCompositeNode(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3294,7 +3128,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalInstanceLanguage.g:1217:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalInstanceLanguage.g:1171:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -3312,22 +3146,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1223:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalInstanceLanguage.g:1224:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalInstanceLanguage.g:1177:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalInstanceLanguage.g:1178:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalInstanceLanguage.g:1224:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalInstanceLanguage.g:1225:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalInstanceLanguage.g:1178:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalInstanceLanguage.g:1179:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalInstanceLanguage.g:1225:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalInstanceLanguage.g:1226:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalInstanceLanguage.g:1179:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalInstanceLanguage.g:1180:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalInstanceLanguage.g:1226:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalInstanceLanguage.g:1227:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalInstanceLanguage.g:1180:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalInstanceLanguage.g:1181:5: lv_function_0_0= ruleFunctionNameRule
             {
 
             					newCompositeNode(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_20);
             lv_function_0_0=ruleFunctionNameRule();
 
             state._fsp--;
@@ -3349,31 +3183,31 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,29,FOLLOW_22); 
+            otherlv_1=(Token)match(input,28,FOLLOW_21); 
 
             			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalInstanceLanguage.g:1248:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
-            int alt18=2;
-            int LA18_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1202:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            int alt17=2;
+            int LA17_0 = input.LA(1);
 
-            if ( ((LA18_0>=RULE_DOUBLE && LA18_0<=RULE_ID)||LA18_0==27||LA18_0==29||(LA18_0>=31 && LA18_0<=33)||(LA18_0>=51 && LA18_0<=52)) ) {
-                alt18=1;
+            if ( ((LA17_0>=RULE_DOUBLE && LA17_0<=RULE_ID)||LA17_0==26||LA17_0==28||(LA17_0>=30 && LA17_0<=31)||(LA17_0>=53 && LA17_0<=54)) ) {
+                alt17=1;
             }
-            switch (alt18) {
+            switch (alt17) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1249:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalInstanceLanguage.g:1203:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalInstanceLanguage.g:1249:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalInstanceLanguage.g:1250:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalInstanceLanguage.g:1203:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalInstanceLanguage.g:1204:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalInstanceLanguage.g:1250:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalInstanceLanguage.g:1251:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalInstanceLanguage.g:1204:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalInstanceLanguage.g:1205:6: lv_parameters_2_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0());
                     					
-                    pushFollow(FOLLOW_23);
+                    pushFollow(FOLLOW_22);
                     lv_parameters_2_0=ruleExpressionRule();
 
                     state._fsp--;
@@ -3395,35 +3229,35 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
                     }
 
-                    // InternalInstanceLanguage.g:1268:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
-                    loop17:
+                    // InternalInstanceLanguage.g:1222:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    loop16:
                     do {
-                        int alt17=2;
-                        int LA17_0 = input.LA(1);
+                        int alt16=2;
+                        int LA16_0 = input.LA(1);
 
-                        if ( (LA17_0==20) ) {
-                            alt17=1;
+                        if ( (LA16_0==20) ) {
+                            alt16=1;
                         }
 
 
-                        switch (alt17) {
+                        switch (alt16) {
                     	case 1 :
-                    	    // InternalInstanceLanguage.g:1269:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalInstanceLanguage.g:1223:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,20,FOLLOW_13); 
+                    	    otherlv_3=(Token)match(input,20,FOLLOW_12); 
 
                     	    					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	    				
-                    	    // InternalInstanceLanguage.g:1273:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalInstanceLanguage.g:1274:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalInstanceLanguage.g:1227:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalInstanceLanguage.g:1228:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalInstanceLanguage.g:1274:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalInstanceLanguage.g:1275:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalInstanceLanguage.g:1228:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalInstanceLanguage.g:1229:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
 
                     	    							newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0());
                     	    						
-                    	    pushFollow(FOLLOW_23);
+                    	    pushFollow(FOLLOW_22);
                     	    lv_parameters_4_0=ruleExpressionRule();
 
                     	    state._fsp--;
@@ -3450,7 +3284,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     	    break;
 
                     	default :
-                    	    break loop17;
+                    	    break loop16;
                         }
                     } while (true);
 
@@ -3460,7 +3294,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_5=(Token)match(input,30,FOLLOW_2); 
+            otherlv_5=(Token)match(input,29,FOLLOW_2); 
 
             			newLeafNode(otherlv_5, grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3());
             		
@@ -3487,7 +3321,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalInstanceLanguage.g:1302:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
+    // InternalInstanceLanguage.g:1256:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
     public final EObject entryRuleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -3495,8 +3329,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1302:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
-            // InternalInstanceLanguage.g:1303:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
+            // InternalInstanceLanguage.g:1256:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
+            // InternalInstanceLanguage.g:1257:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3523,40 +3357,32 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalInstanceLanguage.g:1309:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalInstanceLanguage.g:1263:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1315:2: ( ( () otherlv_1= 'value' ) )
-            // InternalInstanceLanguage.g:1316:2: ( () otherlv_1= 'value' )
-            {
-            // InternalInstanceLanguage.g:1316:2: ( () otherlv_1= 'value' )
-            // InternalInstanceLanguage.g:1317:3: () otherlv_1= 'value'
-            {
-            // InternalInstanceLanguage.g:1317:3: ()
-            // InternalInstanceLanguage.g:1318:4: 
+            // InternalInstanceLanguage.g:1269:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalInstanceLanguage.g:1270:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
             {
 
-            				current = forceCreateModelElement(
-            					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-            					current);
-            			
-
-            }
-
-            otherlv_1=(Token)match(input,31,FOLLOW_2); 
+            		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+            	
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
 
-            			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-            		
+            state._fsp--;
 
-            }
 
+            		current = this_ConstantReferenceRule_0;
+            		afterParserOrEnumRuleCall();
+            	
 
             }
 
@@ -3576,17 +3402,112 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     // $ANTLR end "ruleValueReferenceRule"
 
 
-    // $ANTLR start "entryRuleLiteralRule"
-    // InternalInstanceLanguage.g:1332:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
-    public final EObject entryRuleLiteralRule() throws RecognitionException {
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalInstanceLanguage.g:1281:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        EObject iv_ruleLiteralRule = null;
+        EObject iv_ruleConstantReferenceRule = null;
 
 
         try {
-            // InternalInstanceLanguage.g:1332:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalInstanceLanguage.g:1333:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalInstanceLanguage.g:1281:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalInstanceLanguage.g:1282:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
+            {
+             newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantReferenceRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalInstanceLanguage.g:1288:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalInstanceLanguage.g:1294:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:1295:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalInstanceLanguage.g:1295:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:1296:3: ( ruleQualifiedName )
+            {
+            // InternalInstanceLanguage.g:1296:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:1297:4: ruleQualifiedName
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+            				}
+            			
+
+            				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+            			
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+
+            				afterParserOrEnumRuleCall();
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConstantReferenceRule"
+
+
+    // $ANTLR start "entryRuleLiteralRule"
+    // InternalInstanceLanguage.g:1314:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    public final EObject entryRuleLiteralRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleLiteralRule = null;
+
+
+        try {
+            // InternalInstanceLanguage.g:1314:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalInstanceLanguage.g:1315:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3613,7 +3534,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalInstanceLanguage.g:1339:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalInstanceLanguage.g:1321:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3628,39 +3549,39 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1345:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalInstanceLanguage.g:1346:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalInstanceLanguage.g:1327:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalInstanceLanguage.g:1328:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalInstanceLanguage.g:1346:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
-            int alt19=3;
+            // InternalInstanceLanguage.g:1328:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            int alt18=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
             case RULE_INT:
                 {
-                alt19=1;
+                alt18=1;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt19=2;
+                alt18=2;
                 }
                 break;
-            case 32:
-            case 33:
+            case 30:
+            case 31:
                 {
-                alt19=3;
+                alt18=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 19, 0, input);
+                    new NoViableAltException("", 18, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt19) {
+            switch (alt18) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1347:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalInstanceLanguage.g:1329:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0());
@@ -3678,7 +3599,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1356:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalInstanceLanguage.g:1338:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1());
@@ -3696,7 +3617,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1365:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalInstanceLanguage.g:1347:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2());
@@ -3736,7 +3657,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalInstanceLanguage.g:1377:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalInstanceLanguage.g:1359:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3744,8 +3665,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1377:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalInstanceLanguage.g:1378:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalInstanceLanguage.g:1359:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalInstanceLanguage.g:1360:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3772,7 +3693,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalInstanceLanguage.g:1384:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalInstanceLanguage.g:1366:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3785,28 +3706,28 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1390:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalInstanceLanguage.g:1391:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalInstanceLanguage.g:1372:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalInstanceLanguage.g:1373:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalInstanceLanguage.g:1391:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
-            int alt20=2;
-            int LA20_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1373:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            int alt19=2;
+            int LA19_0 = input.LA(1);
 
-            if ( (LA20_0==RULE_DOUBLE) ) {
-                alt20=1;
+            if ( (LA19_0==RULE_DOUBLE) ) {
+                alt19=1;
             }
-            else if ( (LA20_0==RULE_INT) ) {
-                alt20=2;
+            else if ( (LA19_0==RULE_INT) ) {
+                alt19=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 20, 0, input);
+                    new NoViableAltException("", 19, 0, input);
 
                 throw nvae;
             }
-            switch (alt20) {
+            switch (alt19) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1392:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalInstanceLanguage.g:1374:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0());
@@ -3824,7 +3745,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1401:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalInstanceLanguage.g:1383:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1());
@@ -3864,7 +3785,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalInstanceLanguage.g:1413:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalInstanceLanguage.g:1395:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3872,8 +3793,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1413:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalInstanceLanguage.g:1414:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalInstanceLanguage.g:1395:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalInstanceLanguage.g:1396:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3900,7 +3821,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalInstanceLanguage.g:1420:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalInstanceLanguage.g:1402:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -3912,19 +3833,19 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1426:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalInstanceLanguage.g:1427:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalInstanceLanguage.g:1408:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalInstanceLanguage.g:1409:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalInstanceLanguage.g:1427:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalInstanceLanguage.g:1428:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalInstanceLanguage.g:1409:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalInstanceLanguage.g:1410:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalInstanceLanguage.g:1428:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalInstanceLanguage.g:1429:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalInstanceLanguage.g:1410:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalInstanceLanguage.g:1411:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalInstanceLanguage.g:1429:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalInstanceLanguage.g:1430:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalInstanceLanguage.g:1411:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalInstanceLanguage.g:1412:5: lv_literal_0_0= RULE_DOUBLE
             {
-            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_24); 
+            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_23); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0());
             				
@@ -3944,19 +3865,19 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1446:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt21=2;
-            int LA21_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1428:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt20=2;
+            int LA20_0 = input.LA(1);
 
-            if ( ((LA21_0>=56 && LA21_0<=75)) ) {
-                alt21=1;
+            if ( ((LA20_0>=58 && LA20_0<=77)) ) {
+                alt20=1;
             }
-            switch (alt21) {
+            switch (alt20) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1447:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalInstanceLanguage.g:1429:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalInstanceLanguage.g:1447:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalInstanceLanguage.g:1448:5: lv_factor_1_0= ruleFactorRule
+                    // InternalInstanceLanguage.g:1429:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalInstanceLanguage.g:1430:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -4009,7 +3930,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalInstanceLanguage.g:1469:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalInstanceLanguage.g:1451:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4017,8 +3938,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1469:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalInstanceLanguage.g:1470:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalInstanceLanguage.g:1451:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalInstanceLanguage.g:1452:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4045,7 +3966,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalInstanceLanguage.g:1476:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalInstanceLanguage.g:1458:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4057,19 +3978,19 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1482:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalInstanceLanguage.g:1483:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalInstanceLanguage.g:1464:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalInstanceLanguage.g:1465:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalInstanceLanguage.g:1483:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalInstanceLanguage.g:1484:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalInstanceLanguage.g:1465:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalInstanceLanguage.g:1466:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalInstanceLanguage.g:1484:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalInstanceLanguage.g:1485:4: (lv_literal_0_0= RULE_INT )
+            // InternalInstanceLanguage.g:1466:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalInstanceLanguage.g:1467:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalInstanceLanguage.g:1485:4: (lv_literal_0_0= RULE_INT )
-            // InternalInstanceLanguage.g:1486:5: lv_literal_0_0= RULE_INT
+            // InternalInstanceLanguage.g:1467:4: (lv_literal_0_0= RULE_INT )
+            // InternalInstanceLanguage.g:1468:5: lv_literal_0_0= RULE_INT
             {
-            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_24); 
+            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_23); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0());
             				
@@ -4089,19 +4010,19 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1502:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt22=2;
-            int LA22_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1484:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt21=2;
+            int LA21_0 = input.LA(1);
 
-            if ( ((LA22_0>=56 && LA22_0<=75)) ) {
-                alt22=1;
+            if ( ((LA21_0>=58 && LA21_0<=77)) ) {
+                alt21=1;
             }
-            switch (alt22) {
+            switch (alt21) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1503:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalInstanceLanguage.g:1485:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalInstanceLanguage.g:1503:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalInstanceLanguage.g:1504:5: lv_factor_1_0= ruleFactorRule
+                    // InternalInstanceLanguage.g:1485:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalInstanceLanguage.g:1486:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -4154,7 +4075,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalInstanceLanguage.g:1525:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalInstanceLanguage.g:1507:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4162,8 +4083,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1525:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalInstanceLanguage.g:1526:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalInstanceLanguage.g:1507:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalInstanceLanguage.g:1508:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4190,7 +4111,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalInstanceLanguage.g:1532:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalInstanceLanguage.g:1514:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4200,14 +4121,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1538:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalInstanceLanguage.g:1539:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalInstanceLanguage.g:1520:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalInstanceLanguage.g:1521:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalInstanceLanguage.g:1539:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalInstanceLanguage.g:1540:3: (lv_value_0_0= RULE_STRING )
+            // InternalInstanceLanguage.g:1521:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalInstanceLanguage.g:1522:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalInstanceLanguage.g:1540:3: (lv_value_0_0= RULE_STRING )
-            // InternalInstanceLanguage.g:1541:4: lv_value_0_0= RULE_STRING
+            // InternalInstanceLanguage.g:1522:3: (lv_value_0_0= RULE_STRING )
+            // InternalInstanceLanguage.g:1523:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
 
@@ -4249,7 +4170,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalInstanceLanguage.g:1560:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalInstanceLanguage.g:1542:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4257,8 +4178,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1560:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalInstanceLanguage.g:1561:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalInstanceLanguage.g:1542:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalInstanceLanguage.g:1543:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4285,7 +4206,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalInstanceLanguage.g:1567:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalInstanceLanguage.g:1549:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4296,14 +4217,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1573:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalInstanceLanguage.g:1574:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalInstanceLanguage.g:1555:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalInstanceLanguage.g:1556:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalInstanceLanguage.g:1574:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalInstanceLanguage.g:1575:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalInstanceLanguage.g:1556:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalInstanceLanguage.g:1557:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalInstanceLanguage.g:1575:3: ()
-            // InternalInstanceLanguage.g:1576:4: 
+            // InternalInstanceLanguage.g:1557:3: ()
+            // InternalInstanceLanguage.g:1558:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4313,33 +4234,33 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1582:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1564:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( (LA23_0==32) ) {
-                alt23=1;
+            if ( (LA22_0==30) ) {
+                alt22=1;
             }
-            else if ( (LA23_0==33) ) {
-                alt23=2;
+            else if ( (LA22_0==31) ) {
+                alt22=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 23, 0, input);
+                    new NoViableAltException("", 22, 0, input);
 
                 throw nvae;
             }
-            switch (alt23) {
+            switch (alt22) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1583:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalInstanceLanguage.g:1565:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalInstanceLanguage.g:1583:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalInstanceLanguage.g:1584:5: (lv_value_1_0= 'true' )
+                    // InternalInstanceLanguage.g:1565:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalInstanceLanguage.g:1566:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalInstanceLanguage.g:1584:5: (lv_value_1_0= 'true' )
-                    // InternalInstanceLanguage.g:1585:6: lv_value_1_0= 'true'
+                    // InternalInstanceLanguage.g:1566:5: (lv_value_1_0= 'true' )
+                    // InternalInstanceLanguage.g:1567:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,32,FOLLOW_2); 
+                    lv_value_1_0=(Token)match(input,30,FOLLOW_2); 
 
                     						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
                     					
@@ -4359,9 +4280,9 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1598:4: otherlv_2= 'false'
+                    // InternalInstanceLanguage.g:1580:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,33,FOLLOW_2); 
+                    otherlv_2=(Token)match(input,31,FOLLOW_2); 
 
                     				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
                     			
@@ -4393,8 +4314,265 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalInstanceLanguage.g:1589:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTypeDefinitionRule = null;
+
+
+        try {
+            // InternalInstanceLanguage.g:1589:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalInstanceLanguage.g:1590:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            {
+             newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             current =iv_ruleTypeDefinitionRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalInstanceLanguage.g:1596:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_abstract_0_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_attributes_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalInstanceLanguage.g:1602:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalInstanceLanguage.g:1603:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            {
+            // InternalInstanceLanguage.g:1603:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalInstanceLanguage.g:1604:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            {
+            // InternalInstanceLanguage.g:1604:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt23=2;
+            int LA23_0 = input.LA(1);
+
+            if ( (LA23_0==32) ) {
+                alt23=1;
+            }
+            switch (alt23) {
+                case 1 :
+                    // InternalInstanceLanguage.g:1605:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalInstanceLanguage.g:1605:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalInstanceLanguage.g:1606:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,32,FOLLOW_24); 
+
+                    					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                    				
+
+                    					if (current==null) {
+                    						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    					}
+                    					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                    				
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,33,FOLLOW_10); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+            		
+            // InternalInstanceLanguage.g:1622:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalInstanceLanguage.g:1623:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalInstanceLanguage.g:1623:4: (lv_name_2_0= ruleStringOrId )
+            // InternalInstanceLanguage.g:1624:5: lv_name_2_0= ruleStringOrId
+            {
+
+            					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_25);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"name",
+            						lv_name_2_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalInstanceLanguage.g:1641:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==34) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // InternalInstanceLanguage.g:1642:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,34,FOLLOW_10); 
+
+                    				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                    			
+                    // InternalInstanceLanguage.g:1646:4: ( ( ruleQualifiedName ) )
+                    // InternalInstanceLanguage.g:1647:5: ( ruleQualifiedName )
+                    {
+                    // InternalInstanceLanguage.g:1647:5: ( ruleQualifiedName )
+                    // InternalInstanceLanguage.g:1648:6: ruleQualifiedName
+                    {
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    						}
+                    					
+
+                    						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                    					
+                    pushFollow(FOLLOW_26);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+
+
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,15,FOLLOW_4); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+            		
+            // InternalInstanceLanguage.g:1667:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop25:
+            do {
+                int alt25=2;
+                int LA25_0 = input.LA(1);
+
+                if ( ((LA25_0>=RULE_QUOTED_ID && LA25_0<=RULE_ID)) ) {
+                    alt25=1;
+                }
+
+
+                switch (alt25) {
+            	case 1 :
+            	    // InternalInstanceLanguage.g:1668:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalInstanceLanguage.g:1668:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalInstanceLanguage.g:1669:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+
+            	    					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	    				
+            	    pushFollow(FOLLOW_4);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+
+
+            	    					if (current==null) {
+            	    						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	    					}
+            	    					add(
+            	    						current,
+            	    						"attributes",
+            	    						lv_attributes_6_0,
+            	    						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	    					afterParserOrEnumRuleCall();
+            	    				
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop25;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,16,FOLLOW_2); 
+
+            			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalInstanceLanguage.g:1607:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalInstanceLanguage.g:1694:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4402,8 +4580,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1607:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalInstanceLanguage.g:1608:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalInstanceLanguage.g:1694:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalInstanceLanguage.g:1695:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4430,7 +4608,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalInstanceLanguage.g:1614:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalInstanceLanguage.g:1701:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4448,22 +4626,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1620:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalInstanceLanguage.g:1621:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalInstanceLanguage.g:1707:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalInstanceLanguage.g:1708:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalInstanceLanguage.g:1621:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalInstanceLanguage.g:1622:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalInstanceLanguage.g:1708:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalInstanceLanguage.g:1709:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalInstanceLanguage.g:1622:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalInstanceLanguage.g:1623:4: (lv_name_0_0= ruleStringOrId )
+            // InternalInstanceLanguage.g:1709:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalInstanceLanguage.g:1710:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:1623:4: (lv_name_0_0= ruleStringOrId )
-            // InternalInstanceLanguage.g:1624:5: lv_name_0_0= ruleStringOrId
+            // InternalInstanceLanguage.g:1710:4: (lv_name_0_0= ruleStringOrId )
+            // InternalInstanceLanguage.g:1711:5: lv_name_0_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_27);
             lv_name_0_0=ruleStringOrId();
 
             state._fsp--;
@@ -4485,20 +4663,20 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,34,FOLLOW_26); 
+            otherlv_1=(Token)match(input,35,FOLLOW_28); 
 
             			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
             		
-            // InternalInstanceLanguage.g:1645:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalInstanceLanguage.g:1646:4: (lv_type_2_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:1732:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalInstanceLanguage.g:1733:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:1646:4: (lv_type_2_0= ruleTypeRule )
-            // InternalInstanceLanguage.g:1647:5: lv_type_2_0= ruleTypeRule
+            // InternalInstanceLanguage.g:1733:4: (lv_type_2_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:1734:5: lv_type_2_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
             				
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_29);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -4520,26 +4698,26 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1664:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt24=2;
-            int LA24_0 = input.LA(1);
+            // InternalInstanceLanguage.g:1751:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA24_0==17) ) {
-                alt24=1;
+            if ( (LA26_0==17) ) {
+                alt26=1;
             }
-            switch (alt24) {
+            switch (alt26) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1665:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalInstanceLanguage.g:1752:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,17,FOLLOW_13); 
+                    otherlv_3=(Token)match(input,17,FOLLOW_12); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                     			
-                    // InternalInstanceLanguage.g:1669:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalInstanceLanguage.g:1670:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalInstanceLanguage.g:1756:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalInstanceLanguage.g:1757:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalInstanceLanguage.g:1670:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalInstanceLanguage.g:1671:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalInstanceLanguage.g:1757:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalInstanceLanguage.g:1758:6: lv_initialisation_4_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0());
@@ -4599,7 +4777,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalInstanceLanguage.g:1697:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalInstanceLanguage.g:1784:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4607,8 +4785,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1697:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalInstanceLanguage.g:1698:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalInstanceLanguage.g:1784:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalInstanceLanguage.g:1785:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
              newCompositeNode(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4635,7 +4813,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalInstanceLanguage.g:1704:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalInstanceLanguage.g:1791:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4664,72 +4842,72 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1710:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalInstanceLanguage.g:1711:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalInstanceLanguage.g:1797:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalInstanceLanguage.g:1798:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalInstanceLanguage.g:1711:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt25=10;
+            // InternalInstanceLanguage.g:1798:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt27=10;
             switch ( input.LA(1) ) {
-            case 38:
+            case 39:
                 {
-                alt25=1;
+                alt27=1;
                 }
                 break;
-            case 40:
+            case 41:
                 {
-                alt25=2;
+                alt27=2;
                 }
                 break;
-            case 41:
+            case 42:
                 {
-                alt25=3;
+                alt27=3;
                 }
                 break;
-            case 42:
+            case 43:
                 {
-                alt25=4;
+                alt27=4;
                 }
                 break;
-            case 35:
+            case 36:
                 {
-                alt25=5;
+                alt27=5;
                 }
                 break;
-            case 44:
+            case 45:
                 {
-                alt25=6;
+                alt27=6;
                 }
                 break;
-            case 36:
+            case 37:
                 {
-                alt25=7;
+                alt27=7;
                 }
                 break;
-            case 43:
+            case 44:
                 {
-                alt25=8;
+                alt27=8;
                 }
                 break;
-            case 39:
+            case 40:
                 {
-                alt25=9;
+                alt27=9;
                 }
                 break;
             case 22:
                 {
-                alt25=10;
+                alt27=10;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 25, 0, input);
+                    new NoViableAltException("", 27, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt25) {
+            switch (alt27) {
                 case 1 :
-                    // InternalInstanceLanguage.g:1712:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalInstanceLanguage.g:1799:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0());
@@ -4747,7 +4925,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:1721:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalInstanceLanguage.g:1808:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1());
@@ -4765,7 +4943,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:1730:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalInstanceLanguage.g:1817:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2());
@@ -4783,7 +4961,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:1739:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalInstanceLanguage.g:1826:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3());
@@ -4801,7 +4979,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:1748:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalInstanceLanguage.g:1835:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4());
@@ -4819,7 +4997,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:1757:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalInstanceLanguage.g:1844:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5());
@@ -4837,7 +5015,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 7 :
-                    // InternalInstanceLanguage.g:1766:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalInstanceLanguage.g:1853:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6());
@@ -4855,7 +5033,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 8 :
-                    // InternalInstanceLanguage.g:1775:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalInstanceLanguage.g:1862:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7());
@@ -4873,7 +5051,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 9 :
-                    // InternalInstanceLanguage.g:1784:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalInstanceLanguage.g:1871:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8());
@@ -4891,7 +5069,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 10 :
-                    // InternalInstanceLanguage.g:1793:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalInstanceLanguage.g:1880:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9());
@@ -4931,7 +5109,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalInstanceLanguage.g:1805:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalInstanceLanguage.g:1892:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4939,8 +5117,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1805:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalInstanceLanguage.g:1806:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalInstanceLanguage.g:1892:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalInstanceLanguage.g:1893:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4967,7 +5145,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalInstanceLanguage.g:1812:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalInstanceLanguage.g:1899:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -4977,14 +5155,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1818:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalInstanceLanguage.g:1819:2: ( () otherlv_1= 'literal' )
+            // InternalInstanceLanguage.g:1905:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalInstanceLanguage.g:1906:2: ( () otherlv_1= 'literal' )
             {
-            // InternalInstanceLanguage.g:1819:2: ( () otherlv_1= 'literal' )
-            // InternalInstanceLanguage.g:1820:3: () otherlv_1= 'literal'
+            // InternalInstanceLanguage.g:1906:2: ( () otherlv_1= 'literal' )
+            // InternalInstanceLanguage.g:1907:3: () otherlv_1= 'literal'
             {
-            // InternalInstanceLanguage.g:1820:3: ()
-            // InternalInstanceLanguage.g:1821:4: 
+            // InternalInstanceLanguage.g:1907:3: ()
+            // InternalInstanceLanguage.g:1908:4: 
             {
 
             				current = forceCreateModelElement(
@@ -4994,7 +5172,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,35,FOLLOW_2); 
+            otherlv_1=(Token)match(input,36,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
             		
@@ -5021,7 +5199,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalInstanceLanguage.g:1835:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalInstanceLanguage.g:1922:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5029,8 +5207,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1835:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalInstanceLanguage.g:1836:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalInstanceLanguage.g:1922:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalInstanceLanguage.g:1923:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
              newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5057,7 +5235,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalInstanceLanguage.g:1842:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalInstanceLanguage.g:1929:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5068,14 +5246,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1848:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalInstanceLanguage.g:1849:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalInstanceLanguage.g:1935:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalInstanceLanguage.g:1936:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalInstanceLanguage.g:1849:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalInstanceLanguage.g:1850:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalInstanceLanguage.g:1936:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalInstanceLanguage.g:1937:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalInstanceLanguage.g:1850:3: ()
-            // InternalInstanceLanguage.g:1851:4: 
+            // InternalInstanceLanguage.g:1937:3: ()
+            // InternalInstanceLanguage.g:1938:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5085,15 +5263,15 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,36,FOLLOW_10); 
+            otherlv_1=(Token)match(input,37,FOLLOW_10); 
 
             			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
             		
-            // InternalInstanceLanguage.g:1861:3: ( ( ruleQualifiedName ) )
-            // InternalInstanceLanguage.g:1862:4: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:1948:3: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:1949:4: ( ruleQualifiedName )
             {
-            // InternalInstanceLanguage.g:1862:4: ( ruleQualifiedName )
-            // InternalInstanceLanguage.g:1863:5: ruleQualifiedName
+            // InternalInstanceLanguage.g:1949:4: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:1950:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -5103,7 +5281,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
             				
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_30);
             ruleQualifiedName();
 
             state._fsp--;
@@ -5117,30 +5295,30 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:1877:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop26:
+            // InternalInstanceLanguage.g:1964:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop28:
             do {
-                int alt26=2;
-                int LA26_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( (LA26_0==37) ) {
-                    alt26=1;
+                if ( (LA28_0==38) ) {
+                    alt28=1;
                 }
 
 
-                switch (alt26) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:1878:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalInstanceLanguage.g:1965:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,37,FOLLOW_10); 
+            	    otherlv_3=(Token)match(input,38,FOLLOW_10); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	    			
-            	    // InternalInstanceLanguage.g:1882:4: ( ( ruleQualifiedName ) )
-            	    // InternalInstanceLanguage.g:1883:5: ( ruleQualifiedName )
+            	    // InternalInstanceLanguage.g:1969:4: ( ( ruleQualifiedName ) )
+            	    // InternalInstanceLanguage.g:1970:5: ( ruleQualifiedName )
             	    {
-            	    // InternalInstanceLanguage.g:1883:5: ( ruleQualifiedName )
-            	    // InternalInstanceLanguage.g:1884:6: ruleQualifiedName
+            	    // InternalInstanceLanguage.g:1970:5: ( ruleQualifiedName )
+            	    // InternalInstanceLanguage.g:1971:6: ruleQualifiedName
             	    {
 
             	    						if (current==null) {
@@ -5150,7 +5328,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             	    						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	    					
-            	    pushFollow(FOLLOW_28);
+            	    pushFollow(FOLLOW_30);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -5169,7 +5347,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop26;
+            	    break loop28;
                 }
             } while (true);
 
@@ -5196,7 +5374,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalInstanceLanguage.g:1903:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalInstanceLanguage.g:1990:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5204,8 +5382,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1903:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalInstanceLanguage.g:1904:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalInstanceLanguage.g:1990:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalInstanceLanguage.g:1991:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
              newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5232,7 +5410,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalInstanceLanguage.g:1910:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalInstanceLanguage.g:1997:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5242,14 +5420,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1916:2: ( ( () otherlv_1= 'string' ) )
-            // InternalInstanceLanguage.g:1917:2: ( () otherlv_1= 'string' )
+            // InternalInstanceLanguage.g:2003:2: ( ( () otherlv_1= 'string' ) )
+            // InternalInstanceLanguage.g:2004:2: ( () otherlv_1= 'string' )
             {
-            // InternalInstanceLanguage.g:1917:2: ( () otherlv_1= 'string' )
-            // InternalInstanceLanguage.g:1918:3: () otherlv_1= 'string'
+            // InternalInstanceLanguage.g:2004:2: ( () otherlv_1= 'string' )
+            // InternalInstanceLanguage.g:2005:3: () otherlv_1= 'string'
             {
-            // InternalInstanceLanguage.g:1918:3: ()
-            // InternalInstanceLanguage.g:1919:4: 
+            // InternalInstanceLanguage.g:2005:3: ()
+            // InternalInstanceLanguage.g:2006:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5259,7 +5437,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,38,FOLLOW_2); 
+            otherlv_1=(Token)match(input,39,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
             		
@@ -5286,7 +5464,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalInstanceLanguage.g:1933:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalInstanceLanguage.g:2020:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5294,8 +5472,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1933:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalInstanceLanguage.g:1934:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalInstanceLanguage.g:2020:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalInstanceLanguage.g:2021:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5322,7 +5500,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalInstanceLanguage.g:1940:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalInstanceLanguage.g:2027:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5332,14 +5510,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1946:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalInstanceLanguage.g:1947:2: ( () otherlv_1= 'expression' )
+            // InternalInstanceLanguage.g:2033:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalInstanceLanguage.g:2034:2: ( () otherlv_1= 'expression' )
             {
-            // InternalInstanceLanguage.g:1947:2: ( () otherlv_1= 'expression' )
-            // InternalInstanceLanguage.g:1948:3: () otherlv_1= 'expression'
+            // InternalInstanceLanguage.g:2034:2: ( () otherlv_1= 'expression' )
+            // InternalInstanceLanguage.g:2035:3: () otherlv_1= 'expression'
             {
-            // InternalInstanceLanguage.g:1948:3: ()
-            // InternalInstanceLanguage.g:1949:4: 
+            // InternalInstanceLanguage.g:2035:3: ()
+            // InternalInstanceLanguage.g:2036:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5349,7 +5527,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,39,FOLLOW_2); 
+            otherlv_1=(Token)match(input,40,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
             		
@@ -5376,7 +5554,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalInstanceLanguage.g:1963:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalInstanceLanguage.g:2050:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5384,8 +5562,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1963:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalInstanceLanguage.g:1964:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalInstanceLanguage.g:2050:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalInstanceLanguage.g:2051:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
              newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5412,7 +5590,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalInstanceLanguage.g:1970:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalInstanceLanguage.g:2057:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5422,14 +5600,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:1976:2: ( ( () otherlv_1= 'int' ) )
-            // InternalInstanceLanguage.g:1977:2: ( () otherlv_1= 'int' )
+            // InternalInstanceLanguage.g:2063:2: ( ( () otherlv_1= 'int' ) )
+            // InternalInstanceLanguage.g:2064:2: ( () otherlv_1= 'int' )
             {
-            // InternalInstanceLanguage.g:1977:2: ( () otherlv_1= 'int' )
-            // InternalInstanceLanguage.g:1978:3: () otherlv_1= 'int'
+            // InternalInstanceLanguage.g:2064:2: ( () otherlv_1= 'int' )
+            // InternalInstanceLanguage.g:2065:3: () otherlv_1= 'int'
             {
-            // InternalInstanceLanguage.g:1978:3: ()
-            // InternalInstanceLanguage.g:1979:4: 
+            // InternalInstanceLanguage.g:2065:3: ()
+            // InternalInstanceLanguage.g:2066:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5439,7 +5617,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,40,FOLLOW_2); 
+            otherlv_1=(Token)match(input,41,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
             		
@@ -5466,7 +5644,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalInstanceLanguage.g:1993:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalInstanceLanguage.g:2080:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5474,8 +5652,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:1993:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalInstanceLanguage.g:1994:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalInstanceLanguage.g:2080:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalInstanceLanguage.g:2081:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
              newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5502,7 +5680,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalInstanceLanguage.g:2000:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalInstanceLanguage.g:2087:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5512,14 +5690,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2006:2: ( ( () otherlv_1= 'float' ) )
-            // InternalInstanceLanguage.g:2007:2: ( () otherlv_1= 'float' )
+            // InternalInstanceLanguage.g:2093:2: ( ( () otherlv_1= 'float' ) )
+            // InternalInstanceLanguage.g:2094:2: ( () otherlv_1= 'float' )
             {
-            // InternalInstanceLanguage.g:2007:2: ( () otherlv_1= 'float' )
-            // InternalInstanceLanguage.g:2008:3: () otherlv_1= 'float'
+            // InternalInstanceLanguage.g:2094:2: ( () otherlv_1= 'float' )
+            // InternalInstanceLanguage.g:2095:3: () otherlv_1= 'float'
             {
-            // InternalInstanceLanguage.g:2008:3: ()
-            // InternalInstanceLanguage.g:2009:4: 
+            // InternalInstanceLanguage.g:2095:3: ()
+            // InternalInstanceLanguage.g:2096:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5529,7 +5707,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,41,FOLLOW_2); 
+            otherlv_1=(Token)match(input,42,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
             		
@@ -5556,7 +5734,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalInstanceLanguage.g:2023:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalInstanceLanguage.g:2110:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5564,8 +5742,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2023:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalInstanceLanguage.g:2024:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalInstanceLanguage.g:2110:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalInstanceLanguage.g:2111:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5592,7 +5770,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalInstanceLanguage.g:2030:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalInstanceLanguage.g:2117:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5602,14 +5780,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2036:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalInstanceLanguage.g:2037:2: ( () otherlv_1= 'boolean' )
+            // InternalInstanceLanguage.g:2123:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalInstanceLanguage.g:2124:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalInstanceLanguage.g:2037:2: ( () otherlv_1= 'boolean' )
-            // InternalInstanceLanguage.g:2038:3: () otherlv_1= 'boolean'
+            // InternalInstanceLanguage.g:2124:2: ( () otherlv_1= 'boolean' )
+            // InternalInstanceLanguage.g:2125:3: () otherlv_1= 'boolean'
             {
-            // InternalInstanceLanguage.g:2038:3: ()
-            // InternalInstanceLanguage.g:2039:4: 
+            // InternalInstanceLanguage.g:2125:3: ()
+            // InternalInstanceLanguage.g:2126:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5619,7 +5797,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_2); 
+            otherlv_1=(Token)match(input,43,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
             		
@@ -5646,7 +5824,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalInstanceLanguage.g:2053:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalInstanceLanguage.g:2140:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5654,8 +5832,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2053:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalInstanceLanguage.g:2054:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalInstanceLanguage.g:2140:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalInstanceLanguage.g:2141:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
              newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5682,7 +5860,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalInstanceLanguage.g:2060:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalInstanceLanguage.g:2147:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5692,14 +5870,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2066:2: ( ( () otherlv_1= 'void' ) )
-            // InternalInstanceLanguage.g:2067:2: ( () otherlv_1= 'void' )
+            // InternalInstanceLanguage.g:2153:2: ( ( () otherlv_1= 'void' ) )
+            // InternalInstanceLanguage.g:2154:2: ( () otherlv_1= 'void' )
             {
-            // InternalInstanceLanguage.g:2067:2: ( () otherlv_1= 'void' )
-            // InternalInstanceLanguage.g:2068:3: () otherlv_1= 'void'
+            // InternalInstanceLanguage.g:2154:2: ( () otherlv_1= 'void' )
+            // InternalInstanceLanguage.g:2155:3: () otherlv_1= 'void'
             {
-            // InternalInstanceLanguage.g:2068:3: ()
-            // InternalInstanceLanguage.g:2069:4: 
+            // InternalInstanceLanguage.g:2155:3: ()
+            // InternalInstanceLanguage.g:2156:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5709,7 +5887,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_2); 
+            otherlv_1=(Token)match(input,44,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
             		
@@ -5736,7 +5914,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalInstanceLanguage.g:2083:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalInstanceLanguage.g:2170:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5744,8 +5922,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2083:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalInstanceLanguage.g:2084:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalInstanceLanguage.g:2170:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalInstanceLanguage.g:2171:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
              newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5772,7 +5950,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalInstanceLanguage.g:2090:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalInstanceLanguage.g:2177:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5782,14 +5960,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2096:2: ( ( () otherlv_1= 'data' ) )
-            // InternalInstanceLanguage.g:2097:2: ( () otherlv_1= 'data' )
+            // InternalInstanceLanguage.g:2183:2: ( ( () otherlv_1= 'data' ) )
+            // InternalInstanceLanguage.g:2184:2: ( () otherlv_1= 'data' )
             {
-            // InternalInstanceLanguage.g:2097:2: ( () otherlv_1= 'data' )
-            // InternalInstanceLanguage.g:2098:3: () otherlv_1= 'data'
+            // InternalInstanceLanguage.g:2184:2: ( () otherlv_1= 'data' )
+            // InternalInstanceLanguage.g:2185:3: () otherlv_1= 'data'
             {
-            // InternalInstanceLanguage.g:2098:3: ()
-            // InternalInstanceLanguage.g:2099:4: 
+            // InternalInstanceLanguage.g:2185:3: ()
+            // InternalInstanceLanguage.g:2186:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5826,7 +6004,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalInstanceLanguage.g:2113:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalInstanceLanguage.g:2200:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5834,8 +6012,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2113:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalInstanceLanguage.g:2114:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalInstanceLanguage.g:2200:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalInstanceLanguage.g:2201:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
              newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5862,7 +6040,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalInstanceLanguage.g:2120:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalInstanceLanguage.g:2207:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5874,21 +6052,21 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2126:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalInstanceLanguage.g:2127:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalInstanceLanguage.g:2213:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalInstanceLanguage.g:2214:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalInstanceLanguage.g:2127:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalInstanceLanguage.g:2128:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalInstanceLanguage.g:2214:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalInstanceLanguage.g:2215:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,44,FOLLOW_26); 
+            otherlv_0=(Token)match(input,45,FOLLOW_28); 
 
             			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
             		
-            // InternalInstanceLanguage.g:2132:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalInstanceLanguage.g:2133:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:2219:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalInstanceLanguage.g:2220:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:2133:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalInstanceLanguage.g:2134:5: lv_elements_1_0= ruleTypeRule
+            // InternalInstanceLanguage.g:2220:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:2221:5: lv_elements_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0());
@@ -5938,7 +6116,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalInstanceLanguage.g:2155:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalInstanceLanguage.g:2242:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -5946,8 +6124,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2155:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalInstanceLanguage.g:2156:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalInstanceLanguage.g:2242:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalInstanceLanguage.g:2243:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
              newCompositeNode(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5974,7 +6152,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalInstanceLanguage.g:2162:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalInstanceLanguage.g:2249:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -5987,17 +6165,17 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2168:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalInstanceLanguage.g:2169:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalInstanceLanguage.g:2255:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalInstanceLanguage.g:2256:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalInstanceLanguage.g:2169:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalInstanceLanguage.g:2170:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalInstanceLanguage.g:2256:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalInstanceLanguage.g:2257:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalInstanceLanguage.g:2170:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalInstanceLanguage.g:2171:4: (lv_type_0_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:2257:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalInstanceLanguage.g:2258:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalInstanceLanguage.g:2171:4: (lv_type_0_0= ruleTypeRule )
-            // InternalInstanceLanguage.g:2172:5: lv_type_0_0= ruleTypeRule
+            // InternalInstanceLanguage.g:2258:4: (lv_type_0_0= ruleTypeRule )
+            // InternalInstanceLanguage.g:2259:5: lv_type_0_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0());
@@ -6024,11 +6202,11 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             }
 
-            // InternalInstanceLanguage.g:2189:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalInstanceLanguage.g:2190:4: (lv_name_1_0= ruleStringOrId )
+            // InternalInstanceLanguage.g:2276:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalInstanceLanguage.g:2277:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalInstanceLanguage.g:2190:4: (lv_name_1_0= ruleStringOrId )
-            // InternalInstanceLanguage.g:2191:5: lv_name_1_0= ruleStringOrId
+            // InternalInstanceLanguage.g:2277:4: (lv_name_1_0= ruleStringOrId )
+            // InternalInstanceLanguage.g:2278:5: lv_name_1_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0());
@@ -6078,7 +6256,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalInstanceLanguage.g:2212:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalInstanceLanguage.g:2299:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -6086,8 +6264,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2212:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalInstanceLanguage.g:2213:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalInstanceLanguage.g:2299:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalInstanceLanguage.g:2300:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6114,7 +6292,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalInstanceLanguage.g:2219:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalInstanceLanguage.g:2306:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -6122,14 +6300,14 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2225:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalInstanceLanguage.g:2226:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:2312:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalInstanceLanguage.g:2313:2: ( ( ruleQualifiedName ) )
             {
-            // InternalInstanceLanguage.g:2226:2: ( ( ruleQualifiedName ) )
-            // InternalInstanceLanguage.g:2227:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:2313:2: ( ( ruleQualifiedName ) )
+            // InternalInstanceLanguage.g:2314:3: ( ruleQualifiedName )
             {
-            // InternalInstanceLanguage.g:2227:3: ( ruleQualifiedName )
-            // InternalInstanceLanguage.g:2228:4: ruleQualifiedName
+            // InternalInstanceLanguage.g:2314:3: ( ruleQualifiedName )
+            // InternalInstanceLanguage.g:2315:4: ruleQualifiedName
             {
 
             				if (current==null) {
@@ -6173,7 +6351,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalInstanceLanguage.g:2245:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalInstanceLanguage.g:2332:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -6181,8 +6359,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2245:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalInstanceLanguage.g:2246:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalInstanceLanguage.g:2332:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalInstanceLanguage.g:2333:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
              newCompositeNode(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -6209,7 +6387,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalInstanceLanguage.g:2252:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalInstanceLanguage.g:2339:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6223,16 +6401,16 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2258:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalInstanceLanguage.g:2259:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalInstanceLanguage.g:2345:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalInstanceLanguage.g:2346:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalInstanceLanguage.g:2259:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalInstanceLanguage.g:2260:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalInstanceLanguage.g:2346:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalInstanceLanguage.g:2347:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
 
             			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
             		
-            pushFollow(FOLLOW_11);
+            pushFollow(FOLLOW_31);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -6243,22 +6421,22 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             			afterParserOrEnumRuleCall();
             		
-            // InternalInstanceLanguage.g:2270:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop27:
+            // InternalInstanceLanguage.g:2357:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop29:
             do {
-                int alt27=2;
-                int LA27_0 = input.LA(1);
+                int alt29=2;
+                int LA29_0 = input.LA(1);
 
-                if ( (LA27_0==23) ) {
-                    alt27=1;
+                if ( (LA29_0==46) ) {
+                    alt29=1;
                 }
 
 
-                switch (alt27) {
+                switch (alt29) {
             	case 1 :
-            	    // InternalInstanceLanguage.g:2271:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalInstanceLanguage.g:2358:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,23,FOLLOW_10); 
+            	    kw=(Token)match(input,46,FOLLOW_10); 
 
             	    				current.merge(kw);
             	    				newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
@@ -6266,7 +6444,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
             	    				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	    			
-            	    pushFollow(FOLLOW_11);
+            	    pushFollow(FOLLOW_31);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -6282,7 +6460,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
             	    break;
 
             	default :
-            	    break loop27;
+            	    break loop29;
                 }
             } while (true);
 
@@ -6309,7 +6487,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalInstanceLanguage.g:2291:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalInstanceLanguage.g:2378:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -6317,8 +6495,8 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
         try {
-            // InternalInstanceLanguage.g:2291:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalInstanceLanguage.g:2292:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalInstanceLanguage.g:2378:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalInstanceLanguage.g:2379:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
              newCompositeNode(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -6345,7 +6523,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalInstanceLanguage.g:2298:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalInstanceLanguage.g:2385:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6356,28 +6534,28 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2304:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalInstanceLanguage.g:2305:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalInstanceLanguage.g:2391:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalInstanceLanguage.g:2392:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalInstanceLanguage.g:2305:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+            // InternalInstanceLanguage.g:2392:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            if ( (LA28_0==RULE_QUOTED_ID) ) {
-                alt28=1;
+            if ( (LA30_0==RULE_QUOTED_ID) ) {
+                alt30=1;
             }
-            else if ( (LA28_0==RULE_ID) ) {
-                alt28=2;
+            else if ( (LA30_0==RULE_ID) ) {
+                alt30=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 28, 0, input);
+                    new NoViableAltException("", 30, 0, input);
 
                 throw nvae;
             }
-            switch (alt28) {
+            switch (alt30) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2306:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalInstanceLanguage.g:2393:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 
 
@@ -6390,7 +6568,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2314:3: this_ID_1= RULE_ID
+                    // InternalInstanceLanguage.g:2401:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -6425,7 +6603,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalInstanceLanguage.g:2325:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalInstanceLanguage.g:2412:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6440,57 +6618,57 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2331:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalInstanceLanguage.g:2332:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalInstanceLanguage.g:2418:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalInstanceLanguage.g:2419:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalInstanceLanguage.g:2332:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt29=6;
+            // InternalInstanceLanguage.g:2419:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt31=6;
             switch ( input.LA(1) ) {
-            case 45:
+            case 47:
                 {
-                alt29=1;
+                alt31=1;
                 }
                 break;
-            case 46:
+            case 48:
                 {
-                alt29=2;
+                alt31=2;
                 }
                 break;
-            case 47:
+            case 49:
                 {
-                alt29=3;
+                alt31=3;
                 }
                 break;
-            case 48:
+            case 50:
                 {
-                alt29=4;
+                alt31=4;
                 }
                 break;
-            case 49:
+            case 51:
                 {
-                alt29=5;
+                alt31=5;
                 }
                 break;
-            case 50:
+            case 52:
                 {
-                alt29=6;
+                alt31=6;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 29, 0, input);
+                    new NoViableAltException("", 31, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt29) {
+            switch (alt31) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2333:3: (enumLiteral_0= '>=' )
+                    // InternalInstanceLanguage.g:2420:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalInstanceLanguage.g:2333:3: (enumLiteral_0= '>=' )
-                    // InternalInstanceLanguage.g:2334:4: enumLiteral_0= '>='
+                    // InternalInstanceLanguage.g:2420:3: (enumLiteral_0= '>=' )
+                    // InternalInstanceLanguage.g:2421:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,45,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,47,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0());
@@ -6502,12 +6680,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2341:3: (enumLiteral_1= '>' )
+                    // InternalInstanceLanguage.g:2428:3: (enumLiteral_1= '>' )
                     {
-                    // InternalInstanceLanguage.g:2341:3: (enumLiteral_1= '>' )
-                    // InternalInstanceLanguage.g:2342:4: enumLiteral_1= '>'
+                    // InternalInstanceLanguage.g:2428:3: (enumLiteral_1= '>' )
+                    // InternalInstanceLanguage.g:2429:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,46,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,48,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1());
@@ -6519,12 +6697,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:2349:3: (enumLiteral_2= '=' )
+                    // InternalInstanceLanguage.g:2436:3: (enumLiteral_2= '=' )
                     {
-                    // InternalInstanceLanguage.g:2349:3: (enumLiteral_2= '=' )
-                    // InternalInstanceLanguage.g:2350:4: enumLiteral_2= '='
+                    // InternalInstanceLanguage.g:2436:3: (enumLiteral_2= '=' )
+                    // InternalInstanceLanguage.g:2437:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,47,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,49,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2());
@@ -6536,12 +6714,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:2357:3: (enumLiteral_3= '!=' )
+                    // InternalInstanceLanguage.g:2444:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalInstanceLanguage.g:2357:3: (enumLiteral_3= '!=' )
-                    // InternalInstanceLanguage.g:2358:4: enumLiteral_3= '!='
+                    // InternalInstanceLanguage.g:2444:3: (enumLiteral_3= '!=' )
+                    // InternalInstanceLanguage.g:2445:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,48,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,50,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3());
@@ -6553,12 +6731,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:2365:3: (enumLiteral_4= '<' )
+                    // InternalInstanceLanguage.g:2452:3: (enumLiteral_4= '<' )
                     {
-                    // InternalInstanceLanguage.g:2365:3: (enumLiteral_4= '<' )
-                    // InternalInstanceLanguage.g:2366:4: enumLiteral_4= '<'
+                    // InternalInstanceLanguage.g:2452:3: (enumLiteral_4= '<' )
+                    // InternalInstanceLanguage.g:2453:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,49,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,51,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4());
@@ -6570,12 +6748,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:2373:3: (enumLiteral_5= '<=' )
+                    // InternalInstanceLanguage.g:2460:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalInstanceLanguage.g:2373:3: (enumLiteral_5= '<=' )
-                    // InternalInstanceLanguage.g:2374:4: enumLiteral_5= '<='
+                    // InternalInstanceLanguage.g:2460:3: (enumLiteral_5= '<=' )
+                    // InternalInstanceLanguage.g:2461:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,50,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,52,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5());
@@ -6609,7 +6787,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalInstanceLanguage.g:2384:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalInstanceLanguage.g:2471:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6620,33 +6798,33 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2390:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalInstanceLanguage.g:2391:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalInstanceLanguage.g:2477:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalInstanceLanguage.g:2478:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalInstanceLanguage.g:2391:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt30=2;
-            int LA30_0 = input.LA(1);
+            // InternalInstanceLanguage.g:2478:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt32=2;
+            int LA32_0 = input.LA(1);
 
-            if ( (LA30_0==51) ) {
-                alt30=1;
+            if ( (LA32_0==53) ) {
+                alt32=1;
             }
-            else if ( (LA30_0==52) ) {
-                alt30=2;
+            else if ( (LA32_0==54) ) {
+                alt32=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 32, 0, input);
 
                 throw nvae;
             }
-            switch (alt30) {
+            switch (alt32) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2392:3: (enumLiteral_0= '+' )
+                    // InternalInstanceLanguage.g:2479:3: (enumLiteral_0= '+' )
                     {
-                    // InternalInstanceLanguage.g:2392:3: (enumLiteral_0= '+' )
-                    // InternalInstanceLanguage.g:2393:4: enumLiteral_0= '+'
+                    // InternalInstanceLanguage.g:2479:3: (enumLiteral_0= '+' )
+                    // InternalInstanceLanguage.g:2480:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,51,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,53,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0());
@@ -6658,12 +6836,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2400:3: (enumLiteral_1= '-' )
+                    // InternalInstanceLanguage.g:2487:3: (enumLiteral_1= '-' )
                     {
-                    // InternalInstanceLanguage.g:2400:3: (enumLiteral_1= '-' )
-                    // InternalInstanceLanguage.g:2401:4: enumLiteral_1= '-'
+                    // InternalInstanceLanguage.g:2487:3: (enumLiteral_1= '-' )
+                    // InternalInstanceLanguage.g:2488:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,52,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,54,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1());
@@ -6697,7 +6875,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalInstanceLanguage.g:2411:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalInstanceLanguage.g:2498:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6709,42 +6887,42 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2417:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalInstanceLanguage.g:2418:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalInstanceLanguage.g:2504:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalInstanceLanguage.g:2505:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalInstanceLanguage.g:2418:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt31=3;
+            // InternalInstanceLanguage.g:2505:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt33=3;
             switch ( input.LA(1) ) {
-            case 53:
+            case 55:
                 {
-                alt31=1;
+                alt33=1;
                 }
                 break;
-            case 54:
+            case 56:
                 {
-                alt31=2;
+                alt33=2;
                 }
                 break;
-            case 55:
+            case 57:
                 {
-                alt31=3;
+                alt33=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 31, 0, input);
+                    new NoViableAltException("", 33, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt31) {
+            switch (alt33) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2419:3: (enumLiteral_0= '*' )
+                    // InternalInstanceLanguage.g:2506:3: (enumLiteral_0= '*' )
                     {
-                    // InternalInstanceLanguage.g:2419:3: (enumLiteral_0= '*' )
-                    // InternalInstanceLanguage.g:2420:4: enumLiteral_0= '*'
+                    // InternalInstanceLanguage.g:2506:3: (enumLiteral_0= '*' )
+                    // InternalInstanceLanguage.g:2507:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,53,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,55,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0());
@@ -6756,12 +6934,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2427:3: (enumLiteral_1= '/' )
+                    // InternalInstanceLanguage.g:2514:3: (enumLiteral_1= '/' )
                     {
-                    // InternalInstanceLanguage.g:2427:3: (enumLiteral_1= '/' )
-                    // InternalInstanceLanguage.g:2428:4: enumLiteral_1= '/'
+                    // InternalInstanceLanguage.g:2514:3: (enumLiteral_1= '/' )
+                    // InternalInstanceLanguage.g:2515:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,54,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,56,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1());
@@ -6773,12 +6951,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:2435:3: (enumLiteral_2= '%' )
+                    // InternalInstanceLanguage.g:2522:3: (enumLiteral_2= '%' )
                     {
-                    // InternalInstanceLanguage.g:2435:3: (enumLiteral_2= '%' )
-                    // InternalInstanceLanguage.g:2436:4: enumLiteral_2= '%'
+                    // InternalInstanceLanguage.g:2522:3: (enumLiteral_2= '%' )
+                    // InternalInstanceLanguage.g:2523:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,55,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,57,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2());
@@ -6812,7 +6990,7 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalInstanceLanguage.g:2446:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalInstanceLanguage.g:2533:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -6841,127 +7019,127 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
         	enterRule();
 
         try {
-            // InternalInstanceLanguage.g:2452:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalInstanceLanguage.g:2453:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalInstanceLanguage.g:2539:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalInstanceLanguage.g:2540:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalInstanceLanguage.g:2453:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt32=20;
+            // InternalInstanceLanguage.g:2540:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt34=20;
             switch ( input.LA(1) ) {
-            case 56:
-                {
-                alt32=1;
-                }
-                break;
-            case 57:
-                {
-                alt32=2;
-                }
-                break;
             case 58:
                 {
-                alt32=3;
+                alt34=1;
                 }
                 break;
             case 59:
                 {
-                alt32=4;
+                alt34=2;
                 }
                 break;
             case 60:
                 {
-                alt32=5;
+                alt34=3;
                 }
                 break;
             case 61:
                 {
-                alt32=6;
+                alt34=4;
                 }
                 break;
             case 62:
                 {
-                alt32=7;
+                alt34=5;
                 }
                 break;
             case 63:
                 {
-                alt32=8;
+                alt34=6;
                 }
                 break;
             case 64:
                 {
-                alt32=9;
+                alt34=7;
                 }
                 break;
             case 65:
                 {
-                alt32=10;
+                alt34=8;
                 }
                 break;
             case 66:
                 {
-                alt32=11;
+                alt34=9;
                 }
                 break;
             case 67:
                 {
-                alt32=12;
+                alt34=10;
                 }
                 break;
             case 68:
                 {
-                alt32=13;
+                alt34=11;
                 }
                 break;
             case 69:
                 {
-                alt32=14;
+                alt34=12;
                 }
                 break;
             case 70:
                 {
-                alt32=15;
+                alt34=13;
                 }
                 break;
             case 71:
                 {
-                alt32=16;
+                alt34=14;
                 }
                 break;
             case 72:
                 {
-                alt32=17;
+                alt34=15;
                 }
                 break;
             case 73:
                 {
-                alt32=18;
+                alt34=16;
                 }
                 break;
             case 74:
                 {
-                alt32=19;
+                alt34=17;
                 }
                 break;
             case 75:
                 {
-                alt32=20;
+                alt34=18;
+                }
+                break;
+            case 76:
+                {
+                alt34=19;
+                }
+                break;
+            case 77:
+                {
+                alt34=20;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 32, 0, input);
+                    new NoViableAltException("", 34, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt32) {
+            switch (alt34) {
                 case 1 :
-                    // InternalInstanceLanguage.g:2454:3: (enumLiteral_0= 'Y' )
+                    // InternalInstanceLanguage.g:2541:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalInstanceLanguage.g:2454:3: (enumLiteral_0= 'Y' )
-                    // InternalInstanceLanguage.g:2455:4: enumLiteral_0= 'Y'
+                    // InternalInstanceLanguage.g:2541:3: (enumLiteral_0= 'Y' )
+                    // InternalInstanceLanguage.g:2542:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,56,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,58,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0());
@@ -6973,12 +7151,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 2 :
-                    // InternalInstanceLanguage.g:2462:3: (enumLiteral_1= 'Z' )
+                    // InternalInstanceLanguage.g:2549:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalInstanceLanguage.g:2462:3: (enumLiteral_1= 'Z' )
-                    // InternalInstanceLanguage.g:2463:4: enumLiteral_1= 'Z'
+                    // InternalInstanceLanguage.g:2549:3: (enumLiteral_1= 'Z' )
+                    // InternalInstanceLanguage.g:2550:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,57,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,59,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1());
@@ -6990,12 +7168,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 3 :
-                    // InternalInstanceLanguage.g:2470:3: (enumLiteral_2= 'E' )
+                    // InternalInstanceLanguage.g:2557:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalInstanceLanguage.g:2470:3: (enumLiteral_2= 'E' )
-                    // InternalInstanceLanguage.g:2471:4: enumLiteral_2= 'E'
+                    // InternalInstanceLanguage.g:2557:3: (enumLiteral_2= 'E' )
+                    // InternalInstanceLanguage.g:2558:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,58,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,60,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2());
@@ -7007,12 +7185,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 4 :
-                    // InternalInstanceLanguage.g:2478:3: (enumLiteral_3= 'P' )
+                    // InternalInstanceLanguage.g:2565:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalInstanceLanguage.g:2478:3: (enumLiteral_3= 'P' )
-                    // InternalInstanceLanguage.g:2479:4: enumLiteral_3= 'P'
+                    // InternalInstanceLanguage.g:2565:3: (enumLiteral_3= 'P' )
+                    // InternalInstanceLanguage.g:2566:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,59,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,61,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3());
@@ -7024,12 +7202,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 5 :
-                    // InternalInstanceLanguage.g:2486:3: (enumLiteral_4= 'T' )
+                    // InternalInstanceLanguage.g:2573:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalInstanceLanguage.g:2486:3: (enumLiteral_4= 'T' )
-                    // InternalInstanceLanguage.g:2487:4: enumLiteral_4= 'T'
+                    // InternalInstanceLanguage.g:2573:3: (enumLiteral_4= 'T' )
+                    // InternalInstanceLanguage.g:2574:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,60,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,62,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4());
@@ -7041,12 +7219,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 6 :
-                    // InternalInstanceLanguage.g:2494:3: (enumLiteral_5= 'G' )
+                    // InternalInstanceLanguage.g:2581:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalInstanceLanguage.g:2494:3: (enumLiteral_5= 'G' )
-                    // InternalInstanceLanguage.g:2495:4: enumLiteral_5= 'G'
+                    // InternalInstanceLanguage.g:2581:3: (enumLiteral_5= 'G' )
+                    // InternalInstanceLanguage.g:2582:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,61,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,63,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5());
@@ -7058,12 +7236,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 7 :
-                    // InternalInstanceLanguage.g:2502:3: (enumLiteral_6= 'M' )
+                    // InternalInstanceLanguage.g:2589:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalInstanceLanguage.g:2502:3: (enumLiteral_6= 'M' )
-                    // InternalInstanceLanguage.g:2503:4: enumLiteral_6= 'M'
+                    // InternalInstanceLanguage.g:2589:3: (enumLiteral_6= 'M' )
+                    // InternalInstanceLanguage.g:2590:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,62,FOLLOW_2); 
+                    enumLiteral_6=(Token)match(input,64,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_6, grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6());
@@ -7075,12 +7253,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 8 :
-                    // InternalInstanceLanguage.g:2510:3: (enumLiteral_7= 'k' )
+                    // InternalInstanceLanguage.g:2597:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalInstanceLanguage.g:2510:3: (enumLiteral_7= 'k' )
-                    // InternalInstanceLanguage.g:2511:4: enumLiteral_7= 'k'
+                    // InternalInstanceLanguage.g:2597:3: (enumLiteral_7= 'k' )
+                    // InternalInstanceLanguage.g:2598:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,63,FOLLOW_2); 
+                    enumLiteral_7=(Token)match(input,65,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_7, grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7());
@@ -7092,12 +7270,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 9 :
-                    // InternalInstanceLanguage.g:2518:3: (enumLiteral_8= 'h' )
+                    // InternalInstanceLanguage.g:2605:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalInstanceLanguage.g:2518:3: (enumLiteral_8= 'h' )
-                    // InternalInstanceLanguage.g:2519:4: enumLiteral_8= 'h'
+                    // InternalInstanceLanguage.g:2605:3: (enumLiteral_8= 'h' )
+                    // InternalInstanceLanguage.g:2606:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,64,FOLLOW_2); 
+                    enumLiteral_8=(Token)match(input,66,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_8, grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8());
@@ -7109,12 +7287,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 10 :
-                    // InternalInstanceLanguage.g:2526:3: (enumLiteral_9= 'da' )
+                    // InternalInstanceLanguage.g:2613:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalInstanceLanguage.g:2526:3: (enumLiteral_9= 'da' )
-                    // InternalInstanceLanguage.g:2527:4: enumLiteral_9= 'da'
+                    // InternalInstanceLanguage.g:2613:3: (enumLiteral_9= 'da' )
+                    // InternalInstanceLanguage.g:2614:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,65,FOLLOW_2); 
+                    enumLiteral_9=(Token)match(input,67,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_9, grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9());
@@ -7126,12 +7304,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 11 :
-                    // InternalInstanceLanguage.g:2534:3: (enumLiteral_10= 'd' )
+                    // InternalInstanceLanguage.g:2621:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalInstanceLanguage.g:2534:3: (enumLiteral_10= 'd' )
-                    // InternalInstanceLanguage.g:2535:4: enumLiteral_10= 'd'
+                    // InternalInstanceLanguage.g:2621:3: (enumLiteral_10= 'd' )
+                    // InternalInstanceLanguage.g:2622:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,66,FOLLOW_2); 
+                    enumLiteral_10=(Token)match(input,68,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_10, grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10());
@@ -7143,12 +7321,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 12 :
-                    // InternalInstanceLanguage.g:2542:3: (enumLiteral_11= 'c' )
+                    // InternalInstanceLanguage.g:2629:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalInstanceLanguage.g:2542:3: (enumLiteral_11= 'c' )
-                    // InternalInstanceLanguage.g:2543:4: enumLiteral_11= 'c'
+                    // InternalInstanceLanguage.g:2629:3: (enumLiteral_11= 'c' )
+                    // InternalInstanceLanguage.g:2630:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,67,FOLLOW_2); 
+                    enumLiteral_11=(Token)match(input,69,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_11, grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11());
@@ -7160,12 +7338,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 13 :
-                    // InternalInstanceLanguage.g:2550:3: (enumLiteral_12= 'm' )
+                    // InternalInstanceLanguage.g:2637:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalInstanceLanguage.g:2550:3: (enumLiteral_12= 'm' )
-                    // InternalInstanceLanguage.g:2551:4: enumLiteral_12= 'm'
+                    // InternalInstanceLanguage.g:2637:3: (enumLiteral_12= 'm' )
+                    // InternalInstanceLanguage.g:2638:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,68,FOLLOW_2); 
+                    enumLiteral_12=(Token)match(input,70,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_12, grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12());
@@ -7177,12 +7355,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 14 :
-                    // InternalInstanceLanguage.g:2558:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalInstanceLanguage.g:2645:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalInstanceLanguage.g:2558:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalInstanceLanguage.g:2559:4: enumLiteral_13= '\\u00B5'
+                    // InternalInstanceLanguage.g:2645:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalInstanceLanguage.g:2646:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,69,FOLLOW_2); 
+                    enumLiteral_13=(Token)match(input,71,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_13, grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13());
@@ -7194,12 +7372,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 15 :
-                    // InternalInstanceLanguage.g:2566:3: (enumLiteral_14= 'n' )
+                    // InternalInstanceLanguage.g:2653:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalInstanceLanguage.g:2566:3: (enumLiteral_14= 'n' )
-                    // InternalInstanceLanguage.g:2567:4: enumLiteral_14= 'n'
+                    // InternalInstanceLanguage.g:2653:3: (enumLiteral_14= 'n' )
+                    // InternalInstanceLanguage.g:2654:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,70,FOLLOW_2); 
+                    enumLiteral_14=(Token)match(input,72,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_14, grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14());
@@ -7211,12 +7389,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 16 :
-                    // InternalInstanceLanguage.g:2574:3: (enumLiteral_15= 'p' )
+                    // InternalInstanceLanguage.g:2661:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalInstanceLanguage.g:2574:3: (enumLiteral_15= 'p' )
-                    // InternalInstanceLanguage.g:2575:4: enumLiteral_15= 'p'
+                    // InternalInstanceLanguage.g:2661:3: (enumLiteral_15= 'p' )
+                    // InternalInstanceLanguage.g:2662:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,71,FOLLOW_2); 
+                    enumLiteral_15=(Token)match(input,73,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_15, grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15());
@@ -7228,12 +7406,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 17 :
-                    // InternalInstanceLanguage.g:2582:3: (enumLiteral_16= 'f' )
+                    // InternalInstanceLanguage.g:2669:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalInstanceLanguage.g:2582:3: (enumLiteral_16= 'f' )
-                    // InternalInstanceLanguage.g:2583:4: enumLiteral_16= 'f'
+                    // InternalInstanceLanguage.g:2669:3: (enumLiteral_16= 'f' )
+                    // InternalInstanceLanguage.g:2670:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,72,FOLLOW_2); 
+                    enumLiteral_16=(Token)match(input,74,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_16, grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16());
@@ -7245,12 +7423,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 18 :
-                    // InternalInstanceLanguage.g:2590:3: (enumLiteral_17= 'a' )
+                    // InternalInstanceLanguage.g:2677:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalInstanceLanguage.g:2590:3: (enumLiteral_17= 'a' )
-                    // InternalInstanceLanguage.g:2591:4: enumLiteral_17= 'a'
+                    // InternalInstanceLanguage.g:2677:3: (enumLiteral_17= 'a' )
+                    // InternalInstanceLanguage.g:2678:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,73,FOLLOW_2); 
+                    enumLiteral_17=(Token)match(input,75,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_17, grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17());
@@ -7262,12 +7440,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 19 :
-                    // InternalInstanceLanguage.g:2598:3: (enumLiteral_18= 'z' )
+                    // InternalInstanceLanguage.g:2685:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalInstanceLanguage.g:2598:3: (enumLiteral_18= 'z' )
-                    // InternalInstanceLanguage.g:2599:4: enumLiteral_18= 'z'
+                    // InternalInstanceLanguage.g:2685:3: (enumLiteral_18= 'z' )
+                    // InternalInstanceLanguage.g:2686:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,74,FOLLOW_2); 
+                    enumLiteral_18=(Token)match(input,76,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_18, grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18());
@@ -7279,12 +7457,12 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
                     }
                     break;
                 case 20 :
-                    // InternalInstanceLanguage.g:2606:3: (enumLiteral_19= 'y' )
+                    // InternalInstanceLanguage.g:2693:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalInstanceLanguage.g:2606:3: (enumLiteral_19= 'y' )
-                    // InternalInstanceLanguage.g:2607:4: enumLiteral_19= 'y'
+                    // InternalInstanceLanguage.g:2693:3: (enumLiteral_19= 'y' )
+                    // InternalInstanceLanguage.g:2694:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,75,FOLLOW_2); 
+                    enumLiteral_19=(Token)match(input,77,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_19, grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19());
@@ -7319,6 +7497,51 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     // Delegated rules
 
 
+    protected DFA15 dfa15 = new DFA15(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\22\2\uffff\1\7\2\uffff\2\22";
+    static final String dfa_4s = "\1\37\2\71\2\uffff\1\10\2\uffff\2\71";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\3\3\1\1\1\2\23\uffff\1\4\1\uffff\2\3",
+            "\1\7\1\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\1\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\1\7\1\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\1\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA15 extends DFA {
+
+        public DFA15(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 15;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1078:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -7326,28 +7549,31 @@ public class InternalInstanceLanguageParser extends AbstractInternalAntlrParser
     public static final BitSet FOLLOW_3 = new BitSet(new long[]{0x0000000000008002L});
     public static final BitSet FOLLOW_4 = new BitSet(new long[]{0x0000000000010180L});
     public static final BitSet FOLLOW_5 = new BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000003004801F0L});
+    public static final BitSet FOLLOW_6 = new BitSet(new long[]{0x00000000C04801F0L});
     public static final BitSet FOLLOW_7 = new BitSet(new long[]{0x0000000000040000L});
-    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000003006801F0L});
+    public static final BitSet FOLLOW_8 = new BitSet(new long[]{0x00000000C06801F0L});
     public static final BitSet FOLLOW_9 = new BitSet(new long[]{0x0000000000300000L});
     public static final BitSet FOLLOW_10 = new BitSet(new long[]{0x0000000000000180L});
     public static final BitSet FOLLOW_11 = new BitSet(new long[]{0x0000000000800002L});
-    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x0000000001000002L});
-    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x00180003A84801F0L});
+    public static final BitSet FOLLOW_12 = new BitSet(new long[]{0x00600000D44801F0L});
+    public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000001000002L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000002000002L});
-    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000004000002L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0007E00000000002L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0018000000000002L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x00E0000000000002L});
-    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000010000002L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000040000000L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000020000000L});
-    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x00180003E84801F0L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000040100000L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0xFF00000000000002L,0x0000000000000FFFL});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000400000000L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x00001FD800400000L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000060000L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000002000000002L});
+    public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x001F800000000002L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0060000000000002L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x0380000000000002L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000008000002L});
+    public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000020000000L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000010000000L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x00600000F44801F0L});
+    public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000020100000L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0xFC00000000000002L,0x0000000000003FFFL});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000200000000L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000400008000L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000008000L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000800000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x00003FB000400000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000060000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000004000000002L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000400000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSemanticSequencer.java
index b4ccd381..5058c30f 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -34,7 +36,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.base.dsl.serializer.BaseLanguageSemanticSequencer;
@@ -93,6 +94,12 @@ public class InstanceLanguageSemanticSequencer extends BaseLanguageSemanticSeque
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -156,9 +163,6 @@ public class InstanceLanguageSemanticSequencer extends BaseLanguageSemanticSeque
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
@@ -254,7 +258,7 @@ public class InstanceLanguageSemanticSequencer extends BaseLanguageSemanticSeque
 	 *     ValueRule returns Instance
 	 *
 	 * Constraint:
-	 *     (definition=[TypeDefinition|QualifiedNameRule] attributes+=AttributeRule*)
+	 *     (definition=[TypeDefinition|QualifiedName] attributes+=AttributeRule*)
 	 * </pre>
 	 */
 	protected void sequence_InstanceRule(ISerializationContext context, Instance semanticObject) {
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSyntacticSequencer.java b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSyntacticSequencer.java
index 42cc052e..06ecda50 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSyntacticSequencer.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/serializer/InstanceLanguageSyntacticSequencer.java
@@ -54,7 +54,7 @@ public class InstanceLanguageSyntacticSequencer extends AbstractSyntacticSequenc
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
-	 *     definition=[TypeDefinition|QualifiedNameRule] (ambiguity) (rule end)
+	 *     definition=[TypeDefinition|QualifiedName] (ambiguity) (rule end)
 	 
 	 * </pre>
 	 */
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/services/InstanceLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/services/InstanceLanguageGrammarAccess.java
index 83f928c7..75f67ffe 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/services/InstanceLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src-gen/de/evoal/languages/model/instance/dsl/services/InstanceLanguageGrammarAccess.java
@@ -32,7 +32,7 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Assignment cDefinitionAssignment_0 = (Assignment)cGroup.eContents().get(0);
 		private final CrossReference cDefinitionTypeDefinitionCrossReference_0_0 = (CrossReference)cDefinitionAssignment_0.eContents().get(0);
-		private final RuleCall cDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1 = (RuleCall)cDefinitionTypeDefinitionCrossReference_0_0.eContents().get(1);
+		private final RuleCall cDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1 = (RuleCall)cDefinitionTypeDefinitionCrossReference_0_0.eContents().get(1);
 		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
 		private final Keyword cLeftCurlyBracketKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
 		private final Assignment cAttributesAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
@@ -40,25 +40,25 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		private final Keyword cRightCurlyBracketKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
 		
 		//InstanceRule returns Instance:
-		//    definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+		//    definition = [base::TypeDefinition|QualifiedName] ('{'
 		//      attributes += AttributeRule*
 		//    '}')?
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+		//definition = [base::TypeDefinition|QualifiedName] ('{'
 		//  attributes += AttributeRule*
 		//'}')?
 		public Group getGroup() { return cGroup; }
 		
-		//definition = [base::TypeDefinition|QualifiedNameRule]
+		//definition = [base::TypeDefinition|QualifiedName]
 		public Assignment getDefinitionAssignment_0() { return cDefinitionAssignment_0; }
 		
-		//[base::TypeDefinition|QualifiedNameRule]
+		//[base::TypeDefinition|QualifiedName]
 		public CrossReference getDefinitionTypeDefinitionCrossReference_0_0() { return cDefinitionTypeDefinitionCrossReference_0_0; }
 		
-		//QualifiedNameRule
-		public RuleCall getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1() { return cDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1; }
+		//QualifiedName
+		public RuleCall getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1() { return cDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1; }
 		
 		//('{'
 		//     attributes += AttributeRule*
@@ -249,33 +249,6 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		//StringOrId
 		public RuleCall getDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1() { return cDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1; }
 	}
-	public class QualifiedNameRuleElements extends AbstractParserRuleElementFinder {
-		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "de.evoal.languages.model.instance.dsl.InstanceLanguage.QualifiedNameRule");
-		private final Group cGroup = (Group)rule.eContents().get(1);
-		private final RuleCall cStringOrIdParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
-		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
-		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
-		private final RuleCall cStringOrIdParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
-		
-		//QualifiedNameRule:
-		//    StringOrId ('.' StringOrId)*;
-		@Override public ParserRule getRule() { return rule; }
-		
-		//StringOrId ('.' StringOrId)*
-		public Group getGroup() { return cGroup; }
-		
-		//StringOrId
-		public RuleCall getStringOrIdParserRuleCall_0() { return cStringOrIdParserRuleCall_0; }
-		
-		//('.' StringOrId)*
-		public Group getGroup_1() { return cGroup_1; }
-		
-		//'.'
-		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }
-		
-		//StringOrId
-		public RuleCall getStringOrIdParserRuleCall_1_1() { return cStringOrIdParserRuleCall_1_1; }
-	}
 	
 	
 	private final InstanceRuleElements pInstanceRule;
@@ -284,7 +257,6 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 	private final ArrayRuleElements pArrayRule;
 	private final LiteralValueRuleElements pLiteralValueRule;
 	private final DataReferenceRuleElements pDataReferenceRule;
-	private final QualifiedNameRuleElements pQualifiedNameRule;
 	
 	private final Grammar grammar;
 	
@@ -305,7 +277,6 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		this.pArrayRule = new ArrayRuleElements();
 		this.pLiteralValueRule = new LiteralValueRuleElements();
 		this.pDataReferenceRule = new DataReferenceRuleElements();
-		this.pQualifiedNameRule = new QualifiedNameRuleElements();
 	}
 	
 	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
@@ -340,7 +311,7 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 
 	
 	//InstanceRule returns Instance:
-	//    definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+	//    definition = [base::TypeDefinition|QualifiedName] ('{'
 	//      attributes += AttributeRule*
 	//    '}')?
 	//;
@@ -409,16 +380,6 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		return getDataReferenceRuleAccess().getRule();
 	}
 	
-	//QualifiedNameRule:
-	//    StringOrId ('.' StringOrId)*;
-	public QualifiedNameRuleElements getQualifiedNameRuleAccess() {
-		return pQualifiedNameRule;
-	}
-	
-	public ParserRule getQualifiedNameRuleRule() {
-		return getQualifiedNameRuleAccess().getRule();
-	}
-	
 	//ExpressionRule returns Expression:
 	//    OrExpressionRule
 	//;
@@ -611,7 +572,7 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public BaseLanguageGrammarAccess.ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return gaBaseLanguage.getValueReferenceRuleAccess();
@@ -621,6 +582,17 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -883,6 +855,17 @@ public class InstanceLanguageGrammarAccess extends AbstractElementFinder.Abstrac
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.instance.dsl/src/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtext b/src/languages/de.evoal.languages.model.instance.dsl/src/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtext
index b943e3e8..7997d862 100644
--- a/src/languages/de.evoal.languages.model.instance.dsl/src/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtext
+++ b/src/languages/de.evoal.languages.model.instance.dsl/src/de/evoal/languages/model/instance/dsl/InstanceLanguage.xtext
@@ -6,7 +6,7 @@ import "https://www.evoal.de/languages/ddl/1.0.0" as ddl
 import "https://www.evoal.de/languages/base/1.0.0" as base
 
 InstanceRule returns Instance:
-	definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+	definition = [base::TypeDefinition|QualifiedName] ('{'
 	  attributes += AttributeRule*
 	'}')?
 ;
@@ -31,7 +31,4 @@ LiteralValueRule returns LiteralValue:
 DataReferenceRule returns DataReference:
 	{DataReference}
 	'data' definition = [ddl::DataDescription|StringOrId]
-;
-
-QualifiedNameRule:
-    StringOrId ('.' StringOrId)*;
+;
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/MachineLearningLanguageParser.java b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/MachineLearningLanguageParser.java
index f4b14c15..179d99df 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/MachineLearningLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/MachineLearningLanguageParser.java
@@ -70,8 +70,6 @@ public class MachineLearningLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2(), "rule__ArrayRule__Group_2__0");
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2_1(), "rule__ArrayRule__Group_2_1__0");
 			builder.put(grammarAccess.getDataReferenceRuleAccess().getGroup(), "rule__DataReferenceRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup(), "rule__QualifiedNameRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup_1(), "rule__QualifiedNameRule__Group_1__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup(), "rule__OrExpressionRule__Group__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup_1(), "rule__OrExpressionRule__Group_1__0");
 			builder.put(grammarAccess.getXorExpressionRuleAccess().getGroup(), "rule__XorExpressionRule__Group__0");
@@ -92,7 +90,6 @@ public class MachineLearningLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -114,6 +111,7 @@ public class MachineLearningLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -182,6 +180,7 @@ public class MachineLearningLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -202,6 +201,9 @@ public class MachineLearningLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.g b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.g
index b2269a84..d3434b00 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.g
+++ b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.g
@@ -501,31 +501,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule
-:
-{ before(grammarAccess.getQualifiedNameRuleRule()); }
-	 ruleQualifiedNameRule
-{ after(grammarAccess.getQualifiedNameRuleRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-		(rule__QualifiedNameRule__Group__0)
-		{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule
 :
@@ -892,9 +867,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -1051,6 +1051,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -4542,114 +4567,6 @@ finally {
 }
 
 
-rule__QualifiedNameRule__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__0__Impl
-	rule__QualifiedNameRule__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-	(rule__QualifiedNameRule__Group_1__0)*
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedNameRule__Group_1__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__0__Impl
-	rule__QualifiedNameRule__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-	'.'
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__OrExpressionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -5811,53 +5728,161 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
+rule__DoubleLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__0__Impl
+	rule__DoubleLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__DoubleLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__DoubleLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntegerLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
+	rule__IntegerLiteralRule__Group__0__Impl
+	rule__IntegerLiteralRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__0__Impl
+rule__IntegerLiteralRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__IntegerLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__IntegerLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__BooleanLiteralRule__Group__0__Impl
+	rule__BooleanLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__BooleanLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1
+rule__BooleanLiteralRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__1__Impl
+	rule__BooleanLiteralRule__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1__Impl
+rule__BooleanLiteralRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	(rule__BooleanLiteralRule__Alternatives_1)
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
 )
 ;
 finally {
@@ -5865,161 +5890,242 @@ finally {
 }
 
 
-rule__DoubleLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__0__Impl
-	rule__DoubleLiteralRule__Group__1
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__DoubleLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__DoubleLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__IntegerLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__2__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__0__Impl
-	rule__IntegerLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__IntegerLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__IntegerLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__BooleanLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__0__Impl
-	rule__BooleanLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
-	()
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1
+
+rule__TypeDefinitionRule__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
-	(rule__BooleanLiteralRule__Alternatives_1)
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
 )
 ;
 finally {
@@ -7524,9 +7630,9 @@ rule__InstanceRule__DefinitionAssignment_0
 	(
 		{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 		(
-			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
-			ruleQualifiedNameRule
-			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
+			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
 		)
 		{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 	)
@@ -8042,6 +8148,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -8136,6 +8261,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.tokens b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.tokens
index 70e4a546..f6bfa658 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguage.tokens
@@ -1,13 +1,13 @@
-'!'=93
+'!'=94
 '!='=19
 '%'=26
-'('=79
-')'=80
+'('=78
+')'=79
 '*'=24
 '+'=22
 ','=53
 '-'=23
-'.'=74
+'.'=93
 '/'=25
 ':'=82
 ':='=72
@@ -17,21 +17,22 @@
 '='=18
 '>'=17
 '>='=16
-'AND'=77
+'AND'=76
 'E'=29
 'G'=32
 'M'=33
-'OR'=75
+'OR'=74
 'P'=30
 'T'=31
-'XOR'=76
+'XOR'=75
 'Y'=27
 'Z'=28
 '['=68
 '\u00B5'=40
 ']'=69
-'^'=78
+'^'=77
 'a'=44
+'abstract'=96
 'and'=61
 'array'=92
 'boolean'=90
@@ -41,6 +42,7 @@
 'data'=73
 'end'=64
 'expression'=87
+'extends'=81
 'f'=43
 'false'=15
 'float'=89
@@ -67,10 +69,10 @@
 'store'=62
 'string'=86
 'to'=51
-'true'=94
+'true'=95
+'type'=80
 'use'=47
 'using'=52
-'value'=81
 'void'=91
 'with'=55
 'y'=46
@@ -169,3 +171,5 @@ T__91=91
 T__92=92
 T__93=93
 T__94=94
+T__95=95
+T__96=96
diff --git a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageLexer.java b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageLexer.java
index e26728bc..a52be651 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageLexer.java
@@ -68,6 +68,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int T__95=95;
+    public static final int T__96=96;
     public static final int T__26=26;
     public static final int T__27=27;
     public static final int T__28=28;
@@ -1329,10 +1331,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:70:7: ( '.' )
-            // InternalMachineLearningLanguage.g:70:9: '.'
+            // InternalMachineLearningLanguage.g:70:7: ( 'OR' )
+            // InternalMachineLearningLanguage.g:70:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -1349,10 +1352,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:71:7: ( 'OR' )
-            // InternalMachineLearningLanguage.g:71:9: 'OR'
+            // InternalMachineLearningLanguage.g:71:7: ( 'XOR' )
+            // InternalMachineLearningLanguage.g:71:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -1370,10 +1373,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:72:7: ( 'XOR' )
-            // InternalMachineLearningLanguage.g:72:9: 'XOR'
+            // InternalMachineLearningLanguage.g:72:7: ( 'AND' )
+            // InternalMachineLearningLanguage.g:72:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -1391,11 +1394,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:73:7: ( 'AND' )
-            // InternalMachineLearningLanguage.g:73:9: 'AND'
+            // InternalMachineLearningLanguage.g:73:7: ( '^' )
+            // InternalMachineLearningLanguage.g:73:9: '^'
             {
-            match("AND"); 
-
+            match('^'); 
 
             }
 
@@ -1412,10 +1414,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:74:7: ( '^' )
-            // InternalMachineLearningLanguage.g:74:9: '^'
+            // InternalMachineLearningLanguage.g:74:7: ( '(' )
+            // InternalMachineLearningLanguage.g:74:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -1432,10 +1434,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:75:7: ( '(' )
-            // InternalMachineLearningLanguage.g:75:9: '('
+            // InternalMachineLearningLanguage.g:75:7: ( ')' )
+            // InternalMachineLearningLanguage.g:75:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -1452,10 +1454,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:76:7: ( ')' )
-            // InternalMachineLearningLanguage.g:76:9: ')'
+            // InternalMachineLearningLanguage.g:76:7: ( 'type' )
+            // InternalMachineLearningLanguage.g:76:9: 'type'
             {
-            match(')'); 
+            match("type"); 
+
 
             }
 
@@ -1472,10 +1475,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:77:7: ( 'value' )
-            // InternalMachineLearningLanguage.g:77:9: 'value'
+            // InternalMachineLearningLanguage.g:77:7: ( 'extends' )
+            // InternalMachineLearningLanguage.g:77:9: 'extends'
             {
-            match("value"); 
+            match("extends"); 
 
 
             }
@@ -1722,10 +1725,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:89:7: ( '!' )
-            // InternalMachineLearningLanguage.g:89:9: '!'
+            // InternalMachineLearningLanguage.g:89:7: ( '.' )
+            // InternalMachineLearningLanguage.g:89:9: '.'
             {
-            match('!'); 
+            match('.'); 
 
             }
 
@@ -1742,8 +1745,28 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:90:7: ( 'true' )
-            // InternalMachineLearningLanguage.g:90:9: 'true'
+            // InternalMachineLearningLanguage.g:90:7: ( '!' )
+            // InternalMachineLearningLanguage.g:90:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__94"
+
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalMachineLearningLanguage.g:91:7: ( 'true' )
+            // InternalMachineLearningLanguage.g:91:9: 'true'
             {
             match("true"); 
 
@@ -1756,13 +1779,34 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__94"
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalMachineLearningLanguage.g:92:7: ( 'abstract' )
+            // InternalMachineLearningLanguage.g:92:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
 
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:8286:21: ( '0' .. '9' )
-            // InternalMachineLearningLanguage.g:8286:23: '0' .. '9'
+            // InternalMachineLearningLanguage.g:8479:21: ( '0' .. '9' )
+            // InternalMachineLearningLanguage.g:8479:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1777,11 +1821,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:8288:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalMachineLearningLanguage.g:8288:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:8481:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalMachineLearningLanguage.g:8481:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalMachineLearningLanguage.g:8288:30: ( '+' | '-' )?
+            // InternalMachineLearningLanguage.g:8481:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1807,7 +1851,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
             }
 
-            // InternalMachineLearningLanguage.g:8288:41: ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:8481:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1821,7 +1865,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8288:41: RULE_DIGIT
+            	    // InternalMachineLearningLanguage.g:8481:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1851,10 +1895,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8290:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalMachineLearningLanguage.g:8290:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:8483:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalMachineLearningLanguage.g:8483:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalMachineLearningLanguage.g:8290:12: ( '-' )?
+            // InternalMachineLearningLanguage.g:8483:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1863,7 +1907,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:8290:12: '-'
+                    // InternalMachineLearningLanguage.g:8483:12: '-'
                     {
                     match('-'); 
 
@@ -1872,7 +1916,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
             }
 
-            // InternalMachineLearningLanguage.g:8290:17: ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:8483:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1886,7 +1930,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8290:17: RULE_DIGIT
+            	    // InternalMachineLearningLanguage.g:8483:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1918,15 +1962,15 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8292:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalMachineLearningLanguage.g:8292:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalMachineLearningLanguage.g:8485:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalMachineLearningLanguage.g:8485:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalMachineLearningLanguage.g:8292:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalMachineLearningLanguage.g:8485:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:8292:16: RULE_INT RULE_EXPONENT
+                    // InternalMachineLearningLanguage.g:8485:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1934,11 +1978,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:8292:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalMachineLearningLanguage.g:8485:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalMachineLearningLanguage.g:8292:52: ( RULE_DIGIT )*
+                    // InternalMachineLearningLanguage.g:8485:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1951,7 +1995,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalMachineLearningLanguage.g:8292:52: RULE_DIGIT
+                    	    // InternalMachineLearningLanguage.g:8485:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1963,7 +2007,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalMachineLearningLanguage.g:8292:64: ( RULE_EXPONENT )?
+                    // InternalMachineLearningLanguage.g:8485:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1972,7 +2016,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalMachineLearningLanguage.g:8292:64: RULE_EXPONENT
+                            // InternalMachineLearningLanguage.g:8485:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -2003,11 +2047,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8294:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalMachineLearningLanguage.g:8294:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalMachineLearningLanguage.g:8487:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalMachineLearningLanguage.g:8487:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalMachineLearningLanguage.g:8294:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalMachineLearningLanguage.g:8487:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -2023,7 +2067,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8294:20: '\\\\' .
+            	    // InternalMachineLearningLanguage.g:8487:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2031,7 +2075,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalMachineLearningLanguage.g:8294:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalMachineLearningLanguage.g:8487:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2068,11 +2112,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8296:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalMachineLearningLanguage.g:8296:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalMachineLearningLanguage.g:8489:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalMachineLearningLanguage.g:8489:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalMachineLearningLanguage.g:8296:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalMachineLearningLanguage.g:8489:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -2088,7 +2132,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8296:24: '\\\\' .
+            	    // InternalMachineLearningLanguage.g:8489:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2096,7 +2140,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalMachineLearningLanguage.g:8296:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalMachineLearningLanguage.g:8489:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2133,10 +2177,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8298:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalMachineLearningLanguage.g:8298:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalMachineLearningLanguage.g:8491:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalMachineLearningLanguage.g:8491:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalMachineLearningLanguage.g:8298:11: ( '^' )?
+            // InternalMachineLearningLanguage.g:8491:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -2145,7 +2189,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:8298:11: '^'
+                    // InternalMachineLearningLanguage.g:8491:11: '^'
                     {
                     match('^'); 
 
@@ -2163,7 +2207,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalMachineLearningLanguage.g:8298:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalMachineLearningLanguage.g:8491:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -2212,12 +2256,12 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8300:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalMachineLearningLanguage.g:8300:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalMachineLearningLanguage.g:8493:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalMachineLearningLanguage.g:8493:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalMachineLearningLanguage.g:8300:24: ( options {greedy=false; } : . )*
+            // InternalMachineLearningLanguage.g:8493:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2242,7 +2286,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8300:52: .
+            	    // InternalMachineLearningLanguage.g:8493:52: .
             	    {
             	    matchAny(); 
 
@@ -2272,12 +2316,12 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8302:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalMachineLearningLanguage.g:8302:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalMachineLearningLanguage.g:8495:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalMachineLearningLanguage.g:8495:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalMachineLearningLanguage.g:8302:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalMachineLearningLanguage.g:8495:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2290,7 +2334,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:8302:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalMachineLearningLanguage.g:8495: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();
@@ -2310,7 +2354,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalMachineLearningLanguage.g:8302:40: ( ( '\\r' )? '\\n' )?
+            // InternalMachineLearningLanguage.g:8495:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2319,9 +2363,9 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:8302:41: ( '\\r' )? '\\n'
+                    // InternalMachineLearningLanguage.g:8495:41: ( '\\r' )? '\\n'
                     {
-                    // InternalMachineLearningLanguage.g:8302:41: ( '\\r' )?
+                    // InternalMachineLearningLanguage.g:8495:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2330,7 +2374,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalMachineLearningLanguage.g:8302:41: '\\r'
+                            // InternalMachineLearningLanguage.g:8495:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2362,10 +2406,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8304:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalMachineLearningLanguage.g:8304:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalMachineLearningLanguage.g:8497:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalMachineLearningLanguage.g:8497:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalMachineLearningLanguage.g:8304:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalMachineLearningLanguage.g:8497:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2419,8 +2463,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:8306:16: ( . )
-            // InternalMachineLearningLanguage.g:8306:18: .
+            // InternalMachineLearningLanguage.g:8499:16: ( . )
+            // InternalMachineLearningLanguage.g:8499:18: .
             {
             matchAny(); 
 
@@ -2435,8 +2479,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalMachineLearningLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=89;
+        // InternalMachineLearningLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=91;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -3000,63 +3044,77 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 }
                 break;
             case 81 :
-                // InternalMachineLearningLanguage.g:1:490: RULE_INT
+                // InternalMachineLearningLanguage.g:1:490: T__95
                 {
-                mRULE_INT(); 
+                mT__95(); 
 
                 }
                 break;
             case 82 :
-                // InternalMachineLearningLanguage.g:1:499: RULE_DOUBLE
+                // InternalMachineLearningLanguage.g:1:496: T__96
                 {
-                mRULE_DOUBLE(); 
+                mT__96(); 
 
                 }
                 break;
             case 83 :
-                // InternalMachineLearningLanguage.g:1:511: RULE_STRING
+                // InternalMachineLearningLanguage.g:1:502: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 84 :
-                // InternalMachineLearningLanguage.g:1:523: RULE_QUOTED_ID
+                // InternalMachineLearningLanguage.g:1:511: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 85 :
-                // InternalMachineLearningLanguage.g:1:538: RULE_ID
+                // InternalMachineLearningLanguage.g:1:523: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 86 :
-                // InternalMachineLearningLanguage.g:1:546: RULE_ML_COMMENT
+                // InternalMachineLearningLanguage.g:1:535: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 87 :
-                // InternalMachineLearningLanguage.g:1:562: RULE_SL_COMMENT
+                // InternalMachineLearningLanguage.g:1:550: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 88 :
-                // InternalMachineLearningLanguage.g:1:578: RULE_WS
+                // InternalMachineLearningLanguage.g:1:558: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 89 :
-                // InternalMachineLearningLanguage.g:1:586: RULE_ANY_OTHER
+                // InternalMachineLearningLanguage.g:1:574: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 90 :
+                // InternalMachineLearningLanguage.g:1:590: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 91 :
+                // InternalMachineLearningLanguage.g:1:598: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3120,23 +3178,23 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "8292:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "8485:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\100\1\103\1\uffff\1\106\1\110\1\uffff\1\113\1\uffff\1\117\1\uffff\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\133\1\134\1\137\1\uffff\1\141\1\144\1\147\1\150\1\151\1\101\1\uffff\1\101\1\uffff\5\101\4\uffff\1\174\1\uffff\3\101\1\u0081\2\uffff\1\101\1\uffff\1\101\1\u0088\2\72\3\uffff\5\101\12\uffff\1\u0088\17\uffff\1\u0093\2\uffff\2\101\3\uffff\2\101\1\uffff\2\101\3\uffff\1\101\1\uffff\1\u009c\1\101\1\uffff\7\101\1\u00a8\7\uffff\1\u00a9\2\101\3\uffff\2\101\1\uffff\1\101\5\uffff\3\101\1\u00b2\2\101\1\uffff\4\101\1\u00ba\1\101\1\u00bc\1\101\1\uffff\7\101\1\u00c5\2\101\1\u00c8\2\uffff\1\u00c9\1\u00ca\5\101\1\u00d0\1\uffff\1\101\1\u00d2\1\u00d3\4\101\1\uffff\1\101\1\uffff\1\101\1\u00da\1\101\1\u00dc\1\101\1\u00de\2\101\1\uffff\2\101\3\uffff\1\101\1\u00e4\1\101\1\u00e6\1\101\1\uffff\1\u00e8\2\uffff\4\101\1\u00ed\1\u00ee\1\uffff\1\u00ef\1\uffff\1\101\1\uffff\1\u00f1\3\101\1\u00f5\1\uffff\1\101\1\uffff\1\101\1\uffff\4\101\3\uffff\1\101\1\uffff\1\u00fd\2\101\1\uffff\2\101\1\u0102\1\u0103\1\u0105\1\101\1\u0107\1\uffff\2\101\1\u010a\1\u010b\2\uffff\1\101\1\uffff\1\101\1\uffff\1\101\1\u010f\2\uffff\3\101\1\uffff\1\u0113\1\u0114\1\u0115\3\uffff";
+        "\1\uffff\1\100\1\103\1\uffff\1\106\1\110\1\uffff\1\113\1\uffff\1\117\1\uffff\1\121\1\122\1\123\1\124\1\125\1\126\1\127\1\130\1\131\1\133\1\134\1\137\1\uffff\1\141\1\144\1\150\1\151\1\152\1\101\1\uffff\1\101\1\uffff\5\101\4\uffff\1\176\3\101\1\u0082\3\uffff\2\101\1\uffff\1\u0089\2\72\3\uffff\5\101\12\uffff\1\u0089\17\uffff\1\u0094\2\uffff\2\101\3\uffff\2\101\1\uffff\3\101\3\uffff\1\101\1\uffff\1\u009e\2\101\1\uffff\7\101\1\u00ac\6\uffff\1\u00ad\2\101\4\uffff\2\101\6\uffff\3\101\1\u00b5\2\101\1\uffff\4\101\1\u00bd\2\101\1\u00c0\1\101\1\uffff\10\101\1\u00ca\3\101\1\u00ce\2\uffff\1\u00cf\1\u00d0\4\101\1\u00d5\1\uffff\1\101\1\u00d7\1\u00d8\4\101\1\uffff\2\101\1\uffff\1\101\1\u00e0\1\u00e1\1\101\1\u00e3\1\101\1\u00e5\2\101\1\uffff\3\101\3\uffff\1\101\1\u00ec\1\u00ed\1\101\1\uffff\1\u00ef\2\uffff\4\101\1\u00f4\1\101\1\u00f6\2\uffff\1\u00f7\1\uffff\1\101\1\uffff\1\u00f9\5\101\2\uffff\1\101\1\uffff\4\101\1\uffff\1\101\2\uffff\1\101\1\uffff\1\u0106\5\101\1\u010c\1\u010d\1\u010f\2\101\1\u0112\1\uffff\1\u0113\2\101\1\u0116\1\u0117\2\uffff\1\101\1\uffff\1\101\1\u011a\2\uffff\1\101\1\u011c\2\uffff\2\101\1\uffff\1\101\1\uffff\1\u0120\1\u0121\1\u0122\3\uffff";
     static final String DFA17_eofS =
-        "\u0116\uffff";
+        "\u0123\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\163\1\uffff\1\157\1\uffff\1\141\1\151\1\164\2\156\4\uffff\1\75\1\uffff\1\122\1\117\1\116\1\101\2\uffff\1\141\1\uffff\1\157\1\56\2\0\3\uffff\1\154\1\156\1\157\1\162\1\157\12\uffff\1\56\17\uffff\1\60\2\uffff\1\160\1\141\3\uffff\1\145\1\162\1\uffff\1\144\1\162\3\uffff\1\145\1\uffff\1\60\1\165\1\uffff\1\171\1\157\2\164\1\157\1\144\1\160\1\60\7\uffff\1\60\1\122\1\104\3\uffff\1\154\1\151\1\uffff\1\157\5\uffff\1\163\1\143\1\155\1\60\2\141\1\uffff\1\160\1\163\1\144\1\141\1\60\1\141\1\60\1\156\1\uffff\2\145\1\160\1\145\1\150\1\162\1\151\1\60\1\162\1\164\1\60\2\uffff\2\60\1\165\1\144\1\154\1\145\1\164\1\60\1\uffff\1\164\2\60\1\151\1\165\1\151\1\155\1\uffff\1\171\1\uffff\1\147\1\60\1\162\1\60\1\162\1\60\1\145\1\156\1\uffff\1\145\1\141\3\uffff\1\145\1\60\1\145\1\60\1\151\1\uffff\1\60\2\uffff\1\156\1\162\1\143\1\145\2\60\1\uffff\1\60\1\uffff\1\141\1\uffff\1\60\1\147\1\163\1\156\1\60\1\uffff\1\141\1\uffff\1\157\1\uffff\1\147\1\145\2\164\3\uffff\1\154\1\uffff\1\60\1\163\1\143\1\uffff\2\156\3\60\1\145\1\60\1\uffff\1\151\1\145\2\60\2\uffff\1\157\1\uffff\1\162\1\uffff\1\157\1\60\2\uffff\1\156\1\163\1\156\1\uffff\3\60\3\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\163\1\uffff\1\157\1\uffff\1\141\1\151\1\164\2\156\4\uffff\1\75\1\122\1\117\1\116\1\101\3\uffff\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\156\1\157\1\162\1\157\12\uffff\1\56\17\uffff\1\60\2\uffff\1\160\1\141\3\uffff\1\145\1\162\1\uffff\1\144\1\162\1\163\3\uffff\1\145\1\uffff\1\60\1\160\1\165\1\uffff\1\171\1\157\2\164\1\157\1\144\1\160\1\60\6\uffff\1\60\1\122\1\104\4\uffff\1\157\1\151\6\uffff\1\163\1\143\1\155\1\60\2\141\1\uffff\1\160\1\163\1\144\1\141\1\60\1\141\1\164\1\60\1\156\1\uffff\3\145\1\160\1\145\1\150\1\162\1\151\1\60\1\145\1\162\1\164\1\60\2\uffff\2\60\1\154\1\144\1\145\1\164\1\60\1\uffff\1\164\2\60\1\151\1\165\1\151\1\155\1\uffff\1\171\1\162\1\uffff\1\147\2\60\1\162\1\60\1\162\1\60\1\145\1\156\1\uffff\1\156\1\145\1\141\3\uffff\1\145\2\60\1\151\1\uffff\1\60\2\uffff\1\156\1\162\1\143\1\145\1\60\1\141\1\60\2\uffff\1\60\1\uffff\1\141\1\uffff\1\60\1\147\1\144\1\163\1\156\1\141\2\uffff\1\157\1\uffff\1\147\1\145\2\164\1\uffff\1\143\2\uffff\1\154\1\uffff\1\60\2\163\1\143\2\156\3\60\1\145\1\164\1\60\1\uffff\1\60\1\151\1\145\2\60\2\uffff\1\157\1\uffff\1\162\1\60\2\uffff\1\157\1\60\2\uffff\1\156\1\163\1\uffff\1\156\1\uffff\3\60\3\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\163\1\uffff\1\162\1\uffff\1\157\1\151\1\164\1\170\1\156\4\uffff\1\75\1\uffff\1\122\1\117\1\116\1\172\2\uffff\1\157\1\uffff\1\157\1\145\2\uffff\3\uffff\1\154\1\156\1\157\1\162\1\157\12\uffff\1\145\17\uffff\1\172\2\uffff\1\160\1\141\3\uffff\1\145\1\162\1\uffff\1\144\1\162\3\uffff\1\151\1\uffff\1\172\1\165\1\uffff\1\171\1\157\2\164\1\162\1\144\1\160\1\172\7\uffff\1\172\1\122\1\104\3\uffff\1\154\1\151\1\uffff\1\157\5\uffff\1\163\1\143\1\155\1\172\2\141\1\uffff\2\163\1\144\1\141\1\172\1\141\1\172\1\156\1\uffff\2\145\1\160\1\145\1\150\1\162\1\151\1\172\1\162\1\164\1\172\2\uffff\2\172\1\165\1\144\1\154\1\145\1\164\1\172\1\uffff\1\164\2\172\1\151\1\165\1\151\1\155\1\uffff\1\171\1\uffff\1\147\1\172\1\162\1\172\1\162\1\172\1\145\1\156\1\uffff\1\145\1\141\3\uffff\1\145\1\172\1\145\1\172\1\151\1\uffff\1\172\2\uffff\1\156\1\162\1\143\1\145\2\172\1\uffff\1\172\1\uffff\1\141\1\uffff\1\172\1\147\1\163\1\156\1\172\1\uffff\1\141\1\uffff\1\157\1\uffff\1\147\1\145\2\164\3\uffff\1\154\1\uffff\1\172\1\163\1\143\1\uffff\2\156\3\172\1\145\1\172\1\uffff\1\151\1\145\2\172\2\uffff\1\157\1\uffff\1\162\1\uffff\1\157\1\172\2\uffff\1\156\1\163\1\156\1\uffff\3\172\3\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\163\1\uffff\1\171\1\uffff\1\157\1\151\1\164\1\170\1\156\4\uffff\1\75\1\122\1\117\1\116\1\172\3\uffff\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\156\1\157\1\162\1\157\12\uffff\1\145\17\uffff\1\172\2\uffff\1\160\1\141\3\uffff\1\145\1\162\1\uffff\1\144\1\162\1\163\3\uffff\1\151\1\uffff\1\172\1\160\1\165\1\uffff\1\171\1\157\2\164\1\162\1\144\1\164\1\172\6\uffff\1\172\1\122\1\104\4\uffff\1\157\1\151\6\uffff\1\163\1\143\1\155\1\172\2\141\1\uffff\2\163\1\144\1\141\1\172\1\141\1\164\1\172\1\156\1\uffff\3\145\1\160\1\145\1\150\1\162\1\151\1\172\1\145\1\162\1\164\1\172\2\uffff\2\172\1\154\1\144\1\145\1\164\1\172\1\uffff\1\164\2\172\1\151\1\165\1\151\1\155\1\uffff\1\171\1\162\1\uffff\1\147\2\172\1\162\1\172\1\162\1\172\1\145\1\156\1\uffff\1\156\1\145\1\141\3\uffff\1\145\2\172\1\151\1\uffff\1\172\2\uffff\1\156\1\162\1\143\1\145\1\172\1\141\1\172\2\uffff\1\172\1\uffff\1\141\1\uffff\1\172\1\147\1\144\1\163\1\156\1\141\2\uffff\1\157\1\uffff\1\147\1\145\2\164\1\uffff\1\143\2\uffff\1\154\1\uffff\1\172\2\163\1\143\2\156\3\172\1\145\1\164\1\172\1\uffff\1\172\1\151\1\145\2\172\2\uffff\1\157\1\uffff\1\162\1\172\2\uffff\1\157\1\172\2\uffff\1\156\1\163\1\uffff\1\156\1\uffff\3\172\3\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\1\uffff\1\47\5\uffff\1\66\1\67\1\70\1\71\1\uffff\1\74\4\uffff\1\101\1\102\1\uffff\1\107\4\uffff\1\125\1\130\1\131\5\uffff\1\35\1\125\1\2\1\3\1\4\1\5\1\117\1\7\1\6\1\10\1\uffff\1\11\1\12\1\126\1\127\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\2\uffff\1\31\1\32\1\33\2\uffff\1\34\2\uffff\1\36\1\37\1\40\1\uffff\1\42\2\uffff\1\47\10\uffff\1\66\1\67\1\70\1\71\1\72\1\104\1\74\3\uffff\1\100\1\101\1\102\2\uffff\1\107\1\uffff\1\121\1\122\1\123\1\124\1\130\6\uffff\1\26\10\uffff\1\45\13\uffff\1\64\1\75\10\uffff\1\63\7\uffff\1\57\1\uffff\1\41\10\uffff\1\62\2\uffff\1\112\1\76\1\77\5\uffff\1\56\1\uffff\1\73\1\44\6\uffff\1\120\1\uffff\1\65\1\uffff\1\51\5\uffff\1\115\1\uffff\1\1\1\uffff\1\113\4\uffff\1\116\1\46\1\50\1\uffff\1\60\3\uffff\1\103\7\uffff\1\110\4\uffff\1\53\1\61\1\uffff\1\55\1\uffff\1\105\2\uffff\1\114\1\52\3\uffff\1\106\3\uffff\1\43\1\54\1\111";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\1\uffff\1\47\5\uffff\1\66\1\67\1\70\1\71\5\uffff\1\100\1\101\1\107\2\uffff\1\117\3\uffff\1\127\1\132\1\133\5\uffff\1\35\1\127\1\2\1\3\1\4\1\5\1\120\1\7\1\6\1\10\1\uffff\1\11\1\12\1\130\1\131\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\uffff\1\27\1\30\2\uffff\1\31\1\32\1\33\2\uffff\1\34\3\uffff\1\36\1\37\1\40\1\uffff\1\42\3\uffff\1\47\10\uffff\1\66\1\67\1\70\1\71\1\72\1\104\3\uffff\1\77\1\100\1\101\1\107\2\uffff\1\117\1\123\1\124\1\125\1\126\1\132\6\uffff\1\26\11\uffff\1\45\15\uffff\1\64\1\74\7\uffff\1\63\7\uffff\1\57\2\uffff\1\41\11\uffff\1\62\3\uffff\1\112\1\75\1\76\4\uffff\1\56\1\uffff\1\73\1\44\7\uffff\1\102\1\121\1\uffff\1\65\1\uffff\1\51\6\uffff\1\115\1\1\1\uffff\1\113\4\uffff\1\116\1\uffff\1\46\1\50\1\uffff\1\60\14\uffff\1\110\5\uffff\1\53\1\61\1\uffff\1\55\2\uffff\1\105\1\103\2\uffff\1\114\1\52\2\uffff\1\122\1\uffff\1\106\3\uffff\1\43\1\54\1\111";
     static final String DFA17_specialS =
-        "\1\1\65\uffff\1\2\1\0\u00de\uffff}>";
+        "\1\1\65\uffff\1\0\1\2\u00eb\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\72\2\71\2\72\1\71\22\72\1\71\1\4\1\66\2\72\1\12\1\72\1\67\1\60\1\61\1\10\1\6\1\40\1\7\1\53\1\11\12\65\1\52\1\36\1\5\1\3\1\2\2\72\1\56\3\70\1\15\1\70\1\20\5\70\1\21\1\70\1\54\1\16\3\70\1\17\3\70\1\55\1\13\1\14\1\46\1\72\1\47\1\57\1\70\1\72\1\32\1\64\1\25\1\24\1\44\1\1\1\70\1\23\1\45\1\70\1\22\1\41\1\26\1\30\1\70\1\31\2\70\1\43\1\37\1\35\1\62\1\42\1\70\1\34\1\33\1\50\1\63\1\51\67\72\1\27\uff4a\72",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\4\1\66\2\72\1\12\1\72\1\67\1\57\1\60\1\10\1\6\1\40\1\7\1\64\1\11\12\65\1\52\1\36\1\5\1\3\1\2\2\72\1\55\3\70\1\15\1\70\1\20\5\70\1\21\1\70\1\53\1\16\3\70\1\17\3\70\1\54\1\13\1\14\1\46\1\72\1\47\1\56\1\70\1\72\1\32\1\62\1\25\1\24\1\44\1\1\1\70\1\23\1\45\1\70\1\22\1\41\1\26\1\30\1\70\1\31\2\70\1\43\1\37\1\35\1\63\1\42\1\70\1\34\1\33\1\50\1\61\1\51\67\72\1\27\uff4a\72",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\1\73\12\101\1\77\2\101\1\76\2\101\1\75\2\101\1\74\5\101",
             "\1\102",
             "",
@@ -3162,44 +3220,44 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\1\143\20\101\1\142\10\101",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\15\101\1\145\3\101\1\146\10\101",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\1\101\1\147\13\101\1\145\3\101\1\146\10\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\152",
+            "\1\153",
             "",
-            "\1\154\2\uffff\1\155",
+            "\1\155\2\uffff\1\157\6\uffff\1\156",
             "",
-            "\1\157\7\uffff\1\161\5\uffff\1\160",
-            "\1\162",
-            "\1\163",
-            "\1\164\11\uffff\1\165",
-            "\1\166",
+            "\1\161\7\uffff\1\163\5\uffff\1\162",
+            "\1\164",
+            "\1\165",
+            "\1\166\11\uffff\1\167",
+            "\1\170",
             "",
             "",
             "",
             "",
-            "\1\173",
-            "",
-            "\1\176",
+            "\1\175",
             "\1\177",
             "\1\u0080",
+            "\1\u0081",
             "\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
             "",
-            "\1\u0084\15\uffff\1\u0085",
             "",
+            "\1\u0086",
             "\1\u0087",
-            "\1\u0089\1\uffff\12\112\53\uffff\1\u0089",
-            "\0\u008a",
+            "",
+            "\1\u008a\1\uffff\12\112\53\uffff\1\u008a",
             "\0\u008b",
+            "\0\u008c",
             "",
             "",
             "",
-            "\1\u008d",
             "\1\u008e",
             "\1\u008f",
             "\1\u0090",
             "\1\u0091",
+            "\1\u0092",
             "",
             "",
             "",
@@ -3210,7 +3268,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u0089\1\uffff\12\112\53\uffff\1\u0089",
+            "\1\u008a\1\uffff\12\112\53\uffff\1\u008a",
             "",
             "",
             "",
@@ -3226,36 +3284,37 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\23\101\1\u0092\6\101",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\23\101\1\u0093\6\101",
             "",
             "",
-            "\1\u0094",
             "\1\u0095",
+            "\1\u0096",
             "",
             "",
             "",
-            "\1\u0096",
             "\1\u0097",
-            "",
             "\1\u0098",
+            "",
             "\1\u0099",
+            "\1\u009a",
+            "\1\u009b",
             "",
             "",
             "",
-            "\1\u009a\3\uffff\1\u009b",
+            "\1\u009c\3\uffff\1\u009d",
             "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u009d",
-            "",
-            "\1\u009e",
             "\1\u009f",
             "\1\u00a0",
+            "",
             "\1\u00a1",
-            "\1\u00a2\2\uffff\1\u00a3",
+            "\1\u00a2",
+            "\1\u00a3",
             "\1\u00a4",
-            "\1\u00a5",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\22\101\1\u00a6\1\u00a7\6\101",
-            "",
+            "\1\u00a5\2\uffff\1\u00a6",
+            "\1\u00a7",
+            "\1\u00a9\3\uffff\1\u00a8",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\22\101\1\u00aa\1\u00ab\6\101",
             "",
             "",
             "",
@@ -3263,150 +3322,162 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "",
             "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u00aa",
-            "\1\u00ab",
+            "\1\u00ae",
+            "\1\u00af",
             "",
             "",
             "",
-            "\1\u00ac",
-            "\1\u00ad",
             "",
-            "\1\u00ae",
+            "\1\u00b0",
+            "\1\u00b1",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00af",
-            "\1\u00b0",
-            "\1\u00b1",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "",
+            "\1\u00b2",
             "\1\u00b3",
             "\1\u00b4",
-            "",
-            "\1\u00b6\2\uffff\1\u00b5",
-            "\1\u00b7",
-            "\1\u00b8",
-            "\1\u00b9",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00b6",
+            "\1\u00b7",
+            "",
+            "\1\u00b9\2\uffff\1\u00b8",
+            "\1\u00ba",
             "\1\u00bb",
+            "\1\u00bc",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u00bd",
-            "",
             "\1\u00be",
             "\1\u00bf",
-            "\1\u00c0",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\1\u00c1",
+            "",
             "\1\u00c2",
             "\1\u00c3",
             "\1\u00c4",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00c5",
             "\1\u00c6",
             "\1\u00c7",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "",
-            "",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00c8",
+            "\1\u00c9",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\1\u00cb",
             "\1\u00cc",
             "\1\u00cd",
-            "\1\u00ce",
-            "\1\u00cf",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u00d1",
+            "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00d1",
+            "\1\u00d2",
+            "\1\u00d3",
             "\1\u00d4",
-            "\1\u00d5",
-            "\1\u00d6",
-            "\1\u00d7",
-            "",
-            "\1\u00d8",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u00d9",
+            "\1\u00d6",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u00db",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00d9",
+            "\1\u00da",
+            "\1\u00db",
+            "\1\u00dc",
+            "",
             "\1\u00dd",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u00df",
-            "\1\u00e0",
+            "\1\u00de",
             "",
-            "\1\u00e1",
+            "\1\u00df",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\1\u00e2",
-            "",
-            "",
-            "",
-            "\1\u00e3",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\1\u00e5",
+            "\1\u00e4",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00e6",
             "\1\u00e7",
             "",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "",
-            "",
+            "\1\u00e8",
             "\1\u00e9",
             "\1\u00ea",
+            "",
+            "",
+            "",
             "\1\u00eb",
-            "\1\u00ec",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00ee",
             "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u00f0",
             "",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00f0",
+            "\1\u00f1",
             "\1\u00f2",
             "\1\u00f3",
-            "\1\u00f4",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00f5",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u00f6",
             "",
-            "\1\u00f7",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
             "\1\u00f8",
-            "\1\u00f9",
+            "",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\1\u00fa",
             "\1\u00fb",
-            "",
-            "",
-            "",
             "\1\u00fc",
-            "",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u00fd",
             "\1\u00fe",
+            "",
+            "",
             "\1\u00ff",
             "",
             "\1\u0100",
             "\1\u0101",
+            "\1\u0102",
+            "\1\u0103",
+            "",
+            "\1\u0104",
+            "",
+            "",
+            "\1\u0105",
+            "",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u0107",
+            "\1\u0108",
+            "\1\u0109",
+            "\1\u010a",
+            "\1\u010b",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
-            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\10\101\1\u0104\21\101",
-            "\1\u0106",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\10\101\1\u010e\21\101",
+            "\1\u0110",
+            "\1\u0111",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u0108",
-            "\1\u0109",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\1\u0114",
+            "\1\u0115",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
+            "",
             "",
+            "\1\u0118",
             "",
-            "\1\u010c",
+            "\1\u0119",
+            "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
-            "\1\u010d",
             "",
-            "\1\u010e",
+            "\1\u011b",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "",
             "",
-            "\1\u0110",
-            "\1\u0111",
-            "\1\u0112",
+            "\1\u011d",
+            "\1\u011e",
+            "",
+            "\1\u011f",
             "",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
             "\12\101\7\uffff\32\101\4\uffff\1\101\1\uffff\32\101",
@@ -3446,17 +3517,17 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_55 = input.LA(1);
+                        int LA17_54 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 139;}
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 139;}
 
                         else s = 58;
 
@@ -3550,25 +3621,25 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==':') ) {s = 42;}
 
-                        else if ( (LA17_0=='.') ) {s = 43;}
+                        else if ( (LA17_0=='O') ) {s = 43;}
 
-                        else if ( (LA17_0=='O') ) {s = 44;}
+                        else if ( (LA17_0=='X') ) {s = 44;}
 
-                        else if ( (LA17_0=='X') ) {s = 45;}
+                        else if ( (LA17_0=='A') ) {s = 45;}
 
-                        else if ( (LA17_0=='A') ) {s = 46;}
+                        else if ( (LA17_0=='^') ) {s = 46;}
 
-                        else if ( (LA17_0=='^') ) {s = 47;}
+                        else if ( (LA17_0=='(') ) {s = 47;}
 
-                        else if ( (LA17_0=='(') ) {s = 48;}
+                        else if ( (LA17_0==')') ) {s = 48;}
 
-                        else if ( (LA17_0==')') ) {s = 49;}
+                        else if ( (LA17_0=='|') ) {s = 49;}
 
-                        else if ( (LA17_0=='v') ) {s = 50;}
+                        else if ( (LA17_0=='b') ) {s = 50;}
 
-                        else if ( (LA17_0=='|') ) {s = 51;}
+                        else if ( (LA17_0=='v') ) {s = 51;}
 
-                        else if ( (LA17_0=='b') ) {s = 52;}
+                        else if ( (LA17_0=='.') ) {s = 52;}
 
                         else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 53;}
 
@@ -3585,10 +3656,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA17_54 = input.LA(1);
+                        int LA17_55 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 138;}
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 140;}
 
                         else s = 58;
 
diff --git a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageParser.java b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageParser.java
index de74e7eb..f0f5aab3 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl.ide/src-gen/de/evoal/languages/model/mll/dsl/ide/contentassist/antlr/internal/InternalMachineLearningLanguageParser.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 @SuppressWarnings("all")
 public class InternalMachineLearningLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_DOUBLE", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'use'", "';'", "'prediction'", "'maps'", "'to'", "'using'", "','", "'layer'", "'with'", "'function'", "'mapping'", "'parameters'", "'predict'", "'from'", "'and'", "'store'", "'measure'", "'end'", "'for'", "'in'", "'loop'", "'['", "']'", "'{'", "'}'", "':='", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'value'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_STRING", "RULE_INT", "RULE_DOUBLE", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'use'", "';'", "'prediction'", "'maps'", "'to'", "'using'", "','", "'layer'", "'with'", "'function'", "'mapping'", "'parameters'", "'predict'", "'from'", "'and'", "'store'", "'measure'", "'end'", "'for'", "'in'", "'loop'", "'['", "']'", "'{'", "'}'", "':='", "'data'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__59=59;
@@ -81,6 +81,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int T__95=95;
+    public static final int T__96=96;
     public static final int T__26=26;
     public static final int T__27=27;
     public static final int T__28=28;
@@ -1683,97 +1685,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalMachineLearningLanguage.g:505:1: entryRuleQualifiedNameRule : ruleQualifiedNameRule EOF ;
-    public final void entryRuleQualifiedNameRule() throws RecognitionException {
-        try {
-            // InternalMachineLearningLanguage.g:506:1: ( ruleQualifiedNameRule EOF )
-            // InternalMachineLearningLanguage.g:507:1: ruleQualifiedNameRule EOF
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            ruleQualifiedNameRule();
-
-            state._fsp--;
-            if (state.failed) return ;
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleRule()); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return ;
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalMachineLearningLanguage.g:514:1: ruleQualifiedNameRule : ( ( rule__QualifiedNameRule__Group__0 ) ) ;
-    public final void ruleQualifiedNameRule() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalMachineLearningLanguage.g:518:2: ( ( ( rule__QualifiedNameRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:519:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            {
-            // InternalMachineLearningLanguage.g:519:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:520:3: ( rule__QualifiedNameRule__Group__0 )
-            {
-            if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-            }
-            // InternalMachineLearningLanguage.g:521:3: ( rule__QualifiedNameRule__Group__0 )
-            // InternalMachineLearningLanguage.g:521:4: rule__QualifiedNameRule__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
-            }
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-            }
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalMachineLearningLanguage.g:530:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:505:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
     public final void entryRuleExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:531:1: ( ruleExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:532:1: ruleExpressionRule EOF
+            // InternalMachineLearningLanguage.g:506:1: ( ruleExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:507:1: ruleExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionRuleRule()); 
@@ -1803,17 +1720,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalMachineLearningLanguage.g:539:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:514:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
     public final void ruleExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:543:2: ( ( ruleOrExpressionRule ) )
-            // InternalMachineLearningLanguage.g:544:2: ( ruleOrExpressionRule )
+            // InternalMachineLearningLanguage.g:518:2: ( ( ruleOrExpressionRule ) )
+            // InternalMachineLearningLanguage.g:519:2: ( ruleOrExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:544:2: ( ruleOrExpressionRule )
-            // InternalMachineLearningLanguage.g:545:3: ruleOrExpressionRule
+            // InternalMachineLearningLanguage.g:519:2: ( ruleOrExpressionRule )
+            // InternalMachineLearningLanguage.g:520:3: ruleOrExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall()); 
@@ -1848,11 +1765,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalMachineLearningLanguage.g:555:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:530:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
     public final void entryRuleOrExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:556:1: ( ruleOrExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:557:1: ruleOrExpressionRule EOF
+            // InternalMachineLearningLanguage.g:531:1: ( ruleOrExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:532:1: ruleOrExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleRule()); 
@@ -1882,23 +1799,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalMachineLearningLanguage.g:564:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:539:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
     public final void ruleOrExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:568:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:569:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:543:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:544:2: ( ( rule__OrExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:569:2: ( ( rule__OrExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:570:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:544:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:545:3: ( rule__OrExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:571:3: ( rule__OrExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:571:4: rule__OrExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:546:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:546:4: rule__OrExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__0();
@@ -1933,11 +1850,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalMachineLearningLanguage.g:580:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:555:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
     public final void entryRuleXorExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:581:1: ( ruleXorExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:582:1: ruleXorExpressionRule EOF
+            // InternalMachineLearningLanguage.g:556:1: ( ruleXorExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:557:1: ruleXorExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleRule()); 
@@ -1967,23 +1884,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalMachineLearningLanguage.g:589:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:564:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
     public final void ruleXorExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:593:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:594:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:568:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:569:2: ( ( rule__XorExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:594:2: ( ( rule__XorExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:595:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:569:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:570:3: ( rule__XorExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:596:3: ( rule__XorExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:596:4: rule__XorExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:571:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:571:4: rule__XorExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__0();
@@ -2018,11 +1935,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalMachineLearningLanguage.g:605:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:580:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
     public final void entryRuleAndExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:606:1: ( ruleAndExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:607:1: ruleAndExpressionRule EOF
+            // InternalMachineLearningLanguage.g:581:1: ( ruleAndExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:582:1: ruleAndExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleRule()); 
@@ -2052,23 +1969,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalMachineLearningLanguage.g:614:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:589:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
     public final void ruleAndExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:618:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:619:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:593:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:594:2: ( ( rule__AndExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:619:2: ( ( rule__AndExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:620:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:594:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:595:3: ( rule__AndExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:621:3: ( rule__AndExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:621:4: rule__AndExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:596:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:596:4: rule__AndExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__0();
@@ -2103,11 +2020,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalMachineLearningLanguage.g:630:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:605:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
     public final void entryRuleNotExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:631:1: ( ruleNotExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:632:1: ruleNotExpressionRule EOF
+            // InternalMachineLearningLanguage.g:606:1: ( ruleNotExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:607:1: ruleNotExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleRule()); 
@@ -2137,23 +2054,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalMachineLearningLanguage.g:639:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:614:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
     public final void ruleNotExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:643:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:644:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:618:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:619:2: ( ( rule__NotExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:644:2: ( ( rule__NotExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:645:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:619:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:620:3: ( rule__NotExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:646:3: ( rule__NotExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:646:4: rule__NotExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:621:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:621:4: rule__NotExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__0();
@@ -2188,11 +2105,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:655:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:630:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
     public final void entryRuleComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:656:1: ( ruleComparisonExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:657:1: ruleComparisonExpressionRule EOF
+            // InternalMachineLearningLanguage.g:631:1: ( ruleComparisonExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:632:1: ruleComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleRule()); 
@@ -2222,23 +2139,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:664:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:639:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
     public final void ruleComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:668:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:669:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:643:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:644:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:669:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:670:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:644:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:645:3: ( rule__ComparisonExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:671:3: ( rule__ComparisonExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:671:4: rule__ComparisonExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:646:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:646:4: rule__ComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__0();
@@ -2273,11 +2190,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:680:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:655:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
     public final void entryRulePartialComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:681:1: ( rulePartialComparisonExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:682:1: rulePartialComparisonExpressionRule EOF
+            // InternalMachineLearningLanguage.g:656:1: ( rulePartialComparisonExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:657:1: rulePartialComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleRule()); 
@@ -2307,23 +2224,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:689:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:664:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
     public final void rulePartialComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:693:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:694:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:668:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:669:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:694:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:695:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:669:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:670:3: ( rule__PartialComparisonExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:696:3: ( rule__PartialComparisonExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:696:4: rule__PartialComparisonExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:671:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:671:4: rule__PartialComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__0();
@@ -2358,11 +2275,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:705:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:680:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
     public final void entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:706:1: ( ruleAddOrSubtractExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:707:1: ruleAddOrSubtractExpressionRule EOF
+            // InternalMachineLearningLanguage.g:681:1: ( ruleAddOrSubtractExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:682:1: ruleAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
@@ -2392,23 +2309,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:714:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:689:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:718:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:719:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:693:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:694:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:719:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:720:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:694:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:695:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:721:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:721:4: rule__AddOrSubtractExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:696:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:696:4: rule__AddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__0();
@@ -2443,11 +2360,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalMachineLearningLanguage.g:730:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:705:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
     public final void entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:731:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:732:1: ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalMachineLearningLanguage.g:706:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:707:1: ruleMultiplyDivideModuloExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
@@ -2477,23 +2394,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalMachineLearningLanguage.g:739:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:714:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
     public final void ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:743:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:744:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:718:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:719:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:744:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:745:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:719:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:720:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:746:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:746:4: rule__MultiplyDivideModuloExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:721:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:721:4: rule__MultiplyDivideModuloExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__0();
@@ -2528,11 +2445,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalMachineLearningLanguage.g:755:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:730:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
     public final void entryRulePowerOfExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:756:1: ( rulePowerOfExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:757:1: rulePowerOfExpressionRule EOF
+            // InternalMachineLearningLanguage.g:731:1: ( rulePowerOfExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:732:1: rulePowerOfExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleRule()); 
@@ -2562,23 +2479,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalMachineLearningLanguage.g:764:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:739:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
     public final void rulePowerOfExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:768:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:769:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:743:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:744:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:769:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:770:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:744:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:745:3: ( rule__PowerOfExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:771:3: ( rule__PowerOfExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:771:4: rule__PowerOfExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:746:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:746:4: rule__PowerOfExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__0();
@@ -2613,11 +2530,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:780:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:755:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final void entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:781:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:782:1: ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalMachineLearningLanguage.g:756:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:757:1: ruleUnaryAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
@@ -2647,23 +2564,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:789:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:764:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:793:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:794:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:768:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:769:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:794:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:795:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:769:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:770:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:796:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:796:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
+            // InternalMachineLearningLanguage.g:771:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:771:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__0();
@@ -2698,11 +2615,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalMachineLearningLanguage.g:805:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
+    // InternalMachineLearningLanguage.g:780:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
     public final void entryRuleLiteralOrReferenceRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:806:1: ( ruleLiteralOrReferenceRule EOF )
-            // InternalMachineLearningLanguage.g:807:1: ruleLiteralOrReferenceRule EOF
+            // InternalMachineLearningLanguage.g:781:1: ( ruleLiteralOrReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:782:1: ruleLiteralOrReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralOrReferenceRuleRule()); 
@@ -2732,23 +2649,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalMachineLearningLanguage.g:814:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:789:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
     public final void ruleLiteralOrReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:818:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:819:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:793:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:794:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:819:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:820:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalMachineLearningLanguage.g:794:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:795:3: ( rule__LiteralOrReferenceRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralOrReferenceRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:821:3: ( rule__LiteralOrReferenceRule__Alternatives )
-            // InternalMachineLearningLanguage.g:821:4: rule__LiteralOrReferenceRule__Alternatives
+            // InternalMachineLearningLanguage.g:796:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalMachineLearningLanguage.g:796:4: rule__LiteralOrReferenceRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralOrReferenceRule__Alternatives();
@@ -2783,11 +2700,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalMachineLearningLanguage.g:830:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
+    // InternalMachineLearningLanguage.g:805:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
     public final void entryRuleParanthesesRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:831:1: ( ruleParanthesesRule EOF )
-            // InternalMachineLearningLanguage.g:832:1: ruleParanthesesRule EOF
+            // InternalMachineLearningLanguage.g:806:1: ( ruleParanthesesRule EOF )
+            // InternalMachineLearningLanguage.g:807:1: ruleParanthesesRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleRule()); 
@@ -2817,23 +2734,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalMachineLearningLanguage.g:839:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:814:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
     public final void ruleParanthesesRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:843:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:844:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:818:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:819:2: ( ( rule__ParanthesesRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:844:2: ( ( rule__ParanthesesRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:845:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalMachineLearningLanguage.g:819:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:820:3: ( rule__ParanthesesRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:846:3: ( rule__ParanthesesRule__Group__0 )
-            // InternalMachineLearningLanguage.g:846:4: rule__ParanthesesRule__Group__0
+            // InternalMachineLearningLanguage.g:821:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalMachineLearningLanguage.g:821:4: rule__ParanthesesRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__0();
@@ -2868,11 +2785,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalMachineLearningLanguage.g:855:1: entryRuleCallRule : ruleCallRule EOF ;
+    // InternalMachineLearningLanguage.g:830:1: entryRuleCallRule : ruleCallRule EOF ;
     public final void entryRuleCallRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:856:1: ( ruleCallRule EOF )
-            // InternalMachineLearningLanguage.g:857:1: ruleCallRule EOF
+            // InternalMachineLearningLanguage.g:831:1: ( ruleCallRule EOF )
+            // InternalMachineLearningLanguage.g:832:1: ruleCallRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleRule()); 
@@ -2902,23 +2819,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalMachineLearningLanguage.g:864:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:839:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
     public final void ruleCallRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:868:2: ( ( ( rule__CallRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:869:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:843:2: ( ( ( rule__CallRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:844:2: ( ( rule__CallRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:869:2: ( ( rule__CallRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:870:3: ( rule__CallRule__Group__0 )
+            // InternalMachineLearningLanguage.g:844:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:845:3: ( rule__CallRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:871:3: ( rule__CallRule__Group__0 )
-            // InternalMachineLearningLanguage.g:871:4: rule__CallRule__Group__0
+            // InternalMachineLearningLanguage.g:846:3: ( rule__CallRule__Group__0 )
+            // InternalMachineLearningLanguage.g:846:4: rule__CallRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__0();
@@ -2953,11 +2870,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalMachineLearningLanguage.g:880:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
+    // InternalMachineLearningLanguage.g:855:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
     public final void entryRuleValueReferenceRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:881:1: ( ruleValueReferenceRule EOF )
-            // InternalMachineLearningLanguage.g:882:1: ruleValueReferenceRule EOF
+            // InternalMachineLearningLanguage.g:856:1: ( ruleValueReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:857:1: ruleValueReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getValueReferenceRuleRule()); 
@@ -2987,26 +2904,105 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalMachineLearningLanguage.g:889:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:864:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:893:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:894:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:868:2: ( ( ruleConstantReferenceRule ) )
+            // InternalMachineLearningLanguage.g:869:2: ( ruleConstantReferenceRule )
+            {
+            // InternalMachineLearningLanguage.g:869:2: ( ruleConstantReferenceRule )
+            // InternalMachineLearningLanguage.g:870:3: ruleConstantReferenceRule
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalMachineLearningLanguage.g:880:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalMachineLearningLanguage.g:881:1: ( ruleConstantReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:882:1: ruleConstantReferenceRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalMachineLearningLanguage.g:889:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:893:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalMachineLearningLanguage.g:894:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
             {
-            // InternalMachineLearningLanguage.g:894:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:895:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalMachineLearningLanguage.g:894:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalMachineLearningLanguage.g:895:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
             }
-            // InternalMachineLearningLanguage.g:896:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalMachineLearningLanguage.g:896:4: rule__ValueReferenceRule__Group__0
+            // InternalMachineLearningLanguage.g:896:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalMachineLearningLanguage.g:896:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
             if (state.failed) return ;
@@ -3014,7 +3010,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
             }
 
             }
@@ -3034,7 +3030,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
@@ -3547,12 +3543,97 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalMachineLearningLanguage.g:1055:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalMachineLearningLanguage.g:1056:1: ( ruleTypeDefinitionRule EOF )
+            // InternalMachineLearningLanguage.g:1057:1: ruleTypeDefinitionRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleRule()); 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalMachineLearningLanguage.g:1064:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:1068:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1069:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalMachineLearningLanguage.g:1069:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1070:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            }
+            // InternalMachineLearningLanguage.g:1071:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1071:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalMachineLearningLanguage.g:1055:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalMachineLearningLanguage.g:1080:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1056:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalMachineLearningLanguage.g:1057:1: ruleAttributeDefinitionRule EOF
+            // InternalMachineLearningLanguage.g:1081:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalMachineLearningLanguage.g:1082:1: ruleAttributeDefinitionRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleRule()); 
@@ -3582,23 +3663,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalMachineLearningLanguage.g:1064:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1089:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1068:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1069:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1093:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1094:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1069:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1070:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1094:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1095:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1071:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1071:4: rule__AttributeDefinitionRule__Group__0
+            // InternalMachineLearningLanguage.g:1096:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1096:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -3633,11 +3714,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalMachineLearningLanguage.g:1080:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1105:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1081:1: ( ruleTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1082:1: ruleTypeRule EOF
+            // InternalMachineLearningLanguage.g:1106:1: ( ruleTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1107:1: ruleTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeRuleRule()); 
@@ -3667,23 +3748,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalMachineLearningLanguage.g:1089:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1114:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1093:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1094:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1118:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1119:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1094:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1095:3: ( rule__TypeRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1119:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1120:3: ( rule__TypeRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1096:3: ( rule__TypeRule__Alternatives )
-            // InternalMachineLearningLanguage.g:1096:4: rule__TypeRule__Alternatives
+            // InternalMachineLearningLanguage.g:1121:3: ( rule__TypeRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1121:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -3718,11 +3799,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalMachineLearningLanguage.g:1105:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1130:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1106:1: ( ruleLiteralTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1107:1: ruleLiteralTypeRule EOF
+            // InternalMachineLearningLanguage.g:1131:1: ( ruleLiteralTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1132:1: ruleLiteralTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleRule()); 
@@ -3752,23 +3833,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalMachineLearningLanguage.g:1114:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1139:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1118:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1119:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1143:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1144:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1119:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1120:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1144:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1145:3: ( rule__LiteralTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1121:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1121:4: rule__LiteralTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1146:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1146:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -3803,11 +3884,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalMachineLearningLanguage.g:1130:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1155:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1131:1: ( ruleInstanceTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1132:1: ruleInstanceTypeRule EOF
+            // InternalMachineLearningLanguage.g:1156:1: ( ruleInstanceTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1157:1: ruleInstanceTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleRule()); 
@@ -3837,23 +3918,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalMachineLearningLanguage.g:1139:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1164:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1143:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1144:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1168:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1169:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1144:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1145:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1169:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1170:3: ( rule__InstanceTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1146:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1146:4: rule__InstanceTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1171:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1171:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -3888,11 +3969,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalMachineLearningLanguage.g:1155:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1180:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1156:1: ( ruleStringTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1157:1: ruleStringTypeRule EOF
+            // InternalMachineLearningLanguage.g:1181:1: ( ruleStringTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1182:1: ruleStringTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleRule()); 
@@ -3922,23 +4003,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalMachineLearningLanguage.g:1164:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1189:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1168:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1169:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1193:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1194:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1169:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1170:3: ( rule__StringTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1194:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1195:3: ( rule__StringTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1171:3: ( rule__StringTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1171:4: rule__StringTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1196:3: ( rule__StringTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1196:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -3973,11 +4054,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalMachineLearningLanguage.g:1180:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1205:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1181:1: ( ruleExpressionTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1182:1: ruleExpressionTypeRule EOF
+            // InternalMachineLearningLanguage.g:1206:1: ( ruleExpressionTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1207:1: ruleExpressionTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleRule()); 
@@ -4007,23 +4088,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalMachineLearningLanguage.g:1189:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1214:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1193:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1194:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1218:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1219:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1194:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1195:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1219:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1220:3: ( rule__ExpressionTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1196:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1196:4: rule__ExpressionTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1221:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1221:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -4058,11 +4139,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalMachineLearningLanguage.g:1205:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1230:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1206:1: ( ruleIntTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1207:1: ruleIntTypeRule EOF
+            // InternalMachineLearningLanguage.g:1231:1: ( ruleIntTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1232:1: ruleIntTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleRule()); 
@@ -4092,23 +4173,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalMachineLearningLanguage.g:1214:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1239:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1218:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1219:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1243:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1244:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1219:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1220:3: ( rule__IntTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1244:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1245:3: ( rule__IntTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1221:3: ( rule__IntTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1221:4: rule__IntTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1246:3: ( rule__IntTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1246:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -4143,11 +4224,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalMachineLearningLanguage.g:1230:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1255:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1231:1: ( ruleFloatTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1232:1: ruleFloatTypeRule EOF
+            // InternalMachineLearningLanguage.g:1256:1: ( ruleFloatTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1257:1: ruleFloatTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleRule()); 
@@ -4177,23 +4258,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalMachineLearningLanguage.g:1239:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1264:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1243:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1244:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1268:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1269:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1244:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1245:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1269:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1270:3: ( rule__FloatTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1246:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1246:4: rule__FloatTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1271:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1271:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -4228,11 +4309,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalMachineLearningLanguage.g:1255:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1280:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1256:1: ( ruleBooleanTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1257:1: ruleBooleanTypeRule EOF
+            // InternalMachineLearningLanguage.g:1281:1: ( ruleBooleanTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1282:1: ruleBooleanTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleRule()); 
@@ -4262,23 +4343,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalMachineLearningLanguage.g:1264:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1289:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1268:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1269:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1293:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1294:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1269:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1270:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1294:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1295:3: ( rule__BooleanTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1271:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1271:4: rule__BooleanTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1296:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1296:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -4313,11 +4394,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalMachineLearningLanguage.g:1280:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1305:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1281:1: ( ruleVoidTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1282:1: ruleVoidTypeRule EOF
+            // InternalMachineLearningLanguage.g:1306:1: ( ruleVoidTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1307:1: ruleVoidTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleRule()); 
@@ -4347,23 +4428,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalMachineLearningLanguage.g:1289:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1314:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1293:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1294:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1318:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1319:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1294:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1295:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1319:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1320:3: ( rule__VoidTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1296:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1296:4: rule__VoidTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1321:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1321:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -4398,11 +4479,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalMachineLearningLanguage.g:1305:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1330:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1306:1: ( ruleDataTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1307:1: ruleDataTypeRule EOF
+            // InternalMachineLearningLanguage.g:1331:1: ( ruleDataTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1332:1: ruleDataTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleRule()); 
@@ -4432,23 +4513,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalMachineLearningLanguage.g:1314:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1339:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1318:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1319:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1343:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1344:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1319:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1320:3: ( rule__DataTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1344:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1345:3: ( rule__DataTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1321:3: ( rule__DataTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1321:4: rule__DataTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1346:3: ( rule__DataTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1346:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -4483,11 +4564,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalMachineLearningLanguage.g:1330:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:1355:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1331:1: ( ruleArrayTypeRule EOF )
-            // InternalMachineLearningLanguage.g:1332:1: ruleArrayTypeRule EOF
+            // InternalMachineLearningLanguage.g:1356:1: ( ruleArrayTypeRule EOF )
+            // InternalMachineLearningLanguage.g:1357:1: ruleArrayTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleRule()); 
@@ -4517,23 +4598,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalMachineLearningLanguage.g:1339:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1364:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1343:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1344:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1368:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1369:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1344:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1345:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1369:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1370:3: ( rule__ArrayTypeRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1346:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1346:4: rule__ArrayTypeRule__Group__0
+            // InternalMachineLearningLanguage.g:1371:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1371:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -4568,11 +4649,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalMachineLearningLanguage.g:1355:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalMachineLearningLanguage.g:1380:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1356:1: ( ruleParameterRule EOF )
-            // InternalMachineLearningLanguage.g:1357:1: ruleParameterRule EOF
+            // InternalMachineLearningLanguage.g:1381:1: ( ruleParameterRule EOF )
+            // InternalMachineLearningLanguage.g:1382:1: ruleParameterRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleRule()); 
@@ -4602,23 +4683,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalMachineLearningLanguage.g:1364:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1389:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1368:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1369:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1393:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1394:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1369:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1370:3: ( rule__ParameterRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1394:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1395:3: ( rule__ParameterRule__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1371:3: ( rule__ParameterRule__Group__0 )
-            // InternalMachineLearningLanguage.g:1371:4: rule__ParameterRule__Group__0
+            // InternalMachineLearningLanguage.g:1396:3: ( rule__ParameterRule__Group__0 )
+            // InternalMachineLearningLanguage.g:1396:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -4653,11 +4734,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalMachineLearningLanguage.g:1380:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalMachineLearningLanguage.g:1405:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1381:1: ( ruleFunctionNameRule EOF )
-            // InternalMachineLearningLanguage.g:1382:1: ruleFunctionNameRule EOF
+            // InternalMachineLearningLanguage.g:1406:1: ( ruleFunctionNameRule EOF )
+            // InternalMachineLearningLanguage.g:1407:1: ruleFunctionNameRule EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleRule()); 
@@ -4687,23 +4768,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalMachineLearningLanguage.g:1389:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalMachineLearningLanguage.g:1414:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1393:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalMachineLearningLanguage.g:1394:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalMachineLearningLanguage.g:1418:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalMachineLearningLanguage.g:1419:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalMachineLearningLanguage.g:1394:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalMachineLearningLanguage.g:1395:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalMachineLearningLanguage.g:1419:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalMachineLearningLanguage.g:1420:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
             }
-            // InternalMachineLearningLanguage.g:1396:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalMachineLearningLanguage.g:1396:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalMachineLearningLanguage.g:1421:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalMachineLearningLanguage.g:1421:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -4738,11 +4819,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalMachineLearningLanguage.g:1405:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalMachineLearningLanguage.g:1430:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1406:1: ( ruleQualifiedName EOF )
-            // InternalMachineLearningLanguage.g:1407:1: ruleQualifiedName EOF
+            // InternalMachineLearningLanguage.g:1431:1: ( ruleQualifiedName EOF )
+            // InternalMachineLearningLanguage.g:1432:1: ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameRule()); 
@@ -4772,23 +4853,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalMachineLearningLanguage.g:1414:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalMachineLearningLanguage.g:1439:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1418:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalMachineLearningLanguage.g:1419:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1443:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalMachineLearningLanguage.g:1444:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalMachineLearningLanguage.g:1419:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalMachineLearningLanguage.g:1420:3: ( rule__QualifiedName__Group__0 )
+            // InternalMachineLearningLanguage.g:1444:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalMachineLearningLanguage.g:1445:3: ( rule__QualifiedName__Group__0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup()); 
             }
-            // InternalMachineLearningLanguage.g:1421:3: ( rule__QualifiedName__Group__0 )
-            // InternalMachineLearningLanguage.g:1421:4: rule__QualifiedName__Group__0
+            // InternalMachineLearningLanguage.g:1446:3: ( rule__QualifiedName__Group__0 )
+            // InternalMachineLearningLanguage.g:1446:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -4823,11 +4904,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalMachineLearningLanguage.g:1430:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalMachineLearningLanguage.g:1455:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:1431:1: ( ruleStringOrId EOF )
-            // InternalMachineLearningLanguage.g:1432:1: ruleStringOrId EOF
+            // InternalMachineLearningLanguage.g:1456:1: ( ruleStringOrId EOF )
+            // InternalMachineLearningLanguage.g:1457:1: ruleStringOrId EOF
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringOrIdRule()); 
@@ -4857,23 +4938,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalMachineLearningLanguage.g:1439:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1464:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1443:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1444:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1468:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1469:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1444:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1445:3: ( rule__StringOrId__Alternatives )
+            // InternalMachineLearningLanguage.g:1469:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1470:3: ( rule__StringOrId__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1446:3: ( rule__StringOrId__Alternatives )
-            // InternalMachineLearningLanguage.g:1446:4: rule__StringOrId__Alternatives
+            // InternalMachineLearningLanguage.g:1471:3: ( rule__StringOrId__Alternatives )
+            // InternalMachineLearningLanguage.g:1471:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -4908,23 +4989,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalMachineLearningLanguage.g:1455:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1480:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1459:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1460:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1484:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1485:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1460:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1461:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1485:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1486:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1462:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalMachineLearningLanguage.g:1462:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalMachineLearningLanguage.g:1487:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1487:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -4959,23 +5040,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalMachineLearningLanguage.g:1471:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1496:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1475:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1476:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1500:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1501:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1476:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1477:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1501:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1502:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1478:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalMachineLearningLanguage.g:1478:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalMachineLearningLanguage.g:1503:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1503:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -5010,23 +5091,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalMachineLearningLanguage.g:1487:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1512:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1491:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1492:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1516:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1517:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1492:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1493:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1517:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1518:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1494:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalMachineLearningLanguage.g:1494:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalMachineLearningLanguage.g:1519:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1519:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -5061,23 +5142,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalMachineLearningLanguage.g:1503:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalMachineLearningLanguage.g:1528:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1507:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalMachineLearningLanguage.g:1508:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1532:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalMachineLearningLanguage.g:1533:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalMachineLearningLanguage.g:1508:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalMachineLearningLanguage.g:1509:3: ( rule__FactorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1533:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalMachineLearningLanguage.g:1534:3: ( rule__FactorRule__Alternatives )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
             }
-            // InternalMachineLearningLanguage.g:1510:3: ( rule__FactorRule__Alternatives )
-            // InternalMachineLearningLanguage.g:1510:4: rule__FactorRule__Alternatives
+            // InternalMachineLearningLanguage.g:1535:3: ( rule__FactorRule__Alternatives )
+            // InternalMachineLearningLanguage.g:1535:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -5112,13 +5193,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StatementRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1518:1: rule__StatementRule__Alternatives : ( ( ruleCallStatementRule ) | ( ruleForStatementRule ) | ( rulePredictStatementRule ) );
+    // InternalMachineLearningLanguage.g:1543:1: rule__StatementRule__Alternatives : ( ( ruleCallStatementRule ) | ( ruleForStatementRule ) | ( rulePredictStatementRule ) );
     public final void rule__StatementRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1522:1: ( ( ruleCallStatementRule ) | ( ruleForStatementRule ) | ( rulePredictStatementRule ) )
+            // InternalMachineLearningLanguage.g:1547:1: ( ( ruleCallStatementRule ) | ( ruleForStatementRule ) | ( rulePredictStatementRule ) )
             int alt1=3;
             switch ( input.LA(1) ) {
             case RULE_QUOTED_ID:
@@ -5147,10 +5228,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt1) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1523:2: ( ruleCallStatementRule )
+                    // InternalMachineLearningLanguage.g:1548:2: ( ruleCallStatementRule )
                     {
-                    // InternalMachineLearningLanguage.g:1523:2: ( ruleCallStatementRule )
-                    // InternalMachineLearningLanguage.g:1524:3: ruleCallStatementRule
+                    // InternalMachineLearningLanguage.g:1548:2: ( ruleCallStatementRule )
+                    // InternalMachineLearningLanguage.g:1549:3: ruleCallStatementRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStatementRuleAccess().getCallStatementRuleParserRuleCall_0()); 
@@ -5170,10 +5251,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1529:2: ( ruleForStatementRule )
+                    // InternalMachineLearningLanguage.g:1554:2: ( ruleForStatementRule )
                     {
-                    // InternalMachineLearningLanguage.g:1529:2: ( ruleForStatementRule )
-                    // InternalMachineLearningLanguage.g:1530:3: ruleForStatementRule
+                    // InternalMachineLearningLanguage.g:1554:2: ( ruleForStatementRule )
+                    // InternalMachineLearningLanguage.g:1555:3: ruleForStatementRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStatementRuleAccess().getForStatementRuleParserRuleCall_1()); 
@@ -5193,10 +5274,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1535:2: ( rulePredictStatementRule )
+                    // InternalMachineLearningLanguage.g:1560:2: ( rulePredictStatementRule )
                     {
-                    // InternalMachineLearningLanguage.g:1535:2: ( rulePredictStatementRule )
-                    // InternalMachineLearningLanguage.g:1536:3: rulePredictStatementRule
+                    // InternalMachineLearningLanguage.g:1560:2: ( rulePredictStatementRule )
+                    // InternalMachineLearningLanguage.g:1561:3: rulePredictStatementRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStatementRuleAccess().getPredictStatementRuleParserRuleCall_2()); 
@@ -5233,25 +5314,25 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__RangeRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1545:1: rule__RangeRule__Alternatives : ( ( ruleCounterRangeRule ) | ( ruleStringLiterRangeRule ) );
+    // InternalMachineLearningLanguage.g:1570:1: rule__RangeRule__Alternatives : ( ( ruleCounterRangeRule ) | ( ruleStringLiterRangeRule ) );
     public final void rule__RangeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1549:1: ( ( ruleCounterRangeRule ) | ( ruleStringLiterRangeRule ) )
+            // InternalMachineLearningLanguage.g:1574:1: ( ( ruleCounterRangeRule ) | ( ruleStringLiterRangeRule ) )
             int alt2=2;
             int LA2_0 = input.LA(1);
 
             if ( (LA2_0==68) ) {
                 int LA2_1 = input.LA(2);
 
-                if ( (LA2_1==RULE_STRING) ) {
-                    alt2=2;
-                }
-                else if ( (LA2_1==RULE_INT) ) {
+                if ( (LA2_1==RULE_INT) ) {
                     alt2=1;
                 }
+                else if ( (LA2_1==RULE_STRING) ) {
+                    alt2=2;
+                }
                 else {
                     if (state.backtracking>0) {state.failed=true; return ;}
                     NoViableAltException nvae =
@@ -5269,10 +5350,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt2) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1550:2: ( ruleCounterRangeRule )
+                    // InternalMachineLearningLanguage.g:1575:2: ( ruleCounterRangeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1550:2: ( ruleCounterRangeRule )
-                    // InternalMachineLearningLanguage.g:1551:3: ruleCounterRangeRule
+                    // InternalMachineLearningLanguage.g:1575:2: ( ruleCounterRangeRule )
+                    // InternalMachineLearningLanguage.g:1576:3: ruleCounterRangeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRangeRuleAccess().getCounterRangeRuleParserRuleCall_0()); 
@@ -5292,10 +5373,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1556:2: ( ruleStringLiterRangeRule )
+                    // InternalMachineLearningLanguage.g:1581:2: ( ruleStringLiterRangeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1556:2: ( ruleStringLiterRangeRule )
-                    // InternalMachineLearningLanguage.g:1557:3: ruleStringLiterRangeRule
+                    // InternalMachineLearningLanguage.g:1581:2: ( ruleStringLiterRangeRule )
+                    // InternalMachineLearningLanguage.g:1582:3: ruleStringLiterRangeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getRangeRuleAccess().getStringLiterRangeRuleParserRuleCall_1()); 
@@ -5332,13 +5413,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ValueRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1566:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
+    // InternalMachineLearningLanguage.g:1591:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
     public final void rule__ValueRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1570:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
+            // InternalMachineLearningLanguage.g:1595:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
             int alt3=4;
             switch ( input.LA(1) ) {
             case 68:
@@ -5361,7 +5442,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             case RULE_INT:
             case RULE_DOUBLE:
             case 15:
-            case 94:
+            case 95:
                 {
                 alt3=4;
                 }
@@ -5376,10 +5457,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt3) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1571:2: ( ruleArrayRule )
+                    // InternalMachineLearningLanguage.g:1596:2: ( ruleArrayRule )
                     {
-                    // InternalMachineLearningLanguage.g:1571:2: ( ruleArrayRule )
-                    // InternalMachineLearningLanguage.g:1572:3: ruleArrayRule
+                    // InternalMachineLearningLanguage.g:1596:2: ( ruleArrayRule )
+                    // InternalMachineLearningLanguage.g:1597:3: ruleArrayRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getValueRuleAccess().getArrayRuleParserRuleCall_0()); 
@@ -5399,10 +5480,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1577:2: ( ruleDataReferenceRule )
+                    // InternalMachineLearningLanguage.g:1602:2: ( ruleDataReferenceRule )
                     {
-                    // InternalMachineLearningLanguage.g:1577:2: ( ruleDataReferenceRule )
-                    // InternalMachineLearningLanguage.g:1578:3: ruleDataReferenceRule
+                    // InternalMachineLearningLanguage.g:1602:2: ( ruleDataReferenceRule )
+                    // InternalMachineLearningLanguage.g:1603:3: ruleDataReferenceRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getValueRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
@@ -5422,10 +5503,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1583:2: ( ruleInstanceRule )
+                    // InternalMachineLearningLanguage.g:1608:2: ( ruleInstanceRule )
                     {
-                    // InternalMachineLearningLanguage.g:1583:2: ( ruleInstanceRule )
-                    // InternalMachineLearningLanguage.g:1584:3: ruleInstanceRule
+                    // InternalMachineLearningLanguage.g:1608:2: ( ruleInstanceRule )
+                    // InternalMachineLearningLanguage.g:1609:3: ruleInstanceRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getValueRuleAccess().getInstanceRuleParserRuleCall_2()); 
@@ -5445,10 +5526,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:1589:2: ( ruleLiteralValueRule )
+                    // InternalMachineLearningLanguage.g:1614:2: ( ruleLiteralValueRule )
                     {
-                    // InternalMachineLearningLanguage.g:1589:2: ( ruleLiteralValueRule )
-                    // InternalMachineLearningLanguage.g:1590:3: ruleLiteralValueRule
+                    // InternalMachineLearningLanguage.g:1614:2: ( ruleLiteralValueRule )
+                    // InternalMachineLearningLanguage.g:1615:3: ruleLiteralValueRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getValueRuleAccess().getLiteralValueRuleParserRuleCall_3()); 
@@ -5485,54 +5566,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1599:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalMachineLearningLanguage.g:1624:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1603:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalMachineLearningLanguage.g:1628:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt4=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt4=1;
-                }
-                break;
-            case RULE_STRING:
-            case RULE_INT:
-            case RULE_DOUBLE:
-            case 15:
-            case 94:
-                {
-                alt4=2;
-                }
-                break;
-            case 79:
-                {
-                alt4=3;
-                }
-                break;
-            case 81:
-                {
-                alt4=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return ;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 4, 0, input);
-
-                throw nvae;
-            }
-
+            alt4 = dfa4.predict(input);
             switch (alt4) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1604:2: ( ruleCallRule )
+                    // InternalMachineLearningLanguage.g:1629:2: ( ruleCallRule )
                     {
-                    // InternalMachineLearningLanguage.g:1604:2: ( ruleCallRule )
-                    // InternalMachineLearningLanguage.g:1605:3: ruleCallRule
+                    // InternalMachineLearningLanguage.g:1629:2: ( ruleCallRule )
+                    // InternalMachineLearningLanguage.g:1630:3: ruleCallRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
@@ -5552,10 +5600,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1610:2: ( ruleLiteralRule )
+                    // InternalMachineLearningLanguage.g:1635:2: ( ruleLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1610:2: ( ruleLiteralRule )
-                    // InternalMachineLearningLanguage.g:1611:3: ruleLiteralRule
+                    // InternalMachineLearningLanguage.g:1635:2: ( ruleLiteralRule )
+                    // InternalMachineLearningLanguage.g:1636:3: ruleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
@@ -5575,10 +5623,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1616:2: ( ruleParanthesesRule )
+                    // InternalMachineLearningLanguage.g:1641:2: ( ruleParanthesesRule )
                     {
-                    // InternalMachineLearningLanguage.g:1616:2: ( ruleParanthesesRule )
-                    // InternalMachineLearningLanguage.g:1617:3: ruleParanthesesRule
+                    // InternalMachineLearningLanguage.g:1641:2: ( ruleParanthesesRule )
+                    // InternalMachineLearningLanguage.g:1642:3: ruleParanthesesRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
@@ -5598,10 +5646,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:1622:2: ( ruleValueReferenceRule )
+                    // InternalMachineLearningLanguage.g:1647:2: ( ruleValueReferenceRule )
                     {
-                    // InternalMachineLearningLanguage.g:1622:2: ( ruleValueReferenceRule )
-                    // InternalMachineLearningLanguage.g:1623:3: ruleValueReferenceRule
+                    // InternalMachineLearningLanguage.g:1647:2: ( ruleValueReferenceRule )
+                    // InternalMachineLearningLanguage.g:1648:3: ruleValueReferenceRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
@@ -5638,13 +5686,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1632:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalMachineLearningLanguage.g:1657:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1636:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalMachineLearningLanguage.g:1661:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt5=3;
             switch ( input.LA(1) ) {
             case RULE_INT:
@@ -5659,7 +5707,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                 }
                 break;
             case 15:
-            case 94:
+            case 95:
                 {
                 alt5=3;
                 }
@@ -5674,10 +5722,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt5) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1637:2: ( ruleNumberLiteralRule )
+                    // InternalMachineLearningLanguage.g:1662:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1637:2: ( ruleNumberLiteralRule )
-                    // InternalMachineLearningLanguage.g:1638:3: ruleNumberLiteralRule
+                    // InternalMachineLearningLanguage.g:1662:2: ( ruleNumberLiteralRule )
+                    // InternalMachineLearningLanguage.g:1663:3: ruleNumberLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
@@ -5697,10 +5745,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1643:2: ( ruleStringLiteralRule )
+                    // InternalMachineLearningLanguage.g:1668:2: ( ruleStringLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1643:2: ( ruleStringLiteralRule )
-                    // InternalMachineLearningLanguage.g:1644:3: ruleStringLiteralRule
+                    // InternalMachineLearningLanguage.g:1668:2: ( ruleStringLiteralRule )
+                    // InternalMachineLearningLanguage.g:1669:3: ruleStringLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
@@ -5720,10 +5768,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1649:2: ( ruleBooleanLiteralRule )
+                    // InternalMachineLearningLanguage.g:1674:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1649:2: ( ruleBooleanLiteralRule )
-                    // InternalMachineLearningLanguage.g:1650:3: ruleBooleanLiteralRule
+                    // InternalMachineLearningLanguage.g:1674:2: ( ruleBooleanLiteralRule )
+                    // InternalMachineLearningLanguage.g:1675:3: ruleBooleanLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
@@ -5760,13 +5808,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1659:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalMachineLearningLanguage.g:1684:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1663:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalMachineLearningLanguage.g:1688:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
 
@@ -5785,10 +5833,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt6) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1664:2: ( ruleDoubleLiteralRule )
+                    // InternalMachineLearningLanguage.g:1689:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1664:2: ( ruleDoubleLiteralRule )
-                    // InternalMachineLearningLanguage.g:1665:3: ruleDoubleLiteralRule
+                    // InternalMachineLearningLanguage.g:1689:2: ( ruleDoubleLiteralRule )
+                    // InternalMachineLearningLanguage.g:1690:3: ruleDoubleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
@@ -5808,10 +5856,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1670:2: ( ruleIntegerLiteralRule )
+                    // InternalMachineLearningLanguage.g:1695:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalMachineLearningLanguage.g:1670:2: ( ruleIntegerLiteralRule )
-                    // InternalMachineLearningLanguage.g:1671:3: ruleIntegerLiteralRule
+                    // InternalMachineLearningLanguage.g:1695:2: ( ruleIntegerLiteralRule )
+                    // InternalMachineLearningLanguage.g:1696:3: ruleIntegerLiteralRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
@@ -5848,17 +5896,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalMachineLearningLanguage.g:1680:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalMachineLearningLanguage.g:1705:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1684:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalMachineLearningLanguage.g:1709:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
-            if ( (LA7_0==94) ) {
+            if ( (LA7_0==95) ) {
                 alt7=1;
             }
             else if ( (LA7_0==15) ) {
@@ -5873,16 +5921,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt7) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1685:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalMachineLearningLanguage.g:1710:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalMachineLearningLanguage.g:1685:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalMachineLearningLanguage.g:1686:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalMachineLearningLanguage.g:1710:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalMachineLearningLanguage.g:1711:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
                     }
-                    // InternalMachineLearningLanguage.g:1687:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalMachineLearningLanguage.g:1687:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalMachineLearningLanguage.g:1712:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalMachineLearningLanguage.g:1712:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -5902,10 +5950,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1691:2: ( 'false' )
+                    // InternalMachineLearningLanguage.g:1716:2: ( 'false' )
                     {
-                    // InternalMachineLearningLanguage.g:1691:2: ( 'false' )
-                    // InternalMachineLearningLanguage.g:1692:3: 'false'
+                    // InternalMachineLearningLanguage.g:1716:2: ( 'false' )
+                    // InternalMachineLearningLanguage.g:1717:3: 'false'
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
@@ -5938,13 +5986,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1701:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalMachineLearningLanguage.g:1726:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1705:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalMachineLearningLanguage.g:1730:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt8=10;
             switch ( input.LA(1) ) {
             case 86:
@@ -6007,10 +6055,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt8) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1706:2: ( ruleStringTypeRule )
+                    // InternalMachineLearningLanguage.g:1731:2: ( ruleStringTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1706:2: ( ruleStringTypeRule )
-                    // InternalMachineLearningLanguage.g:1707:3: ruleStringTypeRule
+                    // InternalMachineLearningLanguage.g:1731:2: ( ruleStringTypeRule )
+                    // InternalMachineLearningLanguage.g:1732:3: ruleStringTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
@@ -6030,10 +6078,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1712:2: ( ruleIntTypeRule )
+                    // InternalMachineLearningLanguage.g:1737:2: ( ruleIntTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1712:2: ( ruleIntTypeRule )
-                    // InternalMachineLearningLanguage.g:1713:3: ruleIntTypeRule
+                    // InternalMachineLearningLanguage.g:1737:2: ( ruleIntTypeRule )
+                    // InternalMachineLearningLanguage.g:1738:3: ruleIntTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
@@ -6053,10 +6101,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1718:2: ( ruleFloatTypeRule )
+                    // InternalMachineLearningLanguage.g:1743:2: ( ruleFloatTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1718:2: ( ruleFloatTypeRule )
-                    // InternalMachineLearningLanguage.g:1719:3: ruleFloatTypeRule
+                    // InternalMachineLearningLanguage.g:1743:2: ( ruleFloatTypeRule )
+                    // InternalMachineLearningLanguage.g:1744:3: ruleFloatTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
@@ -6076,10 +6124,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:1724:2: ( ruleBooleanTypeRule )
+                    // InternalMachineLearningLanguage.g:1749:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1724:2: ( ruleBooleanTypeRule )
-                    // InternalMachineLearningLanguage.g:1725:3: ruleBooleanTypeRule
+                    // InternalMachineLearningLanguage.g:1749:2: ( ruleBooleanTypeRule )
+                    // InternalMachineLearningLanguage.g:1750:3: ruleBooleanTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
@@ -6099,10 +6147,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:1730:2: ( ruleLiteralTypeRule )
+                    // InternalMachineLearningLanguage.g:1755:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1730:2: ( ruleLiteralTypeRule )
-                    // InternalMachineLearningLanguage.g:1731:3: ruleLiteralTypeRule
+                    // InternalMachineLearningLanguage.g:1755:2: ( ruleLiteralTypeRule )
+                    // InternalMachineLearningLanguage.g:1756:3: ruleLiteralTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
@@ -6122,10 +6170,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:1736:2: ( ruleArrayTypeRule )
+                    // InternalMachineLearningLanguage.g:1761:2: ( ruleArrayTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1736:2: ( ruleArrayTypeRule )
-                    // InternalMachineLearningLanguage.g:1737:3: ruleArrayTypeRule
+                    // InternalMachineLearningLanguage.g:1761:2: ( ruleArrayTypeRule )
+                    // InternalMachineLearningLanguage.g:1762:3: ruleArrayTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
@@ -6145,10 +6193,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 7 :
-                    // InternalMachineLearningLanguage.g:1742:2: ( ruleInstanceTypeRule )
+                    // InternalMachineLearningLanguage.g:1767:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1742:2: ( ruleInstanceTypeRule )
-                    // InternalMachineLearningLanguage.g:1743:3: ruleInstanceTypeRule
+                    // InternalMachineLearningLanguage.g:1767:2: ( ruleInstanceTypeRule )
+                    // InternalMachineLearningLanguage.g:1768:3: ruleInstanceTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
@@ -6168,10 +6216,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 8 :
-                    // InternalMachineLearningLanguage.g:1748:2: ( ruleVoidTypeRule )
+                    // InternalMachineLearningLanguage.g:1773:2: ( ruleVoidTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1748:2: ( ruleVoidTypeRule )
-                    // InternalMachineLearningLanguage.g:1749:3: ruleVoidTypeRule
+                    // InternalMachineLearningLanguage.g:1773:2: ( ruleVoidTypeRule )
+                    // InternalMachineLearningLanguage.g:1774:3: ruleVoidTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
@@ -6191,10 +6239,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 9 :
-                    // InternalMachineLearningLanguage.g:1754:2: ( ruleExpressionTypeRule )
+                    // InternalMachineLearningLanguage.g:1779:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1754:2: ( ruleExpressionTypeRule )
-                    // InternalMachineLearningLanguage.g:1755:3: ruleExpressionTypeRule
+                    // InternalMachineLearningLanguage.g:1779:2: ( ruleExpressionTypeRule )
+                    // InternalMachineLearningLanguage.g:1780:3: ruleExpressionTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
@@ -6214,10 +6262,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 10 :
-                    // InternalMachineLearningLanguage.g:1760:2: ( ruleDataTypeRule )
+                    // InternalMachineLearningLanguage.g:1785:2: ( ruleDataTypeRule )
                     {
-                    // InternalMachineLearningLanguage.g:1760:2: ( ruleDataTypeRule )
-                    // InternalMachineLearningLanguage.g:1761:3: ruleDataTypeRule
+                    // InternalMachineLearningLanguage.g:1785:2: ( ruleDataTypeRule )
+                    // InternalMachineLearningLanguage.g:1786:3: ruleDataTypeRule
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
@@ -6254,13 +6302,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalMachineLearningLanguage.g:1770:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalMachineLearningLanguage.g:1795:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1774:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalMachineLearningLanguage.g:1799:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -6279,10 +6327,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt9) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1775:2: ( RULE_QUOTED_ID )
+                    // InternalMachineLearningLanguage.g:1800:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalMachineLearningLanguage.g:1775:2: ( RULE_QUOTED_ID )
-                    // InternalMachineLearningLanguage.g:1776:3: RULE_QUOTED_ID
+                    // InternalMachineLearningLanguage.g:1800:2: ( RULE_QUOTED_ID )
+                    // InternalMachineLearningLanguage.g:1801:3: RULE_QUOTED_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
@@ -6298,10 +6346,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1781:2: ( RULE_ID )
+                    // InternalMachineLearningLanguage.g:1806:2: ( RULE_ID )
                     {
-                    // InternalMachineLearningLanguage.g:1781:2: ( RULE_ID )
-                    // InternalMachineLearningLanguage.g:1782:3: RULE_ID
+                    // InternalMachineLearningLanguage.g:1806:2: ( RULE_ID )
+                    // InternalMachineLearningLanguage.g:1807:3: RULE_ID
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
@@ -6334,13 +6382,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1791:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalMachineLearningLanguage.g:1816:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1795:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalMachineLearningLanguage.g:1820:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt10=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -6383,16 +6431,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt10) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1796:2: ( ( '>=' ) )
+                    // InternalMachineLearningLanguage.g:1821:2: ( ( '>=' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1796:2: ( ( '>=' ) )
-                    // InternalMachineLearningLanguage.g:1797:3: ( '>=' )
+                    // InternalMachineLearningLanguage.g:1821:2: ( ( '>=' ) )
+                    // InternalMachineLearningLanguage.g:1822:3: ( '>=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
                     }
-                    // InternalMachineLearningLanguage.g:1798:3: ( '>=' )
-                    // InternalMachineLearningLanguage.g:1798:4: '>='
+                    // InternalMachineLearningLanguage.g:1823:3: ( '>=' )
+                    // InternalMachineLearningLanguage.g:1823:4: '>='
                     {
                     match(input,16,FOLLOW_2); if (state.failed) return ;
 
@@ -6408,16 +6456,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1802:2: ( ( '>' ) )
+                    // InternalMachineLearningLanguage.g:1827:2: ( ( '>' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1802:2: ( ( '>' ) )
-                    // InternalMachineLearningLanguage.g:1803:3: ( '>' )
+                    // InternalMachineLearningLanguage.g:1827:2: ( ( '>' ) )
+                    // InternalMachineLearningLanguage.g:1828:3: ( '>' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
                     }
-                    // InternalMachineLearningLanguage.g:1804:3: ( '>' )
-                    // InternalMachineLearningLanguage.g:1804:4: '>'
+                    // InternalMachineLearningLanguage.g:1829:3: ( '>' )
+                    // InternalMachineLearningLanguage.g:1829:4: '>'
                     {
                     match(input,17,FOLLOW_2); if (state.failed) return ;
 
@@ -6433,16 +6481,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1808:2: ( ( '=' ) )
+                    // InternalMachineLearningLanguage.g:1833:2: ( ( '=' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1808:2: ( ( '=' ) )
-                    // InternalMachineLearningLanguage.g:1809:3: ( '=' )
+                    // InternalMachineLearningLanguage.g:1833:2: ( ( '=' ) )
+                    // InternalMachineLearningLanguage.g:1834:3: ( '=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
                     }
-                    // InternalMachineLearningLanguage.g:1810:3: ( '=' )
-                    // InternalMachineLearningLanguage.g:1810:4: '='
+                    // InternalMachineLearningLanguage.g:1835:3: ( '=' )
+                    // InternalMachineLearningLanguage.g:1835:4: '='
                     {
                     match(input,18,FOLLOW_2); if (state.failed) return ;
 
@@ -6458,16 +6506,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:1814:2: ( ( '!=' ) )
+                    // InternalMachineLearningLanguage.g:1839:2: ( ( '!=' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1814:2: ( ( '!=' ) )
-                    // InternalMachineLearningLanguage.g:1815:3: ( '!=' )
+                    // InternalMachineLearningLanguage.g:1839:2: ( ( '!=' ) )
+                    // InternalMachineLearningLanguage.g:1840:3: ( '!=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
                     }
-                    // InternalMachineLearningLanguage.g:1816:3: ( '!=' )
-                    // InternalMachineLearningLanguage.g:1816:4: '!='
+                    // InternalMachineLearningLanguage.g:1841:3: ( '!=' )
+                    // InternalMachineLearningLanguage.g:1841:4: '!='
                     {
                     match(input,19,FOLLOW_2); if (state.failed) return ;
 
@@ -6483,16 +6531,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:1820:2: ( ( '<' ) )
+                    // InternalMachineLearningLanguage.g:1845:2: ( ( '<' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1820:2: ( ( '<' ) )
-                    // InternalMachineLearningLanguage.g:1821:3: ( '<' )
+                    // InternalMachineLearningLanguage.g:1845:2: ( ( '<' ) )
+                    // InternalMachineLearningLanguage.g:1846:3: ( '<' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
                     }
-                    // InternalMachineLearningLanguage.g:1822:3: ( '<' )
-                    // InternalMachineLearningLanguage.g:1822:4: '<'
+                    // InternalMachineLearningLanguage.g:1847:3: ( '<' )
+                    // InternalMachineLearningLanguage.g:1847:4: '<'
                     {
                     match(input,20,FOLLOW_2); if (state.failed) return ;
 
@@ -6508,16 +6556,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:1826:2: ( ( '<=' ) )
+                    // InternalMachineLearningLanguage.g:1851:2: ( ( '<=' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1826:2: ( ( '<=' ) )
-                    // InternalMachineLearningLanguage.g:1827:3: ( '<=' )
+                    // InternalMachineLearningLanguage.g:1851:2: ( ( '<=' ) )
+                    // InternalMachineLearningLanguage.g:1852:3: ( '<=' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
                     }
-                    // InternalMachineLearningLanguage.g:1828:3: ( '<=' )
-                    // InternalMachineLearningLanguage.g:1828:4: '<='
+                    // InternalMachineLearningLanguage.g:1853:3: ( '<=' )
+                    // InternalMachineLearningLanguage.g:1853:4: '<='
                     {
                     match(input,21,FOLLOW_2); if (state.failed) return ;
 
@@ -6550,13 +6598,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1836:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalMachineLearningLanguage.g:1861:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1840:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalMachineLearningLanguage.g:1865:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt11=2;
             int LA11_0 = input.LA(1);
 
@@ -6575,16 +6623,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt11) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1841:2: ( ( '+' ) )
+                    // InternalMachineLearningLanguage.g:1866:2: ( ( '+' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1841:2: ( ( '+' ) )
-                    // InternalMachineLearningLanguage.g:1842:3: ( '+' )
+                    // InternalMachineLearningLanguage.g:1866:2: ( ( '+' ) )
+                    // InternalMachineLearningLanguage.g:1867:3: ( '+' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
                     }
-                    // InternalMachineLearningLanguage.g:1843:3: ( '+' )
-                    // InternalMachineLearningLanguage.g:1843:4: '+'
+                    // InternalMachineLearningLanguage.g:1868:3: ( '+' )
+                    // InternalMachineLearningLanguage.g:1868:4: '+'
                     {
                     match(input,22,FOLLOW_2); if (state.failed) return ;
 
@@ -6600,16 +6648,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1847:2: ( ( '-' ) )
+                    // InternalMachineLearningLanguage.g:1872:2: ( ( '-' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1847:2: ( ( '-' ) )
-                    // InternalMachineLearningLanguage.g:1848:3: ( '-' )
+                    // InternalMachineLearningLanguage.g:1872:2: ( ( '-' ) )
+                    // InternalMachineLearningLanguage.g:1873:3: ( '-' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
                     }
-                    // InternalMachineLearningLanguage.g:1849:3: ( '-' )
-                    // InternalMachineLearningLanguage.g:1849:4: '-'
+                    // InternalMachineLearningLanguage.g:1874:3: ( '-' )
+                    // InternalMachineLearningLanguage.g:1874:4: '-'
                     {
                     match(input,23,FOLLOW_2); if (state.failed) return ;
 
@@ -6642,13 +6690,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1857:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalMachineLearningLanguage.g:1882:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1861:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalMachineLearningLanguage.g:1886:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt12=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -6676,16 +6724,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt12) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1862:2: ( ( '*' ) )
+                    // InternalMachineLearningLanguage.g:1887:2: ( ( '*' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1862:2: ( ( '*' ) )
-                    // InternalMachineLearningLanguage.g:1863:3: ( '*' )
+                    // InternalMachineLearningLanguage.g:1887:2: ( ( '*' ) )
+                    // InternalMachineLearningLanguage.g:1888:3: ( '*' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
                     }
-                    // InternalMachineLearningLanguage.g:1864:3: ( '*' )
-                    // InternalMachineLearningLanguage.g:1864:4: '*'
+                    // InternalMachineLearningLanguage.g:1889:3: ( '*' )
+                    // InternalMachineLearningLanguage.g:1889:4: '*'
                     {
                     match(input,24,FOLLOW_2); if (state.failed) return ;
 
@@ -6701,16 +6749,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1868:2: ( ( '/' ) )
+                    // InternalMachineLearningLanguage.g:1893:2: ( ( '/' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1868:2: ( ( '/' ) )
-                    // InternalMachineLearningLanguage.g:1869:3: ( '/' )
+                    // InternalMachineLearningLanguage.g:1893:2: ( ( '/' ) )
+                    // InternalMachineLearningLanguage.g:1894:3: ( '/' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
                     }
-                    // InternalMachineLearningLanguage.g:1870:3: ( '/' )
-                    // InternalMachineLearningLanguage.g:1870:4: '/'
+                    // InternalMachineLearningLanguage.g:1895:3: ( '/' )
+                    // InternalMachineLearningLanguage.g:1895:4: '/'
                     {
                     match(input,25,FOLLOW_2); if (state.failed) return ;
 
@@ -6726,16 +6774,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1874:2: ( ( '%' ) )
+                    // InternalMachineLearningLanguage.g:1899:2: ( ( '%' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1874:2: ( ( '%' ) )
-                    // InternalMachineLearningLanguage.g:1875:3: ( '%' )
+                    // InternalMachineLearningLanguage.g:1899:2: ( ( '%' ) )
+                    // InternalMachineLearningLanguage.g:1900:3: ( '%' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
                     }
-                    // InternalMachineLearningLanguage.g:1876:3: ( '%' )
-                    // InternalMachineLearningLanguage.g:1876:4: '%'
+                    // InternalMachineLearningLanguage.g:1901:3: ( '%' )
+                    // InternalMachineLearningLanguage.g:1901:4: '%'
                     {
                     match(input,26,FOLLOW_2); if (state.failed) return ;
 
@@ -6768,13 +6816,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalMachineLearningLanguage.g:1884:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalMachineLearningLanguage.g:1909:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:1888:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalMachineLearningLanguage.g:1913:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt13=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -6887,16 +6935,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             switch (alt13) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1889:2: ( ( 'Y' ) )
+                    // InternalMachineLearningLanguage.g:1914:2: ( ( 'Y' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1889:2: ( ( 'Y' ) )
-                    // InternalMachineLearningLanguage.g:1890:3: ( 'Y' )
+                    // InternalMachineLearningLanguage.g:1914:2: ( ( 'Y' ) )
+                    // InternalMachineLearningLanguage.g:1915:3: ( 'Y' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
                     }
-                    // InternalMachineLearningLanguage.g:1891:3: ( 'Y' )
-                    // InternalMachineLearningLanguage.g:1891:4: 'Y'
+                    // InternalMachineLearningLanguage.g:1916:3: ( 'Y' )
+                    // InternalMachineLearningLanguage.g:1916:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); if (state.failed) return ;
 
@@ -6912,16 +6960,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:1895:2: ( ( 'Z' ) )
+                    // InternalMachineLearningLanguage.g:1920:2: ( ( 'Z' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1895:2: ( ( 'Z' ) )
-                    // InternalMachineLearningLanguage.g:1896:3: ( 'Z' )
+                    // InternalMachineLearningLanguage.g:1920:2: ( ( 'Z' ) )
+                    // InternalMachineLearningLanguage.g:1921:3: ( 'Z' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
                     }
-                    // InternalMachineLearningLanguage.g:1897:3: ( 'Z' )
-                    // InternalMachineLearningLanguage.g:1897:4: 'Z'
+                    // InternalMachineLearningLanguage.g:1922:3: ( 'Z' )
+                    // InternalMachineLearningLanguage.g:1922:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); if (state.failed) return ;
 
@@ -6937,16 +6985,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:1901:2: ( ( 'E' ) )
+                    // InternalMachineLearningLanguage.g:1926:2: ( ( 'E' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1901:2: ( ( 'E' ) )
-                    // InternalMachineLearningLanguage.g:1902:3: ( 'E' )
+                    // InternalMachineLearningLanguage.g:1926:2: ( ( 'E' ) )
+                    // InternalMachineLearningLanguage.g:1927:3: ( 'E' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
                     }
-                    // InternalMachineLearningLanguage.g:1903:3: ( 'E' )
-                    // InternalMachineLearningLanguage.g:1903:4: 'E'
+                    // InternalMachineLearningLanguage.g:1928:3: ( 'E' )
+                    // InternalMachineLearningLanguage.g:1928:4: 'E'
                     {
                     match(input,29,FOLLOW_2); if (state.failed) return ;
 
@@ -6962,16 +7010,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:1907:2: ( ( 'P' ) )
+                    // InternalMachineLearningLanguage.g:1932:2: ( ( 'P' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1907:2: ( ( 'P' ) )
-                    // InternalMachineLearningLanguage.g:1908:3: ( 'P' )
+                    // InternalMachineLearningLanguage.g:1932:2: ( ( 'P' ) )
+                    // InternalMachineLearningLanguage.g:1933:3: ( 'P' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
                     }
-                    // InternalMachineLearningLanguage.g:1909:3: ( 'P' )
-                    // InternalMachineLearningLanguage.g:1909:4: 'P'
+                    // InternalMachineLearningLanguage.g:1934:3: ( 'P' )
+                    // InternalMachineLearningLanguage.g:1934:4: 'P'
                     {
                     match(input,30,FOLLOW_2); if (state.failed) return ;
 
@@ -6987,16 +7035,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:1913:2: ( ( 'T' ) )
+                    // InternalMachineLearningLanguage.g:1938:2: ( ( 'T' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1913:2: ( ( 'T' ) )
-                    // InternalMachineLearningLanguage.g:1914:3: ( 'T' )
+                    // InternalMachineLearningLanguage.g:1938:2: ( ( 'T' ) )
+                    // InternalMachineLearningLanguage.g:1939:3: ( 'T' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
                     }
-                    // InternalMachineLearningLanguage.g:1915:3: ( 'T' )
-                    // InternalMachineLearningLanguage.g:1915:4: 'T'
+                    // InternalMachineLearningLanguage.g:1940:3: ( 'T' )
+                    // InternalMachineLearningLanguage.g:1940:4: 'T'
                     {
                     match(input,31,FOLLOW_2); if (state.failed) return ;
 
@@ -7012,16 +7060,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:1919:2: ( ( 'G' ) )
+                    // InternalMachineLearningLanguage.g:1944:2: ( ( 'G' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1919:2: ( ( 'G' ) )
-                    // InternalMachineLearningLanguage.g:1920:3: ( 'G' )
+                    // InternalMachineLearningLanguage.g:1944:2: ( ( 'G' ) )
+                    // InternalMachineLearningLanguage.g:1945:3: ( 'G' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
                     }
-                    // InternalMachineLearningLanguage.g:1921:3: ( 'G' )
-                    // InternalMachineLearningLanguage.g:1921:4: 'G'
+                    // InternalMachineLearningLanguage.g:1946:3: ( 'G' )
+                    // InternalMachineLearningLanguage.g:1946:4: 'G'
                     {
                     match(input,32,FOLLOW_2); if (state.failed) return ;
 
@@ -7037,16 +7085,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 7 :
-                    // InternalMachineLearningLanguage.g:1925:2: ( ( 'M' ) )
+                    // InternalMachineLearningLanguage.g:1950:2: ( ( 'M' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1925:2: ( ( 'M' ) )
-                    // InternalMachineLearningLanguage.g:1926:3: ( 'M' )
+                    // InternalMachineLearningLanguage.g:1950:2: ( ( 'M' ) )
+                    // InternalMachineLearningLanguage.g:1951:3: ( 'M' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
                     }
-                    // InternalMachineLearningLanguage.g:1927:3: ( 'M' )
-                    // InternalMachineLearningLanguage.g:1927:4: 'M'
+                    // InternalMachineLearningLanguage.g:1952:3: ( 'M' )
+                    // InternalMachineLearningLanguage.g:1952:4: 'M'
                     {
                     match(input,33,FOLLOW_2); if (state.failed) return ;
 
@@ -7062,16 +7110,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 8 :
-                    // InternalMachineLearningLanguage.g:1931:2: ( ( 'k' ) )
+                    // InternalMachineLearningLanguage.g:1956:2: ( ( 'k' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1931:2: ( ( 'k' ) )
-                    // InternalMachineLearningLanguage.g:1932:3: ( 'k' )
+                    // InternalMachineLearningLanguage.g:1956:2: ( ( 'k' ) )
+                    // InternalMachineLearningLanguage.g:1957:3: ( 'k' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
                     }
-                    // InternalMachineLearningLanguage.g:1933:3: ( 'k' )
-                    // InternalMachineLearningLanguage.g:1933:4: 'k'
+                    // InternalMachineLearningLanguage.g:1958:3: ( 'k' )
+                    // InternalMachineLearningLanguage.g:1958:4: 'k'
                     {
                     match(input,34,FOLLOW_2); if (state.failed) return ;
 
@@ -7087,16 +7135,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 9 :
-                    // InternalMachineLearningLanguage.g:1937:2: ( ( 'h' ) )
+                    // InternalMachineLearningLanguage.g:1962:2: ( ( 'h' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1937:2: ( ( 'h' ) )
-                    // InternalMachineLearningLanguage.g:1938:3: ( 'h' )
+                    // InternalMachineLearningLanguage.g:1962:2: ( ( 'h' ) )
+                    // InternalMachineLearningLanguage.g:1963:3: ( 'h' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
                     }
-                    // InternalMachineLearningLanguage.g:1939:3: ( 'h' )
-                    // InternalMachineLearningLanguage.g:1939:4: 'h'
+                    // InternalMachineLearningLanguage.g:1964:3: ( 'h' )
+                    // InternalMachineLearningLanguage.g:1964:4: 'h'
                     {
                     match(input,35,FOLLOW_2); if (state.failed) return ;
 
@@ -7112,16 +7160,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 10 :
-                    // InternalMachineLearningLanguage.g:1943:2: ( ( 'da' ) )
+                    // InternalMachineLearningLanguage.g:1968:2: ( ( 'da' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1943:2: ( ( 'da' ) )
-                    // InternalMachineLearningLanguage.g:1944:3: ( 'da' )
+                    // InternalMachineLearningLanguage.g:1968:2: ( ( 'da' ) )
+                    // InternalMachineLearningLanguage.g:1969:3: ( 'da' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
                     }
-                    // InternalMachineLearningLanguage.g:1945:3: ( 'da' )
-                    // InternalMachineLearningLanguage.g:1945:4: 'da'
+                    // InternalMachineLearningLanguage.g:1970:3: ( 'da' )
+                    // InternalMachineLearningLanguage.g:1970:4: 'da'
                     {
                     match(input,36,FOLLOW_2); if (state.failed) return ;
 
@@ -7137,16 +7185,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 11 :
-                    // InternalMachineLearningLanguage.g:1949:2: ( ( 'd' ) )
+                    // InternalMachineLearningLanguage.g:1974:2: ( ( 'd' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1949:2: ( ( 'd' ) )
-                    // InternalMachineLearningLanguage.g:1950:3: ( 'd' )
+                    // InternalMachineLearningLanguage.g:1974:2: ( ( 'd' ) )
+                    // InternalMachineLearningLanguage.g:1975:3: ( 'd' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
                     }
-                    // InternalMachineLearningLanguage.g:1951:3: ( 'd' )
-                    // InternalMachineLearningLanguage.g:1951:4: 'd'
+                    // InternalMachineLearningLanguage.g:1976:3: ( 'd' )
+                    // InternalMachineLearningLanguage.g:1976:4: 'd'
                     {
                     match(input,37,FOLLOW_2); if (state.failed) return ;
 
@@ -7162,16 +7210,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 12 :
-                    // InternalMachineLearningLanguage.g:1955:2: ( ( 'c' ) )
+                    // InternalMachineLearningLanguage.g:1980:2: ( ( 'c' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1955:2: ( ( 'c' ) )
-                    // InternalMachineLearningLanguage.g:1956:3: ( 'c' )
+                    // InternalMachineLearningLanguage.g:1980:2: ( ( 'c' ) )
+                    // InternalMachineLearningLanguage.g:1981:3: ( 'c' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
                     }
-                    // InternalMachineLearningLanguage.g:1957:3: ( 'c' )
-                    // InternalMachineLearningLanguage.g:1957:4: 'c'
+                    // InternalMachineLearningLanguage.g:1982:3: ( 'c' )
+                    // InternalMachineLearningLanguage.g:1982:4: 'c'
                     {
                     match(input,38,FOLLOW_2); if (state.failed) return ;
 
@@ -7187,16 +7235,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 13 :
-                    // InternalMachineLearningLanguage.g:1961:2: ( ( 'm' ) )
+                    // InternalMachineLearningLanguage.g:1986:2: ( ( 'm' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1961:2: ( ( 'm' ) )
-                    // InternalMachineLearningLanguage.g:1962:3: ( 'm' )
+                    // InternalMachineLearningLanguage.g:1986:2: ( ( 'm' ) )
+                    // InternalMachineLearningLanguage.g:1987:3: ( 'm' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
                     }
-                    // InternalMachineLearningLanguage.g:1963:3: ( 'm' )
-                    // InternalMachineLearningLanguage.g:1963:4: 'm'
+                    // InternalMachineLearningLanguage.g:1988:3: ( 'm' )
+                    // InternalMachineLearningLanguage.g:1988:4: 'm'
                     {
                     match(input,39,FOLLOW_2); if (state.failed) return ;
 
@@ -7212,16 +7260,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 14 :
-                    // InternalMachineLearningLanguage.g:1967:2: ( ( '\\u00B5' ) )
+                    // InternalMachineLearningLanguage.g:1992:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1967:2: ( ( '\\u00B5' ) )
-                    // InternalMachineLearningLanguage.g:1968:3: ( '\\u00B5' )
+                    // InternalMachineLearningLanguage.g:1992:2: ( ( '\\u00B5' ) )
+                    // InternalMachineLearningLanguage.g:1993:3: ( '\\u00B5' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
                     }
-                    // InternalMachineLearningLanguage.g:1969:3: ( '\\u00B5' )
-                    // InternalMachineLearningLanguage.g:1969:4: '\\u00B5'
+                    // InternalMachineLearningLanguage.g:1994:3: ( '\\u00B5' )
+                    // InternalMachineLearningLanguage.g:1994:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); if (state.failed) return ;
 
@@ -7237,16 +7285,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 15 :
-                    // InternalMachineLearningLanguage.g:1973:2: ( ( 'n' ) )
+                    // InternalMachineLearningLanguage.g:1998:2: ( ( 'n' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1973:2: ( ( 'n' ) )
-                    // InternalMachineLearningLanguage.g:1974:3: ( 'n' )
+                    // InternalMachineLearningLanguage.g:1998:2: ( ( 'n' ) )
+                    // InternalMachineLearningLanguage.g:1999:3: ( 'n' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
                     }
-                    // InternalMachineLearningLanguage.g:1975:3: ( 'n' )
-                    // InternalMachineLearningLanguage.g:1975:4: 'n'
+                    // InternalMachineLearningLanguage.g:2000:3: ( 'n' )
+                    // InternalMachineLearningLanguage.g:2000:4: 'n'
                     {
                     match(input,41,FOLLOW_2); if (state.failed) return ;
 
@@ -7262,16 +7310,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 16 :
-                    // InternalMachineLearningLanguage.g:1979:2: ( ( 'p' ) )
+                    // InternalMachineLearningLanguage.g:2004:2: ( ( 'p' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1979:2: ( ( 'p' ) )
-                    // InternalMachineLearningLanguage.g:1980:3: ( 'p' )
+                    // InternalMachineLearningLanguage.g:2004:2: ( ( 'p' ) )
+                    // InternalMachineLearningLanguage.g:2005:3: ( 'p' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
                     }
-                    // InternalMachineLearningLanguage.g:1981:3: ( 'p' )
-                    // InternalMachineLearningLanguage.g:1981:4: 'p'
+                    // InternalMachineLearningLanguage.g:2006:3: ( 'p' )
+                    // InternalMachineLearningLanguage.g:2006:4: 'p'
                     {
                     match(input,42,FOLLOW_2); if (state.failed) return ;
 
@@ -7287,16 +7335,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 17 :
-                    // InternalMachineLearningLanguage.g:1985:2: ( ( 'f' ) )
+                    // InternalMachineLearningLanguage.g:2010:2: ( ( 'f' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1985:2: ( ( 'f' ) )
-                    // InternalMachineLearningLanguage.g:1986:3: ( 'f' )
+                    // InternalMachineLearningLanguage.g:2010:2: ( ( 'f' ) )
+                    // InternalMachineLearningLanguage.g:2011:3: ( 'f' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
                     }
-                    // InternalMachineLearningLanguage.g:1987:3: ( 'f' )
-                    // InternalMachineLearningLanguage.g:1987:4: 'f'
+                    // InternalMachineLearningLanguage.g:2012:3: ( 'f' )
+                    // InternalMachineLearningLanguage.g:2012:4: 'f'
                     {
                     match(input,43,FOLLOW_2); if (state.failed) return ;
 
@@ -7312,16 +7360,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 18 :
-                    // InternalMachineLearningLanguage.g:1991:2: ( ( 'a' ) )
+                    // InternalMachineLearningLanguage.g:2016:2: ( ( 'a' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1991:2: ( ( 'a' ) )
-                    // InternalMachineLearningLanguage.g:1992:3: ( 'a' )
+                    // InternalMachineLearningLanguage.g:2016:2: ( ( 'a' ) )
+                    // InternalMachineLearningLanguage.g:2017:3: ( 'a' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
                     }
-                    // InternalMachineLearningLanguage.g:1993:3: ( 'a' )
-                    // InternalMachineLearningLanguage.g:1993:4: 'a'
+                    // InternalMachineLearningLanguage.g:2018:3: ( 'a' )
+                    // InternalMachineLearningLanguage.g:2018:4: 'a'
                     {
                     match(input,44,FOLLOW_2); if (state.failed) return ;
 
@@ -7337,16 +7385,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 19 :
-                    // InternalMachineLearningLanguage.g:1997:2: ( ( 'z' ) )
+                    // InternalMachineLearningLanguage.g:2022:2: ( ( 'z' ) )
                     {
-                    // InternalMachineLearningLanguage.g:1997:2: ( ( 'z' ) )
-                    // InternalMachineLearningLanguage.g:1998:3: ( 'z' )
+                    // InternalMachineLearningLanguage.g:2022:2: ( ( 'z' ) )
+                    // InternalMachineLearningLanguage.g:2023:3: ( 'z' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
                     }
-                    // InternalMachineLearningLanguage.g:1999:3: ( 'z' )
-                    // InternalMachineLearningLanguage.g:1999:4: 'z'
+                    // InternalMachineLearningLanguage.g:2024:3: ( 'z' )
+                    // InternalMachineLearningLanguage.g:2024:4: 'z'
                     {
                     match(input,45,FOLLOW_2); if (state.failed) return ;
 
@@ -7362,16 +7410,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
                     }
                     break;
                 case 20 :
-                    // InternalMachineLearningLanguage.g:2003:2: ( ( 'y' ) )
+                    // InternalMachineLearningLanguage.g:2028:2: ( ( 'y' ) )
                     {
-                    // InternalMachineLearningLanguage.g:2003:2: ( ( 'y' ) )
-                    // InternalMachineLearningLanguage.g:2004:3: ( 'y' )
+                    // InternalMachineLearningLanguage.g:2028:2: ( ( 'y' ) )
+                    // InternalMachineLearningLanguage.g:2029:3: ( 'y' )
                     {
                     if ( state.backtracking==0 ) {
                        before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
                     }
-                    // InternalMachineLearningLanguage.g:2005:3: ( 'y' )
-                    // InternalMachineLearningLanguage.g:2005:4: 'y'
+                    // InternalMachineLearningLanguage.g:2030:3: ( 'y' )
+                    // InternalMachineLearningLanguage.g:2030:4: 'y'
                     {
                     match(input,46,FOLLOW_2); if (state.failed) return ;
 
@@ -7404,14 +7452,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__0"
-    // InternalMachineLearningLanguage.g:2013:1: rule__MachineLearningConfigurationRule__Group__0 : rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:2038:1: rule__MachineLearningConfigurationRule__Group__0 : rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1 ;
     public final void rule__MachineLearningConfigurationRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2017:1: ( rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1 )
-            // InternalMachineLearningLanguage.g:2018:2: rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1
+            // InternalMachineLearningLanguage.g:2042:1: ( rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1 )
+            // InternalMachineLearningLanguage.g:2043:2: rule__MachineLearningConfigurationRule__Group__0__Impl rule__MachineLearningConfigurationRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__MachineLearningConfigurationRule__Group__0__Impl();
@@ -7442,22 +7490,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:2025:1: rule__MachineLearningConfigurationRule__Group__0__Impl : ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* ) ;
+    // InternalMachineLearningLanguage.g:2050:1: rule__MachineLearningConfigurationRule__Group__0__Impl : ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* ) ;
     public final void rule__MachineLearningConfigurationRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2029:1: ( ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* ) )
-            // InternalMachineLearningLanguage.g:2030:1: ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* )
+            // InternalMachineLearningLanguage.g:2054:1: ( ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* ) )
+            // InternalMachineLearningLanguage.g:2055:1: ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* )
             {
-            // InternalMachineLearningLanguage.g:2030:1: ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* )
-            // InternalMachineLearningLanguage.g:2031:2: ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )*
+            // InternalMachineLearningLanguage.g:2055:1: ( ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )* )
+            // InternalMachineLearningLanguage.g:2056:2: ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getUsesAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:2032:2: ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )*
+            // InternalMachineLearningLanguage.g:2057:2: ( rule__MachineLearningConfigurationRule__UsesAssignment_0 )*
             loop14:
             do {
                 int alt14=2;
@@ -7470,7 +7518,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt14) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2032:3: rule__MachineLearningConfigurationRule__UsesAssignment_0
+            	    // InternalMachineLearningLanguage.g:2057:3: rule__MachineLearningConfigurationRule__UsesAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__MachineLearningConfigurationRule__UsesAssignment_0();
@@ -7511,14 +7559,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__1"
-    // InternalMachineLearningLanguage.g:2040:1: rule__MachineLearningConfigurationRule__Group__1 : rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:2065:1: rule__MachineLearningConfigurationRule__Group__1 : rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2 ;
     public final void rule__MachineLearningConfigurationRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2044:1: ( rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2 )
-            // InternalMachineLearningLanguage.g:2045:2: rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2
+            // InternalMachineLearningLanguage.g:2069:1: ( rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2 )
+            // InternalMachineLearningLanguage.g:2070:2: rule__MachineLearningConfigurationRule__Group__1__Impl rule__MachineLearningConfigurationRule__Group__2
             {
             pushFollow(FOLLOW_3);
             rule__MachineLearningConfigurationRule__Group__1__Impl();
@@ -7549,22 +7597,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:2052:1: rule__MachineLearningConfigurationRule__Group__1__Impl : ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* ) ;
+    // InternalMachineLearningLanguage.g:2077:1: rule__MachineLearningConfigurationRule__Group__1__Impl : ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* ) ;
     public final void rule__MachineLearningConfigurationRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2056:1: ( ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* ) )
-            // InternalMachineLearningLanguage.g:2057:1: ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* )
+            // InternalMachineLearningLanguage.g:2081:1: ( ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* ) )
+            // InternalMachineLearningLanguage.g:2082:1: ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* )
             {
-            // InternalMachineLearningLanguage.g:2057:1: ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* )
-            // InternalMachineLearningLanguage.g:2058:2: ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )*
+            // InternalMachineLearningLanguage.g:2082:1: ( ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )* )
+            // InternalMachineLearningLanguage.g:2083:2: ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getDefinitionsAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:2059:2: ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )*
+            // InternalMachineLearningLanguage.g:2084:2: ( rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 )*
             loop15:
             do {
                 int alt15=2;
@@ -7577,7 +7625,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt15) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2059:3: rule__MachineLearningConfigurationRule__DefinitionsAssignment_1
+            	    // InternalMachineLearningLanguage.g:2084:3: rule__MachineLearningConfigurationRule__DefinitionsAssignment_1
             	    {
             	    pushFollow(FOLLOW_5);
             	    rule__MachineLearningConfigurationRule__DefinitionsAssignment_1();
@@ -7618,14 +7666,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__2"
-    // InternalMachineLearningLanguage.g:2067:1: rule__MachineLearningConfigurationRule__Group__2 : rule__MachineLearningConfigurationRule__Group__2__Impl ;
+    // InternalMachineLearningLanguage.g:2092:1: rule__MachineLearningConfigurationRule__Group__2 : rule__MachineLearningConfigurationRule__Group__2__Impl ;
     public final void rule__MachineLearningConfigurationRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2071:1: ( rule__MachineLearningConfigurationRule__Group__2__Impl )
-            // InternalMachineLearningLanguage.g:2072:2: rule__MachineLearningConfigurationRule__Group__2__Impl
+            // InternalMachineLearningLanguage.g:2096:1: ( rule__MachineLearningConfigurationRule__Group__2__Impl )
+            // InternalMachineLearningLanguage.g:2097:2: rule__MachineLearningConfigurationRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__MachineLearningConfigurationRule__Group__2__Impl();
@@ -7651,22 +7699,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:2078:1: rule__MachineLearningConfigurationRule__Group__2__Impl : ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* ) ;
+    // InternalMachineLearningLanguage.g:2103:1: rule__MachineLearningConfigurationRule__Group__2__Impl : ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* ) ;
     public final void rule__MachineLearningConfigurationRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2082:1: ( ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* ) )
-            // InternalMachineLearningLanguage.g:2083:1: ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* )
+            // InternalMachineLearningLanguage.g:2107:1: ( ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* ) )
+            // InternalMachineLearningLanguage.g:2108:1: ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* )
             {
-            // InternalMachineLearningLanguage.g:2083:1: ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* )
-            // InternalMachineLearningLanguage.g:2084:2: ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )*
+            // InternalMachineLearningLanguage.g:2108:1: ( ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )* )
+            // InternalMachineLearningLanguage.g:2109:2: ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getStatementsAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:2085:2: ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )*
+            // InternalMachineLearningLanguage.g:2110:2: ( rule__MachineLearningConfigurationRule__StatementsAssignment_2 )*
             loop16:
             do {
                 int alt16=2;
@@ -7679,7 +7727,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt16) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2085:3: rule__MachineLearningConfigurationRule__StatementsAssignment_2
+            	    // InternalMachineLearningLanguage.g:2110:3: rule__MachineLearningConfigurationRule__StatementsAssignment_2
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__MachineLearningConfigurationRule__StatementsAssignment_2();
@@ -7720,14 +7768,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__0"
-    // InternalMachineLearningLanguage.g:2094:1: rule__UseRule__Group__0 : rule__UseRule__Group__0__Impl rule__UseRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:2119:1: rule__UseRule__Group__0 : rule__UseRule__Group__0__Impl rule__UseRule__Group__1 ;
     public final void rule__UseRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2098:1: ( rule__UseRule__Group__0__Impl rule__UseRule__Group__1 )
-            // InternalMachineLearningLanguage.g:2099:2: rule__UseRule__Group__0__Impl rule__UseRule__Group__1
+            // InternalMachineLearningLanguage.g:2123:1: ( rule__UseRule__Group__0__Impl rule__UseRule__Group__1 )
+            // InternalMachineLearningLanguage.g:2124:2: rule__UseRule__Group__0__Impl rule__UseRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__UseRule__Group__0__Impl();
@@ -7758,17 +7806,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:2106:1: rule__UseRule__Group__0__Impl : ( 'use' ) ;
+    // InternalMachineLearningLanguage.g:2131:1: rule__UseRule__Group__0__Impl : ( 'use' ) ;
     public final void rule__UseRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2110:1: ( ( 'use' ) )
-            // InternalMachineLearningLanguage.g:2111:1: ( 'use' )
+            // InternalMachineLearningLanguage.g:2135:1: ( ( 'use' ) )
+            // InternalMachineLearningLanguage.g:2136:1: ( 'use' )
             {
-            // InternalMachineLearningLanguage.g:2111:1: ( 'use' )
-            // InternalMachineLearningLanguage.g:2112:2: 'use'
+            // InternalMachineLearningLanguage.g:2136:1: ( 'use' )
+            // InternalMachineLearningLanguage.g:2137:2: 'use'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getUseKeyword_0()); 
@@ -7799,14 +7847,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__1"
-    // InternalMachineLearningLanguage.g:2121:1: rule__UseRule__Group__1 : rule__UseRule__Group__1__Impl rule__UseRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:2146:1: rule__UseRule__Group__1 : rule__UseRule__Group__1__Impl rule__UseRule__Group__2 ;
     public final void rule__UseRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2125:1: ( rule__UseRule__Group__1__Impl rule__UseRule__Group__2 )
-            // InternalMachineLearningLanguage.g:2126:2: rule__UseRule__Group__1__Impl rule__UseRule__Group__2
+            // InternalMachineLearningLanguage.g:2150:1: ( rule__UseRule__Group__1__Impl rule__UseRule__Group__2 )
+            // InternalMachineLearningLanguage.g:2151:2: rule__UseRule__Group__1__Impl rule__UseRule__Group__2
             {
             pushFollow(FOLLOW_8);
             rule__UseRule__Group__1__Impl();
@@ -7837,23 +7885,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:2133:1: rule__UseRule__Group__1__Impl : ( ( rule__UseRule__ImportURIAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2158:1: rule__UseRule__Group__1__Impl : ( ( rule__UseRule__ImportURIAssignment_1 ) ) ;
     public final void rule__UseRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2137:1: ( ( ( rule__UseRule__ImportURIAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:2138:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2162:1: ( ( ( rule__UseRule__ImportURIAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:2163:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2138:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:2139:2: ( rule__UseRule__ImportURIAssignment_1 )
+            // InternalMachineLearningLanguage.g:2163:1: ( ( rule__UseRule__ImportURIAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2164:2: ( rule__UseRule__ImportURIAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getImportURIAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:2140:2: ( rule__UseRule__ImportURIAssignment_1 )
-            // InternalMachineLearningLanguage.g:2140:3: rule__UseRule__ImportURIAssignment_1
+            // InternalMachineLearningLanguage.g:2165:2: ( rule__UseRule__ImportURIAssignment_1 )
+            // InternalMachineLearningLanguage.g:2165:3: rule__UseRule__ImportURIAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__UseRule__ImportURIAssignment_1();
@@ -7888,14 +7936,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__2"
-    // InternalMachineLearningLanguage.g:2148:1: rule__UseRule__Group__2 : rule__UseRule__Group__2__Impl ;
+    // InternalMachineLearningLanguage.g:2173:1: rule__UseRule__Group__2 : rule__UseRule__Group__2__Impl ;
     public final void rule__UseRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2152:1: ( rule__UseRule__Group__2__Impl )
-            // InternalMachineLearningLanguage.g:2153:2: rule__UseRule__Group__2__Impl
+            // InternalMachineLearningLanguage.g:2177:1: ( rule__UseRule__Group__2__Impl )
+            // InternalMachineLearningLanguage.g:2178:2: rule__UseRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__UseRule__Group__2__Impl();
@@ -7921,17 +7969,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:2159:1: rule__UseRule__Group__2__Impl : ( ';' ) ;
+    // InternalMachineLearningLanguage.g:2184:1: rule__UseRule__Group__2__Impl : ( ';' ) ;
     public final void rule__UseRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2163:1: ( ( ';' ) )
-            // InternalMachineLearningLanguage.g:2164:1: ( ';' )
+            // InternalMachineLearningLanguage.g:2188:1: ( ( ';' ) )
+            // InternalMachineLearningLanguage.g:2189:1: ( ';' )
             {
-            // InternalMachineLearningLanguage.g:2164:1: ( ';' )
-            // InternalMachineLearningLanguage.g:2165:2: ';'
+            // InternalMachineLearningLanguage.g:2189:1: ( ';' )
+            // InternalMachineLearningLanguage.g:2190:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getSemicolonKeyword_2()); 
@@ -7962,14 +8010,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__0"
-    // InternalMachineLearningLanguage.g:2175:1: rule__SurrogateDefinitionRule__Group__0 : rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:2200:1: rule__SurrogateDefinitionRule__Group__0 : rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1 ;
     public final void rule__SurrogateDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2179:1: ( rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:2180:2: rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1
+            // InternalMachineLearningLanguage.g:2204:1: ( rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:2205:2: rule__SurrogateDefinitionRule__Group__0__Impl rule__SurrogateDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__SurrogateDefinitionRule__Group__0__Impl();
@@ -8000,17 +8048,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:2187:1: rule__SurrogateDefinitionRule__Group__0__Impl : ( 'prediction' ) ;
+    // InternalMachineLearningLanguage.g:2212:1: rule__SurrogateDefinitionRule__Group__0__Impl : ( 'prediction' ) ;
     public final void rule__SurrogateDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2191:1: ( ( 'prediction' ) )
-            // InternalMachineLearningLanguage.g:2192:1: ( 'prediction' )
+            // InternalMachineLearningLanguage.g:2216:1: ( ( 'prediction' ) )
+            // InternalMachineLearningLanguage.g:2217:1: ( 'prediction' )
             {
-            // InternalMachineLearningLanguage.g:2192:1: ( 'prediction' )
-            // InternalMachineLearningLanguage.g:2193:2: 'prediction'
+            // InternalMachineLearningLanguage.g:2217:1: ( 'prediction' )
+            // InternalMachineLearningLanguage.g:2218:2: 'prediction'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getPredictionKeyword_0()); 
@@ -8041,14 +8089,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__1"
-    // InternalMachineLearningLanguage.g:2202:1: rule__SurrogateDefinitionRule__Group__1 : rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:2227:1: rule__SurrogateDefinitionRule__Group__1 : rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2 ;
     public final void rule__SurrogateDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2206:1: ( rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2 )
-            // InternalMachineLearningLanguage.g:2207:2: rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2
+            // InternalMachineLearningLanguage.g:2231:1: ( rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2 )
+            // InternalMachineLearningLanguage.g:2232:2: rule__SurrogateDefinitionRule__Group__1__Impl rule__SurrogateDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_9);
             rule__SurrogateDefinitionRule__Group__1__Impl();
@@ -8079,23 +8127,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:2214:1: rule__SurrogateDefinitionRule__Group__1__Impl : ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2239:1: rule__SurrogateDefinitionRule__Group__1__Impl : ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) ) ;
     public final void rule__SurrogateDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2218:1: ( ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:2219:1: ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2243:1: ( ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:2244:1: ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2219:1: ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:2220:2: ( rule__SurrogateDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2244:1: ( ( rule__SurrogateDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2245:2: ( rule__SurrogateDefinitionRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getNameAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:2221:2: ( rule__SurrogateDefinitionRule__NameAssignment_1 )
-            // InternalMachineLearningLanguage.g:2221:3: rule__SurrogateDefinitionRule__NameAssignment_1
+            // InternalMachineLearningLanguage.g:2246:2: ( rule__SurrogateDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2246:3: rule__SurrogateDefinitionRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__NameAssignment_1();
@@ -8130,14 +8178,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__2"
-    // InternalMachineLearningLanguage.g:2229:1: rule__SurrogateDefinitionRule__Group__2 : rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:2254:1: rule__SurrogateDefinitionRule__Group__2 : rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3 ;
     public final void rule__SurrogateDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2233:1: ( rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3 )
-            // InternalMachineLearningLanguage.g:2234:2: rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3
+            // InternalMachineLearningLanguage.g:2258:1: ( rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3 )
+            // InternalMachineLearningLanguage.g:2259:2: rule__SurrogateDefinitionRule__Group__2__Impl rule__SurrogateDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_10);
             rule__SurrogateDefinitionRule__Group__2__Impl();
@@ -8168,17 +8216,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:2241:1: rule__SurrogateDefinitionRule__Group__2__Impl : ( 'maps' ) ;
+    // InternalMachineLearningLanguage.g:2266:1: rule__SurrogateDefinitionRule__Group__2__Impl : ( 'maps' ) ;
     public final void rule__SurrogateDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2245:1: ( ( 'maps' ) )
-            // InternalMachineLearningLanguage.g:2246:1: ( 'maps' )
+            // InternalMachineLearningLanguage.g:2270:1: ( ( 'maps' ) )
+            // InternalMachineLearningLanguage.g:2271:1: ( 'maps' )
             {
-            // InternalMachineLearningLanguage.g:2246:1: ( 'maps' )
-            // InternalMachineLearningLanguage.g:2247:2: 'maps'
+            // InternalMachineLearningLanguage.g:2271:1: ( 'maps' )
+            // InternalMachineLearningLanguage.g:2272:2: 'maps'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getMapsKeyword_2()); 
@@ -8209,14 +8257,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__3"
-    // InternalMachineLearningLanguage.g:2256:1: rule__SurrogateDefinitionRule__Group__3 : rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:2281:1: rule__SurrogateDefinitionRule__Group__3 : rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4 ;
     public final void rule__SurrogateDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2260:1: ( rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4 )
-            // InternalMachineLearningLanguage.g:2261:2: rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4
+            // InternalMachineLearningLanguage.g:2285:1: ( rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4 )
+            // InternalMachineLearningLanguage.g:2286:2: rule__SurrogateDefinitionRule__Group__3__Impl rule__SurrogateDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_11);
             rule__SurrogateDefinitionRule__Group__3__Impl();
@@ -8247,23 +8295,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:2268:1: rule__SurrogateDefinitionRule__Group__3__Impl : ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) ) ;
+    // InternalMachineLearningLanguage.g:2293:1: rule__SurrogateDefinitionRule__Group__3__Impl : ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) ) ;
     public final void rule__SurrogateDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2272:1: ( ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) ) )
-            // InternalMachineLearningLanguage.g:2273:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:2297:1: ( ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) ) )
+            // InternalMachineLearningLanguage.g:2298:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) )
             {
-            // InternalMachineLearningLanguage.g:2273:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:2274:2: ( rule__SurrogateDefinitionRule__InputsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2298:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:2299:2: ( rule__SurrogateDefinitionRule__InputsAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:2275:2: ( rule__SurrogateDefinitionRule__InputsAssignment_3 )
-            // InternalMachineLearningLanguage.g:2275:3: rule__SurrogateDefinitionRule__InputsAssignment_3
+            // InternalMachineLearningLanguage.g:2300:2: ( rule__SurrogateDefinitionRule__InputsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2300:3: rule__SurrogateDefinitionRule__InputsAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__InputsAssignment_3();
@@ -8298,14 +8346,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__4"
-    // InternalMachineLearningLanguage.g:2283:1: rule__SurrogateDefinitionRule__Group__4 : rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5 ;
+    // InternalMachineLearningLanguage.g:2308:1: rule__SurrogateDefinitionRule__Group__4 : rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5 ;
     public final void rule__SurrogateDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2287:1: ( rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5 )
-            // InternalMachineLearningLanguage.g:2288:2: rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5
+            // InternalMachineLearningLanguage.g:2312:1: ( rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5 )
+            // InternalMachineLearningLanguage.g:2313:2: rule__SurrogateDefinitionRule__Group__4__Impl rule__SurrogateDefinitionRule__Group__5
             {
             pushFollow(FOLLOW_11);
             rule__SurrogateDefinitionRule__Group__4__Impl();
@@ -8336,22 +8384,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:2295:1: rule__SurrogateDefinitionRule__Group__4__Impl : ( ( rule__SurrogateDefinitionRule__Group_4__0 )* ) ;
+    // InternalMachineLearningLanguage.g:2320:1: rule__SurrogateDefinitionRule__Group__4__Impl : ( ( rule__SurrogateDefinitionRule__Group_4__0 )* ) ;
     public final void rule__SurrogateDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2299:1: ( ( ( rule__SurrogateDefinitionRule__Group_4__0 )* ) )
-            // InternalMachineLearningLanguage.g:2300:1: ( ( rule__SurrogateDefinitionRule__Group_4__0 )* )
+            // InternalMachineLearningLanguage.g:2324:1: ( ( ( rule__SurrogateDefinitionRule__Group_4__0 )* ) )
+            // InternalMachineLearningLanguage.g:2325:1: ( ( rule__SurrogateDefinitionRule__Group_4__0 )* )
             {
-            // InternalMachineLearningLanguage.g:2300:1: ( ( rule__SurrogateDefinitionRule__Group_4__0 )* )
-            // InternalMachineLearningLanguage.g:2301:2: ( rule__SurrogateDefinitionRule__Group_4__0 )*
+            // InternalMachineLearningLanguage.g:2325:1: ( ( rule__SurrogateDefinitionRule__Group_4__0 )* )
+            // InternalMachineLearningLanguage.g:2326:2: ( rule__SurrogateDefinitionRule__Group_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getGroup_4()); 
             }
-            // InternalMachineLearningLanguage.g:2302:2: ( rule__SurrogateDefinitionRule__Group_4__0 )*
+            // InternalMachineLearningLanguage.g:2327:2: ( rule__SurrogateDefinitionRule__Group_4__0 )*
             loop17:
             do {
                 int alt17=2;
@@ -8364,7 +8412,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt17) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2302:3: rule__SurrogateDefinitionRule__Group_4__0
+            	    // InternalMachineLearningLanguage.g:2327:3: rule__SurrogateDefinitionRule__Group_4__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__SurrogateDefinitionRule__Group_4__0();
@@ -8405,14 +8453,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__5"
-    // InternalMachineLearningLanguage.g:2310:1: rule__SurrogateDefinitionRule__Group__5 : rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6 ;
+    // InternalMachineLearningLanguage.g:2335:1: rule__SurrogateDefinitionRule__Group__5 : rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6 ;
     public final void rule__SurrogateDefinitionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2314:1: ( rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6 )
-            // InternalMachineLearningLanguage.g:2315:2: rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6
+            // InternalMachineLearningLanguage.g:2339:1: ( rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6 )
+            // InternalMachineLearningLanguage.g:2340:2: rule__SurrogateDefinitionRule__Group__5__Impl rule__SurrogateDefinitionRule__Group__6
             {
             pushFollow(FOLLOW_10);
             rule__SurrogateDefinitionRule__Group__5__Impl();
@@ -8443,17 +8491,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__5__Impl"
-    // InternalMachineLearningLanguage.g:2322:1: rule__SurrogateDefinitionRule__Group__5__Impl : ( 'to' ) ;
+    // InternalMachineLearningLanguage.g:2347:1: rule__SurrogateDefinitionRule__Group__5__Impl : ( 'to' ) ;
     public final void rule__SurrogateDefinitionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2326:1: ( ( 'to' ) )
-            // InternalMachineLearningLanguage.g:2327:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:2351:1: ( ( 'to' ) )
+            // InternalMachineLearningLanguage.g:2352:1: ( 'to' )
             {
-            // InternalMachineLearningLanguage.g:2327:1: ( 'to' )
-            // InternalMachineLearningLanguage.g:2328:2: 'to'
+            // InternalMachineLearningLanguage.g:2352:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:2353:2: 'to'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getToKeyword_5()); 
@@ -8484,14 +8532,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__6"
-    // InternalMachineLearningLanguage.g:2337:1: rule__SurrogateDefinitionRule__Group__6 : rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7 ;
+    // InternalMachineLearningLanguage.g:2362:1: rule__SurrogateDefinitionRule__Group__6 : rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7 ;
     public final void rule__SurrogateDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2341:1: ( rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7 )
-            // InternalMachineLearningLanguage.g:2342:2: rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7
+            // InternalMachineLearningLanguage.g:2366:1: ( rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7 )
+            // InternalMachineLearningLanguage.g:2367:2: rule__SurrogateDefinitionRule__Group__6__Impl rule__SurrogateDefinitionRule__Group__7
             {
             pushFollow(FOLLOW_13);
             rule__SurrogateDefinitionRule__Group__6__Impl();
@@ -8522,23 +8570,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__6__Impl"
-    // InternalMachineLearningLanguage.g:2349:1: rule__SurrogateDefinitionRule__Group__6__Impl : ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) ) ;
+    // InternalMachineLearningLanguage.g:2374:1: rule__SurrogateDefinitionRule__Group__6__Impl : ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) ) ;
     public final void rule__SurrogateDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2353:1: ( ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) ) )
-            // InternalMachineLearningLanguage.g:2354:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) )
+            // InternalMachineLearningLanguage.g:2378:1: ( ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) ) )
+            // InternalMachineLearningLanguage.g:2379:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) )
             {
-            // InternalMachineLearningLanguage.g:2354:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) )
-            // InternalMachineLearningLanguage.g:2355:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_6 )
+            // InternalMachineLearningLanguage.g:2379:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_6 ) )
+            // InternalMachineLearningLanguage.g:2380:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsAssignment_6()); 
             }
-            // InternalMachineLearningLanguage.g:2356:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_6 )
-            // InternalMachineLearningLanguage.g:2356:3: rule__SurrogateDefinitionRule__OutputsAssignment_6
+            // InternalMachineLearningLanguage.g:2381:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_6 )
+            // InternalMachineLearningLanguage.g:2381:3: rule__SurrogateDefinitionRule__OutputsAssignment_6
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__OutputsAssignment_6();
@@ -8573,14 +8621,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__7"
-    // InternalMachineLearningLanguage.g:2364:1: rule__SurrogateDefinitionRule__Group__7 : rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8 ;
+    // InternalMachineLearningLanguage.g:2389:1: rule__SurrogateDefinitionRule__Group__7 : rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8 ;
     public final void rule__SurrogateDefinitionRule__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2368:1: ( rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8 )
-            // InternalMachineLearningLanguage.g:2369:2: rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8
+            // InternalMachineLearningLanguage.g:2393:1: ( rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8 )
+            // InternalMachineLearningLanguage.g:2394:2: rule__SurrogateDefinitionRule__Group__7__Impl rule__SurrogateDefinitionRule__Group__8
             {
             pushFollow(FOLLOW_13);
             rule__SurrogateDefinitionRule__Group__7__Impl();
@@ -8611,22 +8659,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__7__Impl"
-    // InternalMachineLearningLanguage.g:2376:1: rule__SurrogateDefinitionRule__Group__7__Impl : ( ( rule__SurrogateDefinitionRule__Group_7__0 )* ) ;
+    // InternalMachineLearningLanguage.g:2401:1: rule__SurrogateDefinitionRule__Group__7__Impl : ( ( rule__SurrogateDefinitionRule__Group_7__0 )* ) ;
     public final void rule__SurrogateDefinitionRule__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2380:1: ( ( ( rule__SurrogateDefinitionRule__Group_7__0 )* ) )
-            // InternalMachineLearningLanguage.g:2381:1: ( ( rule__SurrogateDefinitionRule__Group_7__0 )* )
+            // InternalMachineLearningLanguage.g:2405:1: ( ( ( rule__SurrogateDefinitionRule__Group_7__0 )* ) )
+            // InternalMachineLearningLanguage.g:2406:1: ( ( rule__SurrogateDefinitionRule__Group_7__0 )* )
             {
-            // InternalMachineLearningLanguage.g:2381:1: ( ( rule__SurrogateDefinitionRule__Group_7__0 )* )
-            // InternalMachineLearningLanguage.g:2382:2: ( rule__SurrogateDefinitionRule__Group_7__0 )*
+            // InternalMachineLearningLanguage.g:2406:1: ( ( rule__SurrogateDefinitionRule__Group_7__0 )* )
+            // InternalMachineLearningLanguage.g:2407:2: ( rule__SurrogateDefinitionRule__Group_7__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getGroup_7()); 
             }
-            // InternalMachineLearningLanguage.g:2383:2: ( rule__SurrogateDefinitionRule__Group_7__0 )*
+            // InternalMachineLearningLanguage.g:2408:2: ( rule__SurrogateDefinitionRule__Group_7__0 )*
             loop18:
             do {
                 int alt18=2;
@@ -8639,7 +8687,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2383:3: rule__SurrogateDefinitionRule__Group_7__0
+            	    // InternalMachineLearningLanguage.g:2408:3: rule__SurrogateDefinitionRule__Group_7__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__SurrogateDefinitionRule__Group_7__0();
@@ -8680,14 +8728,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__8"
-    // InternalMachineLearningLanguage.g:2391:1: rule__SurrogateDefinitionRule__Group__8 : rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9 ;
+    // InternalMachineLearningLanguage.g:2416:1: rule__SurrogateDefinitionRule__Group__8 : rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9 ;
     public final void rule__SurrogateDefinitionRule__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2395:1: ( rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9 )
-            // InternalMachineLearningLanguage.g:2396:2: rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9
+            // InternalMachineLearningLanguage.g:2420:1: ( rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9 )
+            // InternalMachineLearningLanguage.g:2421:2: rule__SurrogateDefinitionRule__Group__8__Impl rule__SurrogateDefinitionRule__Group__9
             {
             pushFollow(FOLLOW_14);
             rule__SurrogateDefinitionRule__Group__8__Impl();
@@ -8718,17 +8766,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__8__Impl"
-    // InternalMachineLearningLanguage.g:2403:1: rule__SurrogateDefinitionRule__Group__8__Impl : ( 'using' ) ;
+    // InternalMachineLearningLanguage.g:2428:1: rule__SurrogateDefinitionRule__Group__8__Impl : ( 'using' ) ;
     public final void rule__SurrogateDefinitionRule__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2407:1: ( ( 'using' ) )
-            // InternalMachineLearningLanguage.g:2408:1: ( 'using' )
+            // InternalMachineLearningLanguage.g:2432:1: ( ( 'using' ) )
+            // InternalMachineLearningLanguage.g:2433:1: ( 'using' )
             {
-            // InternalMachineLearningLanguage.g:2408:1: ( 'using' )
-            // InternalMachineLearningLanguage.g:2409:2: 'using'
+            // InternalMachineLearningLanguage.g:2433:1: ( 'using' )
+            // InternalMachineLearningLanguage.g:2434:2: 'using'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getUsingKeyword_8()); 
@@ -8759,14 +8807,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__9"
-    // InternalMachineLearningLanguage.g:2418:1: rule__SurrogateDefinitionRule__Group__9 : rule__SurrogateDefinitionRule__Group__9__Impl ;
+    // InternalMachineLearningLanguage.g:2443:1: rule__SurrogateDefinitionRule__Group__9 : rule__SurrogateDefinitionRule__Group__9__Impl ;
     public final void rule__SurrogateDefinitionRule__Group__9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2422:1: ( rule__SurrogateDefinitionRule__Group__9__Impl )
-            // InternalMachineLearningLanguage.g:2423:2: rule__SurrogateDefinitionRule__Group__9__Impl
+            // InternalMachineLearningLanguage.g:2447:1: ( rule__SurrogateDefinitionRule__Group__9__Impl )
+            // InternalMachineLearningLanguage.g:2448:2: rule__SurrogateDefinitionRule__Group__9__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__Group__9__Impl();
@@ -8792,26 +8840,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group__9__Impl"
-    // InternalMachineLearningLanguage.g:2429:1: rule__SurrogateDefinitionRule__Group__9__Impl : ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) ) ;
+    // InternalMachineLearningLanguage.g:2454:1: rule__SurrogateDefinitionRule__Group__9__Impl : ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) ) ;
     public final void rule__SurrogateDefinitionRule__Group__9__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2433:1: ( ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) ) )
-            // InternalMachineLearningLanguage.g:2434:1: ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) )
+            // InternalMachineLearningLanguage.g:2458:1: ( ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) ) )
+            // InternalMachineLearningLanguage.g:2459:1: ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) )
             {
-            // InternalMachineLearningLanguage.g:2434:1: ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) )
-            // InternalMachineLearningLanguage.g:2435:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* )
+            // InternalMachineLearningLanguage.g:2459:1: ( ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* ) )
+            // InternalMachineLearningLanguage.g:2460:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) ) ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* )
             {
-            // InternalMachineLearningLanguage.g:2435:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) )
-            // InternalMachineLearningLanguage.g:2436:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )
+            // InternalMachineLearningLanguage.g:2460:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 ) )
+            // InternalMachineLearningLanguage.g:2461:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getLayersAssignment_9()); 
             }
-            // InternalMachineLearningLanguage.g:2437:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )
-            // InternalMachineLearningLanguage.g:2437:4: rule__SurrogateDefinitionRule__LayersAssignment_9
+            // InternalMachineLearningLanguage.g:2462:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )
+            // InternalMachineLearningLanguage.g:2462:4: rule__SurrogateDefinitionRule__LayersAssignment_9
             {
             pushFollow(FOLLOW_15);
             rule__SurrogateDefinitionRule__LayersAssignment_9();
@@ -8827,13 +8875,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             }
 
-            // InternalMachineLearningLanguage.g:2440:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* )
-            // InternalMachineLearningLanguage.g:2441:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )*
+            // InternalMachineLearningLanguage.g:2465:2: ( ( rule__SurrogateDefinitionRule__LayersAssignment_9 )* )
+            // InternalMachineLearningLanguage.g:2466:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getLayersAssignment_9()); 
             }
-            // InternalMachineLearningLanguage.g:2442:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )*
+            // InternalMachineLearningLanguage.g:2467:3: ( rule__SurrogateDefinitionRule__LayersAssignment_9 )*
             loop19:
             do {
                 int alt19=2;
@@ -8846,7 +8894,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt19) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2442:4: rule__SurrogateDefinitionRule__LayersAssignment_9
+            	    // InternalMachineLearningLanguage.g:2467:4: rule__SurrogateDefinitionRule__LayersAssignment_9
             	    {
             	    pushFollow(FOLLOW_15);
             	    rule__SurrogateDefinitionRule__LayersAssignment_9();
@@ -8890,14 +8938,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_4__0"
-    // InternalMachineLearningLanguage.g:2452:1: rule__SurrogateDefinitionRule__Group_4__0 : rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1 ;
+    // InternalMachineLearningLanguage.g:2477:1: rule__SurrogateDefinitionRule__Group_4__0 : rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1 ;
     public final void rule__SurrogateDefinitionRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2456:1: ( rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1 )
-            // InternalMachineLearningLanguage.g:2457:2: rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1
+            // InternalMachineLearningLanguage.g:2481:1: ( rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1 )
+            // InternalMachineLearningLanguage.g:2482:2: rule__SurrogateDefinitionRule__Group_4__0__Impl rule__SurrogateDefinitionRule__Group_4__1
             {
             pushFollow(FOLLOW_10);
             rule__SurrogateDefinitionRule__Group_4__0__Impl();
@@ -8928,17 +8976,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_4__0__Impl"
-    // InternalMachineLearningLanguage.g:2464:1: rule__SurrogateDefinitionRule__Group_4__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:2489:1: rule__SurrogateDefinitionRule__Group_4__0__Impl : ( ',' ) ;
     public final void rule__SurrogateDefinitionRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2468:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:2469:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2493:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:2494:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:2469:1: ( ',' )
-            // InternalMachineLearningLanguage.g:2470:2: ','
+            // InternalMachineLearningLanguage.g:2494:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2495:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getCommaKeyword_4_0()); 
@@ -8969,14 +9017,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_4__1"
-    // InternalMachineLearningLanguage.g:2479:1: rule__SurrogateDefinitionRule__Group_4__1 : rule__SurrogateDefinitionRule__Group_4__1__Impl ;
+    // InternalMachineLearningLanguage.g:2504:1: rule__SurrogateDefinitionRule__Group_4__1 : rule__SurrogateDefinitionRule__Group_4__1__Impl ;
     public final void rule__SurrogateDefinitionRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2483:1: ( rule__SurrogateDefinitionRule__Group_4__1__Impl )
-            // InternalMachineLearningLanguage.g:2484:2: rule__SurrogateDefinitionRule__Group_4__1__Impl
+            // InternalMachineLearningLanguage.g:2508:1: ( rule__SurrogateDefinitionRule__Group_4__1__Impl )
+            // InternalMachineLearningLanguage.g:2509:2: rule__SurrogateDefinitionRule__Group_4__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__Group_4__1__Impl();
@@ -9002,23 +9050,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_4__1__Impl"
-    // InternalMachineLearningLanguage.g:2490:1: rule__SurrogateDefinitionRule__Group_4__1__Impl : ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2515:1: rule__SurrogateDefinitionRule__Group_4__1__Impl : ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) ) ;
     public final void rule__SurrogateDefinitionRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2494:1: ( ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) ) )
-            // InternalMachineLearningLanguage.g:2495:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) )
+            // InternalMachineLearningLanguage.g:2519:1: ( ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) ) )
+            // InternalMachineLearningLanguage.g:2520:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2495:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) )
-            // InternalMachineLearningLanguage.g:2496:2: ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 )
+            // InternalMachineLearningLanguage.g:2520:1: ( ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 ) )
+            // InternalMachineLearningLanguage.g:2521:2: ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsAssignment_4_1()); 
             }
-            // InternalMachineLearningLanguage.g:2497:2: ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 )
-            // InternalMachineLearningLanguage.g:2497:3: rule__SurrogateDefinitionRule__InputsAssignment_4_1
+            // InternalMachineLearningLanguage.g:2522:2: ( rule__SurrogateDefinitionRule__InputsAssignment_4_1 )
+            // InternalMachineLearningLanguage.g:2522:3: rule__SurrogateDefinitionRule__InputsAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__InputsAssignment_4_1();
@@ -9053,14 +9101,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_7__0"
-    // InternalMachineLearningLanguage.g:2506:1: rule__SurrogateDefinitionRule__Group_7__0 : rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1 ;
+    // InternalMachineLearningLanguage.g:2531:1: rule__SurrogateDefinitionRule__Group_7__0 : rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1 ;
     public final void rule__SurrogateDefinitionRule__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2510:1: ( rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1 )
-            // InternalMachineLearningLanguage.g:2511:2: rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1
+            // InternalMachineLearningLanguage.g:2535:1: ( rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1 )
+            // InternalMachineLearningLanguage.g:2536:2: rule__SurrogateDefinitionRule__Group_7__0__Impl rule__SurrogateDefinitionRule__Group_7__1
             {
             pushFollow(FOLLOW_10);
             rule__SurrogateDefinitionRule__Group_7__0__Impl();
@@ -9091,17 +9139,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_7__0__Impl"
-    // InternalMachineLearningLanguage.g:2518:1: rule__SurrogateDefinitionRule__Group_7__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:2543:1: rule__SurrogateDefinitionRule__Group_7__0__Impl : ( ',' ) ;
     public final void rule__SurrogateDefinitionRule__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2522:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:2523:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2547:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:2548:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:2523:1: ( ',' )
-            // InternalMachineLearningLanguage.g:2524:2: ','
+            // InternalMachineLearningLanguage.g:2548:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2549:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getCommaKeyword_7_0()); 
@@ -9132,14 +9180,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_7__1"
-    // InternalMachineLearningLanguage.g:2533:1: rule__SurrogateDefinitionRule__Group_7__1 : rule__SurrogateDefinitionRule__Group_7__1__Impl ;
+    // InternalMachineLearningLanguage.g:2558:1: rule__SurrogateDefinitionRule__Group_7__1 : rule__SurrogateDefinitionRule__Group_7__1__Impl ;
     public final void rule__SurrogateDefinitionRule__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2537:1: ( rule__SurrogateDefinitionRule__Group_7__1__Impl )
-            // InternalMachineLearningLanguage.g:2538:2: rule__SurrogateDefinitionRule__Group_7__1__Impl
+            // InternalMachineLearningLanguage.g:2562:1: ( rule__SurrogateDefinitionRule__Group_7__1__Impl )
+            // InternalMachineLearningLanguage.g:2563:2: rule__SurrogateDefinitionRule__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__Group_7__1__Impl();
@@ -9165,23 +9213,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__Group_7__1__Impl"
-    // InternalMachineLearningLanguage.g:2544:1: rule__SurrogateDefinitionRule__Group_7__1__Impl : ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2569:1: rule__SurrogateDefinitionRule__Group_7__1__Impl : ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) ) ;
     public final void rule__SurrogateDefinitionRule__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2548:1: ( ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) ) )
-            // InternalMachineLearningLanguage.g:2549:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) )
+            // InternalMachineLearningLanguage.g:2573:1: ( ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) ) )
+            // InternalMachineLearningLanguage.g:2574:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2549:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) )
-            // InternalMachineLearningLanguage.g:2550:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 )
+            // InternalMachineLearningLanguage.g:2574:1: ( ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 ) )
+            // InternalMachineLearningLanguage.g:2575:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsAssignment_7_1()); 
             }
-            // InternalMachineLearningLanguage.g:2551:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 )
-            // InternalMachineLearningLanguage.g:2551:3: rule__SurrogateDefinitionRule__OutputsAssignment_7_1
+            // InternalMachineLearningLanguage.g:2576:2: ( rule__SurrogateDefinitionRule__OutputsAssignment_7_1 )
+            // InternalMachineLearningLanguage.g:2576:3: rule__SurrogateDefinitionRule__OutputsAssignment_7_1
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateDefinitionRule__OutputsAssignment_7_1();
@@ -9216,14 +9264,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__0"
-    // InternalMachineLearningLanguage.g:2560:1: rule__SurrogateLayerDefinitionRule__Group__0 : rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:2585:1: rule__SurrogateLayerDefinitionRule__Group__0 : rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1 ;
     public final void rule__SurrogateLayerDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2564:1: ( rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:2565:2: rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1
+            // InternalMachineLearningLanguage.g:2589:1: ( rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:2590:2: rule__SurrogateLayerDefinitionRule__Group__0__Impl rule__SurrogateLayerDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__SurrogateLayerDefinitionRule__Group__0__Impl();
@@ -9254,17 +9302,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:2572:1: rule__SurrogateLayerDefinitionRule__Group__0__Impl : ( 'layer' ) ;
+    // InternalMachineLearningLanguage.g:2597:1: rule__SurrogateLayerDefinitionRule__Group__0__Impl : ( 'layer' ) ;
     public final void rule__SurrogateLayerDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2576:1: ( ( 'layer' ) )
-            // InternalMachineLearningLanguage.g:2577:1: ( 'layer' )
+            // InternalMachineLearningLanguage.g:2601:1: ( ( 'layer' ) )
+            // InternalMachineLearningLanguage.g:2602:1: ( 'layer' )
             {
-            // InternalMachineLearningLanguage.g:2577:1: ( 'layer' )
-            // InternalMachineLearningLanguage.g:2578:2: 'layer'
+            // InternalMachineLearningLanguage.g:2602:1: ( 'layer' )
+            // InternalMachineLearningLanguage.g:2603:2: 'layer'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getLayerKeyword_0()); 
@@ -9295,14 +9343,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__1"
-    // InternalMachineLearningLanguage.g:2587:1: rule__SurrogateLayerDefinitionRule__Group__1 : rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:2612:1: rule__SurrogateLayerDefinitionRule__Group__1 : rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2 ;
     public final void rule__SurrogateLayerDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2591:1: ( rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2 )
-            // InternalMachineLearningLanguage.g:2592:2: rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2
+            // InternalMachineLearningLanguage.g:2616:1: ( rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2 )
+            // InternalMachineLearningLanguage.g:2617:2: rule__SurrogateLayerDefinitionRule__Group__1__Impl rule__SurrogateLayerDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_16);
             rule__SurrogateLayerDefinitionRule__Group__1__Impl();
@@ -9333,23 +9381,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:2599:1: rule__SurrogateLayerDefinitionRule__Group__1__Impl : ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2624:1: rule__SurrogateLayerDefinitionRule__Group__1__Impl : ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) ) ;
     public final void rule__SurrogateLayerDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2603:1: ( ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:2604:1: ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2628:1: ( ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:2629:1: ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2604:1: ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:2605:2: ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2629:1: ( ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2630:2: ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getNameAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:2606:2: ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 )
-            // InternalMachineLearningLanguage.g:2606:3: rule__SurrogateLayerDefinitionRule__NameAssignment_1
+            // InternalMachineLearningLanguage.g:2631:2: ( rule__SurrogateLayerDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2631:3: rule__SurrogateLayerDefinitionRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateLayerDefinitionRule__NameAssignment_1();
@@ -9384,14 +9432,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__2"
-    // InternalMachineLearningLanguage.g:2614:1: rule__SurrogateLayerDefinitionRule__Group__2 : rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:2639:1: rule__SurrogateLayerDefinitionRule__Group__2 : rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3 ;
     public final void rule__SurrogateLayerDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2618:1: ( rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3 )
-            // InternalMachineLearningLanguage.g:2619:2: rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3
+            // InternalMachineLearningLanguage.g:2643:1: ( rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3 )
+            // InternalMachineLearningLanguage.g:2644:2: rule__SurrogateLayerDefinitionRule__Group__2__Impl rule__SurrogateLayerDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_17);
             rule__SurrogateLayerDefinitionRule__Group__2__Impl();
@@ -9422,17 +9470,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:2626:1: rule__SurrogateLayerDefinitionRule__Group__2__Impl : ( 'with' ) ;
+    // InternalMachineLearningLanguage.g:2651:1: rule__SurrogateLayerDefinitionRule__Group__2__Impl : ( 'with' ) ;
     public final void rule__SurrogateLayerDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2630:1: ( ( 'with' ) )
-            // InternalMachineLearningLanguage.g:2631:1: ( 'with' )
+            // InternalMachineLearningLanguage.g:2655:1: ( ( 'with' ) )
+            // InternalMachineLearningLanguage.g:2656:1: ( 'with' )
             {
-            // InternalMachineLearningLanguage.g:2631:1: ( 'with' )
-            // InternalMachineLearningLanguage.g:2632:2: 'with'
+            // InternalMachineLearningLanguage.g:2656:1: ( 'with' )
+            // InternalMachineLearningLanguage.g:2657:2: 'with'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getWithKeyword_2()); 
@@ -9463,14 +9511,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__3"
-    // InternalMachineLearningLanguage.g:2641:1: rule__SurrogateLayerDefinitionRule__Group__3 : rule__SurrogateLayerDefinitionRule__Group__3__Impl ;
+    // InternalMachineLearningLanguage.g:2666:1: rule__SurrogateLayerDefinitionRule__Group__3 : rule__SurrogateLayerDefinitionRule__Group__3__Impl ;
     public final void rule__SurrogateLayerDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2645:1: ( rule__SurrogateLayerDefinitionRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:2646:2: rule__SurrogateLayerDefinitionRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:2670:1: ( rule__SurrogateLayerDefinitionRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:2671:2: rule__SurrogateLayerDefinitionRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__SurrogateLayerDefinitionRule__Group__3__Impl();
@@ -9496,26 +9544,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:2652:1: rule__SurrogateLayerDefinitionRule__Group__3__Impl : ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) ) ;
+    // InternalMachineLearningLanguage.g:2677:1: rule__SurrogateLayerDefinitionRule__Group__3__Impl : ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) ) ;
     public final void rule__SurrogateLayerDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2656:1: ( ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) ) )
-            // InternalMachineLearningLanguage.g:2657:1: ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) )
+            // InternalMachineLearningLanguage.g:2681:1: ( ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) ) )
+            // InternalMachineLearningLanguage.g:2682:1: ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) )
             {
-            // InternalMachineLearningLanguage.g:2657:1: ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) )
-            // InternalMachineLearningLanguage.g:2658:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* )
+            // InternalMachineLearningLanguage.g:2682:1: ( ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* ) )
+            // InternalMachineLearningLanguage.g:2683:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) ) ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* )
             {
-            // InternalMachineLearningLanguage.g:2658:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:2659:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2683:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:2684:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getFunctionsAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:2660:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )
-            // InternalMachineLearningLanguage.g:2660:4: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3
+            // InternalMachineLearningLanguage.g:2685:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2685:4: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3
             {
             pushFollow(FOLLOW_18);
             rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3();
@@ -9531,13 +9579,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             }
 
-            // InternalMachineLearningLanguage.g:2663:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* )
-            // InternalMachineLearningLanguage.g:2664:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )*
+            // InternalMachineLearningLanguage.g:2688:2: ( ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )* )
+            // InternalMachineLearningLanguage.g:2689:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getFunctionsAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:2665:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )*
+            // InternalMachineLearningLanguage.g:2690:3: ( rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 )*
             loop20:
             do {
                 int alt20=2;
@@ -9550,7 +9598,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt20) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2665:4: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3
+            	    // InternalMachineLearningLanguage.g:2690:4: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3
             	    {
             	    pushFollow(FOLLOW_18);
             	    rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3();
@@ -9594,14 +9642,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__0"
-    // InternalMachineLearningLanguage.g:2675:1: rule__PartialSurrogateFunctionDefinitionRule__Group__0 : rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:2700:1: rule__PartialSurrogateFunctionDefinitionRule__Group__0 : rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2679:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:2680:2: rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1
+            // InternalMachineLearningLanguage.g:2704:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:2705:2: rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl();
@@ -9632,17 +9680,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:2687:1: rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl : ( 'function' ) ;
+    // InternalMachineLearningLanguage.g:2712:1: rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl : ( 'function' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2691:1: ( ( 'function' ) )
-            // InternalMachineLearningLanguage.g:2692:1: ( 'function' )
+            // InternalMachineLearningLanguage.g:2716:1: ( ( 'function' ) )
+            // InternalMachineLearningLanguage.g:2717:1: ( 'function' )
             {
-            // InternalMachineLearningLanguage.g:2692:1: ( 'function' )
-            // InternalMachineLearningLanguage.g:2693:2: 'function'
+            // InternalMachineLearningLanguage.g:2717:1: ( 'function' )
+            // InternalMachineLearningLanguage.g:2718:2: 'function'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getFunctionKeyword_0()); 
@@ -9673,14 +9721,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__1"
-    // InternalMachineLearningLanguage.g:2702:1: rule__PartialSurrogateFunctionDefinitionRule__Group__1 : rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:2727:1: rule__PartialSurrogateFunctionDefinitionRule__Group__1 : rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2706:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2 )
-            // InternalMachineLearningLanguage.g:2707:2: rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2
+            // InternalMachineLearningLanguage.g:2731:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2 )
+            // InternalMachineLearningLanguage.g:2732:2: rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_19);
             rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl();
@@ -9711,23 +9759,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:2714:1: rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2739:1: rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2718:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:2719:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2743:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:2744:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2719:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:2720:2: ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2744:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:2745:2: ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getNameAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:2721:2: ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 )
-            // InternalMachineLearningLanguage.g:2721:3: rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1
+            // InternalMachineLearningLanguage.g:2746:2: ( rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:2746:3: rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1();
@@ -9762,14 +9810,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__2"
-    // InternalMachineLearningLanguage.g:2729:1: rule__PartialSurrogateFunctionDefinitionRule__Group__2 : rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:2754:1: rule__PartialSurrogateFunctionDefinitionRule__Group__2 : rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2733:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3 )
-            // InternalMachineLearningLanguage.g:2734:2: rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3
+            // InternalMachineLearningLanguage.g:2758:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3 )
+            // InternalMachineLearningLanguage.g:2759:2: rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl();
@@ -9800,17 +9848,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:2741:1: rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl : ( 'mapping' ) ;
+    // InternalMachineLearningLanguage.g:2766:1: rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl : ( 'mapping' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2745:1: ( ( 'mapping' ) )
-            // InternalMachineLearningLanguage.g:2746:1: ( 'mapping' )
+            // InternalMachineLearningLanguage.g:2770:1: ( ( 'mapping' ) )
+            // InternalMachineLearningLanguage.g:2771:1: ( 'mapping' )
             {
-            // InternalMachineLearningLanguage.g:2746:1: ( 'mapping' )
-            // InternalMachineLearningLanguage.g:2747:2: 'mapping'
+            // InternalMachineLearningLanguage.g:2771:1: ( 'mapping' )
+            // InternalMachineLearningLanguage.g:2772:2: 'mapping'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getMappingKeyword_2()); 
@@ -9841,14 +9889,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__3"
-    // InternalMachineLearningLanguage.g:2756:1: rule__PartialSurrogateFunctionDefinitionRule__Group__3 : rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:2781:1: rule__PartialSurrogateFunctionDefinitionRule__Group__3 : rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2760:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4 )
-            // InternalMachineLearningLanguage.g:2761:2: rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4
+            // InternalMachineLearningLanguage.g:2785:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4 )
+            // InternalMachineLearningLanguage.g:2786:2: rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_11);
             rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl();
@@ -9879,23 +9927,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:2768:1: rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) ) ;
+    // InternalMachineLearningLanguage.g:2793:1: rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2772:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) ) )
-            // InternalMachineLearningLanguage.g:2773:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:2797:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) ) )
+            // InternalMachineLearningLanguage.g:2798:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) )
             {
-            // InternalMachineLearningLanguage.g:2773:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:2774:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2798:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:2799:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:2775:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 )
-            // InternalMachineLearningLanguage.g:2775:3: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3
+            // InternalMachineLearningLanguage.g:2800:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 )
+            // InternalMachineLearningLanguage.g:2800:3: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3();
@@ -9930,14 +9978,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__4"
-    // InternalMachineLearningLanguage.g:2783:1: rule__PartialSurrogateFunctionDefinitionRule__Group__4 : rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5 ;
+    // InternalMachineLearningLanguage.g:2808:1: rule__PartialSurrogateFunctionDefinitionRule__Group__4 : rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2787:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5 )
-            // InternalMachineLearningLanguage.g:2788:2: rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5
+            // InternalMachineLearningLanguage.g:2812:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5 )
+            // InternalMachineLearningLanguage.g:2813:2: rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__5
             {
             pushFollow(FOLLOW_11);
             rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl();
@@ -9968,22 +10016,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:2795:1: rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* ) ;
+    // InternalMachineLearningLanguage.g:2820:1: rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2799:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* ) )
-            // InternalMachineLearningLanguage.g:2800:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* )
+            // InternalMachineLearningLanguage.g:2824:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* ) )
+            // InternalMachineLearningLanguage.g:2825:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* )
             {
-            // InternalMachineLearningLanguage.g:2800:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* )
-            // InternalMachineLearningLanguage.g:2801:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )*
+            // InternalMachineLearningLanguage.g:2825:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )* )
+            // InternalMachineLearningLanguage.g:2826:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getGroup_4()); 
             }
-            // InternalMachineLearningLanguage.g:2802:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )*
+            // InternalMachineLearningLanguage.g:2827:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 )*
             loop21:
             do {
                 int alt21=2;
@@ -9996,7 +10044,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt21) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2802:3: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0
+            	    // InternalMachineLearningLanguage.g:2827:3: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__PartialSurrogateFunctionDefinitionRule__Group_4__0();
@@ -10037,14 +10085,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__5"
-    // InternalMachineLearningLanguage.g:2810:1: rule__PartialSurrogateFunctionDefinitionRule__Group__5 : rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6 ;
+    // InternalMachineLearningLanguage.g:2835:1: rule__PartialSurrogateFunctionDefinitionRule__Group__5 : rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2814:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6 )
-            // InternalMachineLearningLanguage.g:2815:2: rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6
+            // InternalMachineLearningLanguage.g:2839:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6 )
+            // InternalMachineLearningLanguage.g:2840:2: rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__6
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl();
@@ -10075,17 +10123,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl"
-    // InternalMachineLearningLanguage.g:2822:1: rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl : ( 'to' ) ;
+    // InternalMachineLearningLanguage.g:2847:1: rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl : ( 'to' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2826:1: ( ( 'to' ) )
-            // InternalMachineLearningLanguage.g:2827:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:2851:1: ( ( 'to' ) )
+            // InternalMachineLearningLanguage.g:2852:1: ( 'to' )
             {
-            // InternalMachineLearningLanguage.g:2827:1: ( 'to' )
-            // InternalMachineLearningLanguage.g:2828:2: 'to'
+            // InternalMachineLearningLanguage.g:2852:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:2853:2: 'to'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getToKeyword_5()); 
@@ -10116,14 +10164,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__6"
-    // InternalMachineLearningLanguage.g:2837:1: rule__PartialSurrogateFunctionDefinitionRule__Group__6 : rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7 ;
+    // InternalMachineLearningLanguage.g:2862:1: rule__PartialSurrogateFunctionDefinitionRule__Group__6 : rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2841:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7 )
-            // InternalMachineLearningLanguage.g:2842:2: rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7
+            // InternalMachineLearningLanguage.g:2866:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7 )
+            // InternalMachineLearningLanguage.g:2867:2: rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__7
             {
             pushFollow(FOLLOW_20);
             rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl();
@@ -10154,23 +10202,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl"
-    // InternalMachineLearningLanguage.g:2849:1: rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) ) ;
+    // InternalMachineLearningLanguage.g:2874:1: rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2853:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) ) )
-            // InternalMachineLearningLanguage.g:2854:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) )
+            // InternalMachineLearningLanguage.g:2878:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) ) )
+            // InternalMachineLearningLanguage.g:2879:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) )
             {
-            // InternalMachineLearningLanguage.g:2854:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) )
-            // InternalMachineLearningLanguage.g:2855:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 )
+            // InternalMachineLearningLanguage.g:2879:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 ) )
+            // InternalMachineLearningLanguage.g:2880:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsAssignment_6()); 
             }
-            // InternalMachineLearningLanguage.g:2856:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 )
-            // InternalMachineLearningLanguage.g:2856:3: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6
+            // InternalMachineLearningLanguage.g:2881:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 )
+            // InternalMachineLearningLanguage.g:2881:3: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6();
@@ -10205,14 +10253,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__7"
-    // InternalMachineLearningLanguage.g:2864:1: rule__PartialSurrogateFunctionDefinitionRule__Group__7 : rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8 ;
+    // InternalMachineLearningLanguage.g:2889:1: rule__PartialSurrogateFunctionDefinitionRule__Group__7 : rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2868:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8 )
-            // InternalMachineLearningLanguage.g:2869:2: rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8
+            // InternalMachineLearningLanguage.g:2893:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8 )
+            // InternalMachineLearningLanguage.g:2894:2: rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl rule__PartialSurrogateFunctionDefinitionRule__Group__8
             {
             pushFollow(FOLLOW_20);
             rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl();
@@ -10243,22 +10291,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl"
-    // InternalMachineLearningLanguage.g:2876:1: rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* ) ;
+    // InternalMachineLearningLanguage.g:2901:1: rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2880:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* ) )
-            // InternalMachineLearningLanguage.g:2881:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* )
+            // InternalMachineLearningLanguage.g:2905:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* ) )
+            // InternalMachineLearningLanguage.g:2906:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* )
             {
-            // InternalMachineLearningLanguage.g:2881:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* )
-            // InternalMachineLearningLanguage.g:2882:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )*
+            // InternalMachineLearningLanguage.g:2906:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )* )
+            // InternalMachineLearningLanguage.g:2907:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getGroup_7()); 
             }
-            // InternalMachineLearningLanguage.g:2883:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )*
+            // InternalMachineLearningLanguage.g:2908:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 )*
             loop22:
             do {
                 int alt22=2;
@@ -10271,7 +10319,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2883:3: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0
+            	    // InternalMachineLearningLanguage.g:2908:3: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__PartialSurrogateFunctionDefinitionRule__Group_7__0();
@@ -10312,14 +10360,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__8"
-    // InternalMachineLearningLanguage.g:2891:1: rule__PartialSurrogateFunctionDefinitionRule__Group__8 : rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl ;
+    // InternalMachineLearningLanguage.g:2916:1: rule__PartialSurrogateFunctionDefinitionRule__Group__8 : rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2895:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl )
-            // InternalMachineLearningLanguage.g:2896:2: rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl
+            // InternalMachineLearningLanguage.g:2920:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl )
+            // InternalMachineLearningLanguage.g:2921:2: rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl();
@@ -10345,22 +10393,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl"
-    // InternalMachineLearningLanguage.g:2902:1: rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? ) ;
+    // InternalMachineLearningLanguage.g:2927:1: rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2906:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? ) )
-            // InternalMachineLearningLanguage.g:2907:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? )
+            // InternalMachineLearningLanguage.g:2931:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? ) )
+            // InternalMachineLearningLanguage.g:2932:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? )
             {
-            // InternalMachineLearningLanguage.g:2907:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? )
-            // InternalMachineLearningLanguage.g:2908:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )?
+            // InternalMachineLearningLanguage.g:2932:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )? )
+            // InternalMachineLearningLanguage.g:2933:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getGroup_8()); 
             }
-            // InternalMachineLearningLanguage.g:2909:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )?
+            // InternalMachineLearningLanguage.g:2934:2: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 )?
             int alt23=2;
             int LA23_0 = input.LA(1);
 
@@ -10369,7 +10417,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt23) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2909:3: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0
+                    // InternalMachineLearningLanguage.g:2934:3: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PartialSurrogateFunctionDefinitionRule__Group_8__0();
@@ -10407,14 +10455,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_4__0"
-    // InternalMachineLearningLanguage.g:2918:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 ;
+    // InternalMachineLearningLanguage.g:2943:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2922:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 )
-            // InternalMachineLearningLanguage.g:2923:2: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1
+            // InternalMachineLearningLanguage.g:2947:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 )
+            // InternalMachineLearningLanguage.g:2948:2: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_4__1
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl();
@@ -10445,17 +10493,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl"
-    // InternalMachineLearningLanguage.g:2930:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:2955:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl : ( ',' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2934:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:2935:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2959:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:2960:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:2935:1: ( ',' )
-            // InternalMachineLearningLanguage.g:2936:2: ','
+            // InternalMachineLearningLanguage.g:2960:1: ( ',' )
+            // InternalMachineLearningLanguage.g:2961:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getCommaKeyword_4_0()); 
@@ -10486,14 +10534,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_4__1"
-    // InternalMachineLearningLanguage.g:2945:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl ;
+    // InternalMachineLearningLanguage.g:2970:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2949:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl )
-            // InternalMachineLearningLanguage.g:2950:2: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl
+            // InternalMachineLearningLanguage.g:2974:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl )
+            // InternalMachineLearningLanguage.g:2975:2: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl();
@@ -10519,23 +10567,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl"
-    // InternalMachineLearningLanguage.g:2956:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) ) ;
+    // InternalMachineLearningLanguage.g:2981:1: rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2960:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) ) )
-            // InternalMachineLearningLanguage.g:2961:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) )
+            // InternalMachineLearningLanguage.g:2985:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) ) )
+            // InternalMachineLearningLanguage.g:2986:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) )
             {
-            // InternalMachineLearningLanguage.g:2961:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) )
-            // InternalMachineLearningLanguage.g:2962:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 )
+            // InternalMachineLearningLanguage.g:2986:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 ) )
+            // InternalMachineLearningLanguage.g:2987:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsAssignment_4_1()); 
             }
-            // InternalMachineLearningLanguage.g:2963:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 )
-            // InternalMachineLearningLanguage.g:2963:3: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1
+            // InternalMachineLearningLanguage.g:2988:2: ( rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 )
+            // InternalMachineLearningLanguage.g:2988:3: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1();
@@ -10570,14 +10618,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_7__0"
-    // InternalMachineLearningLanguage.g:2972:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 ;
+    // InternalMachineLearningLanguage.g:2997:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_7__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2976:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 )
-            // InternalMachineLearningLanguage.g:2977:2: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1
+            // InternalMachineLearningLanguage.g:3001:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 )
+            // InternalMachineLearningLanguage.g:3002:2: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_7__1
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl();
@@ -10608,17 +10656,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl"
-    // InternalMachineLearningLanguage.g:2984:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:3009:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl : ( ',' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_7__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:2988:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:2989:1: ( ',' )
+            // InternalMachineLearningLanguage.g:3013:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:3014:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:2989:1: ( ',' )
-            // InternalMachineLearningLanguage.g:2990:2: ','
+            // InternalMachineLearningLanguage.g:3014:1: ( ',' )
+            // InternalMachineLearningLanguage.g:3015:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getCommaKeyword_7_0()); 
@@ -10649,14 +10697,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_7__1"
-    // InternalMachineLearningLanguage.g:2999:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl ;
+    // InternalMachineLearningLanguage.g:3024:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_7__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3003:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl )
-            // InternalMachineLearningLanguage.g:3004:2: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl
+            // InternalMachineLearningLanguage.g:3028:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl )
+            // InternalMachineLearningLanguage.g:3029:2: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl();
@@ -10682,23 +10730,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl"
-    // InternalMachineLearningLanguage.g:3010:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3035:1: rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl : ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_7__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3014:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) ) )
-            // InternalMachineLearningLanguage.g:3015:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) )
+            // InternalMachineLearningLanguage.g:3039:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) ) )
+            // InternalMachineLearningLanguage.g:3040:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3015:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) )
-            // InternalMachineLearningLanguage.g:3016:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 )
+            // InternalMachineLearningLanguage.g:3040:1: ( ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 ) )
+            // InternalMachineLearningLanguage.g:3041:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsAssignment_7_1()); 
             }
-            // InternalMachineLearningLanguage.g:3017:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 )
-            // InternalMachineLearningLanguage.g:3017:3: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1
+            // InternalMachineLearningLanguage.g:3042:2: ( rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 )
+            // InternalMachineLearningLanguage.g:3042:3: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1();
@@ -10733,14 +10781,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__0"
-    // InternalMachineLearningLanguage.g:3026:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 ;
+    // InternalMachineLearningLanguage.g:3051:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3030:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 )
-            // InternalMachineLearningLanguage.g:3031:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1
+            // InternalMachineLearningLanguage.g:3055:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 )
+            // InternalMachineLearningLanguage.g:3056:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__1
             {
             pushFollow(FOLLOW_21);
             rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl();
@@ -10771,17 +10819,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl"
-    // InternalMachineLearningLanguage.g:3038:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl : ( 'with' ) ;
+    // InternalMachineLearningLanguage.g:3063:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl : ( 'with' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3042:1: ( ( 'with' ) )
-            // InternalMachineLearningLanguage.g:3043:1: ( 'with' )
+            // InternalMachineLearningLanguage.g:3067:1: ( ( 'with' ) )
+            // InternalMachineLearningLanguage.g:3068:1: ( 'with' )
             {
-            // InternalMachineLearningLanguage.g:3043:1: ( 'with' )
-            // InternalMachineLearningLanguage.g:3044:2: 'with'
+            // InternalMachineLearningLanguage.g:3068:1: ( 'with' )
+            // InternalMachineLearningLanguage.g:3069:2: 'with'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getWithKeyword_8_0()); 
@@ -10812,14 +10860,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__1"
-    // InternalMachineLearningLanguage.g:3053:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 ;
+    // InternalMachineLearningLanguage.g:3078:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3057:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 )
-            // InternalMachineLearningLanguage.g:3058:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2
+            // InternalMachineLearningLanguage.g:3082:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 )
+            // InternalMachineLearningLanguage.g:3083:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl rule__PartialSurrogateFunctionDefinitionRule__Group_8__2
             {
             pushFollow(FOLLOW_10);
             rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl();
@@ -10850,17 +10898,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl"
-    // InternalMachineLearningLanguage.g:3065:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl : ( 'parameters' ) ;
+    // InternalMachineLearningLanguage.g:3090:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl : ( 'parameters' ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3069:1: ( ( 'parameters' ) )
-            // InternalMachineLearningLanguage.g:3070:1: ( 'parameters' )
+            // InternalMachineLearningLanguage.g:3094:1: ( ( 'parameters' ) )
+            // InternalMachineLearningLanguage.g:3095:1: ( 'parameters' )
             {
-            // InternalMachineLearningLanguage.g:3070:1: ( 'parameters' )
-            // InternalMachineLearningLanguage.g:3071:2: 'parameters'
+            // InternalMachineLearningLanguage.g:3095:1: ( 'parameters' )
+            // InternalMachineLearningLanguage.g:3096:2: 'parameters'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getParametersKeyword_8_1()); 
@@ -10891,14 +10939,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__2"
-    // InternalMachineLearningLanguage.g:3080:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl ;
+    // InternalMachineLearningLanguage.g:3105:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2 : rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3084:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl )
-            // InternalMachineLearningLanguage.g:3085:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl
+            // InternalMachineLearningLanguage.g:3109:1: ( rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl )
+            // InternalMachineLearningLanguage.g:3110:2: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl();
@@ -10924,26 +10972,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl"
-    // InternalMachineLearningLanguage.g:3091:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl : ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) ) ;
+    // InternalMachineLearningLanguage.g:3116:1: rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl : ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__Group_8__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3095:1: ( ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) ) )
-            // InternalMachineLearningLanguage.g:3096:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) )
+            // InternalMachineLearningLanguage.g:3120:1: ( ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) ) )
+            // InternalMachineLearningLanguage.g:3121:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) )
             {
-            // InternalMachineLearningLanguage.g:3096:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) )
-            // InternalMachineLearningLanguage.g:3097:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* )
+            // InternalMachineLearningLanguage.g:3121:1: ( ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* ) )
+            // InternalMachineLearningLanguage.g:3122:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) ) ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* )
             {
-            // InternalMachineLearningLanguage.g:3097:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) )
-            // InternalMachineLearningLanguage.g:3098:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )
+            // InternalMachineLearningLanguage.g:3122:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 ) )
+            // InternalMachineLearningLanguage.g:3123:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getParametersAssignment_8_2()); 
             }
-            // InternalMachineLearningLanguage.g:3099:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )
-            // InternalMachineLearningLanguage.g:3099:4: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2
+            // InternalMachineLearningLanguage.g:3124:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )
+            // InternalMachineLearningLanguage.g:3124:4: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2
             {
             pushFollow(FOLLOW_22);
             rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2();
@@ -10959,13 +11007,13 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
             }
 
-            // InternalMachineLearningLanguage.g:3102:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* )
-            // InternalMachineLearningLanguage.g:3103:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )*
+            // InternalMachineLearningLanguage.g:3127:2: ( ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )* )
+            // InternalMachineLearningLanguage.g:3128:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getParametersAssignment_8_2()); 
             }
-            // InternalMachineLearningLanguage.g:3104:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )*
+            // InternalMachineLearningLanguage.g:3129:3: ( rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 )*
             loop24:
             do {
                 int alt24=2;
@@ -10993,7 +11041,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt24) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3104:4: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2
+            	    // InternalMachineLearningLanguage.g:3129:4: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2
             	    {
             	    pushFollow(FOLLOW_22);
             	    rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2();
@@ -11037,14 +11085,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__0"
-    // InternalMachineLearningLanguage.g:3114:1: rule__PredictStatementRule__Group__0 : rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:3139:1: rule__PredictStatementRule__Group__0 : rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1 ;
     public final void rule__PredictStatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3118:1: ( rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1 )
-            // InternalMachineLearningLanguage.g:3119:2: rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1
+            // InternalMachineLearningLanguage.g:3143:1: ( rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1 )
+            // InternalMachineLearningLanguage.g:3144:2: rule__PredictStatementRule__Group__0__Impl rule__PredictStatementRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__PredictStatementRule__Group__0__Impl();
@@ -11075,17 +11123,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:3126:1: rule__PredictStatementRule__Group__0__Impl : ( 'predict' ) ;
+    // InternalMachineLearningLanguage.g:3151:1: rule__PredictStatementRule__Group__0__Impl : ( 'predict' ) ;
     public final void rule__PredictStatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3130:1: ( ( 'predict' ) )
-            // InternalMachineLearningLanguage.g:3131:1: ( 'predict' )
+            // InternalMachineLearningLanguage.g:3155:1: ( ( 'predict' ) )
+            // InternalMachineLearningLanguage.g:3156:1: ( 'predict' )
             {
-            // InternalMachineLearningLanguage.g:3131:1: ( 'predict' )
-            // InternalMachineLearningLanguage.g:3132:2: 'predict'
+            // InternalMachineLearningLanguage.g:3156:1: ( 'predict' )
+            // InternalMachineLearningLanguage.g:3157:2: 'predict'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getPredictKeyword_0()); 
@@ -11116,14 +11164,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__1"
-    // InternalMachineLearningLanguage.g:3141:1: rule__PredictStatementRule__Group__1 : rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:3166:1: rule__PredictStatementRule__Group__1 : rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2 ;
     public final void rule__PredictStatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3145:1: ( rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2 )
-            // InternalMachineLearningLanguage.g:3146:2: rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2
+            // InternalMachineLearningLanguage.g:3170:1: ( rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2 )
+            // InternalMachineLearningLanguage.g:3171:2: rule__PredictStatementRule__Group__1__Impl rule__PredictStatementRule__Group__2
             {
             pushFollow(FOLLOW_23);
             rule__PredictStatementRule__Group__1__Impl();
@@ -11154,23 +11202,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:3153:1: rule__PredictStatementRule__Group__1__Impl : ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3178:1: rule__PredictStatementRule__Group__1__Impl : ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) ) ;
     public final void rule__PredictStatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3157:1: ( ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:3158:1: ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3182:1: ( ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:3183:1: ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3158:1: ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:3159:2: ( rule__PredictStatementRule__SurrogateAssignment_1 )
+            // InternalMachineLearningLanguage.g:3183:1: ( ( rule__PredictStatementRule__SurrogateAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3184:2: ( rule__PredictStatementRule__SurrogateAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getSurrogateAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:3160:2: ( rule__PredictStatementRule__SurrogateAssignment_1 )
-            // InternalMachineLearningLanguage.g:3160:3: rule__PredictStatementRule__SurrogateAssignment_1
+            // InternalMachineLearningLanguage.g:3185:2: ( rule__PredictStatementRule__SurrogateAssignment_1 )
+            // InternalMachineLearningLanguage.g:3185:3: rule__PredictStatementRule__SurrogateAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__PredictStatementRule__SurrogateAssignment_1();
@@ -11205,14 +11253,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__2"
-    // InternalMachineLearningLanguage.g:3168:1: rule__PredictStatementRule__Group__2 : rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:3193:1: rule__PredictStatementRule__Group__2 : rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3 ;
     public final void rule__PredictStatementRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3172:1: ( rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3 )
-            // InternalMachineLearningLanguage.g:3173:2: rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3
+            // InternalMachineLearningLanguage.g:3197:1: ( rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3 )
+            // InternalMachineLearningLanguage.g:3198:2: rule__PredictStatementRule__Group__2__Impl rule__PredictStatementRule__Group__3
             {
             pushFollow(FOLLOW_7);
             rule__PredictStatementRule__Group__2__Impl();
@@ -11243,17 +11291,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:3180:1: rule__PredictStatementRule__Group__2__Impl : ( 'from' ) ;
+    // InternalMachineLearningLanguage.g:3205:1: rule__PredictStatementRule__Group__2__Impl : ( 'from' ) ;
     public final void rule__PredictStatementRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3184:1: ( ( 'from' ) )
-            // InternalMachineLearningLanguage.g:3185:1: ( 'from' )
+            // InternalMachineLearningLanguage.g:3209:1: ( ( 'from' ) )
+            // InternalMachineLearningLanguage.g:3210:1: ( 'from' )
             {
-            // InternalMachineLearningLanguage.g:3185:1: ( 'from' )
-            // InternalMachineLearningLanguage.g:3186:2: 'from'
+            // InternalMachineLearningLanguage.g:3210:1: ( 'from' )
+            // InternalMachineLearningLanguage.g:3211:2: 'from'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getFromKeyword_2()); 
@@ -11284,14 +11332,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__3"
-    // InternalMachineLearningLanguage.g:3195:1: rule__PredictStatementRule__Group__3 : rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:3220:1: rule__PredictStatementRule__Group__3 : rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4 ;
     public final void rule__PredictStatementRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3199:1: ( rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4 )
-            // InternalMachineLearningLanguage.g:3200:2: rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4
+            // InternalMachineLearningLanguage.g:3224:1: ( rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4 )
+            // InternalMachineLearningLanguage.g:3225:2: rule__PredictStatementRule__Group__3__Impl rule__PredictStatementRule__Group__4
             {
             pushFollow(FOLLOW_24);
             rule__PredictStatementRule__Group__3__Impl();
@@ -11322,23 +11370,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:3207:1: rule__PredictStatementRule__Group__3__Impl : ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) ) ;
+    // InternalMachineLearningLanguage.g:3232:1: rule__PredictStatementRule__Group__3__Impl : ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) ) ;
     public final void rule__PredictStatementRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3211:1: ( ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) ) )
-            // InternalMachineLearningLanguage.g:3212:1: ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3236:1: ( ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) ) )
+            // InternalMachineLearningLanguage.g:3237:1: ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) )
             {
-            // InternalMachineLearningLanguage.g:3212:1: ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:3213:2: ( rule__PredictStatementRule__TrainingDataAssignment_3 )
+            // InternalMachineLearningLanguage.g:3237:1: ( ( rule__PredictStatementRule__TrainingDataAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3238:2: ( rule__PredictStatementRule__TrainingDataAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getTrainingDataAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:3214:2: ( rule__PredictStatementRule__TrainingDataAssignment_3 )
-            // InternalMachineLearningLanguage.g:3214:3: rule__PredictStatementRule__TrainingDataAssignment_3
+            // InternalMachineLearningLanguage.g:3239:2: ( rule__PredictStatementRule__TrainingDataAssignment_3 )
+            // InternalMachineLearningLanguage.g:3239:3: rule__PredictStatementRule__TrainingDataAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__PredictStatementRule__TrainingDataAssignment_3();
@@ -11373,14 +11421,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__4"
-    // InternalMachineLearningLanguage.g:3222:1: rule__PredictStatementRule__Group__4 : rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5 ;
+    // InternalMachineLearningLanguage.g:3247:1: rule__PredictStatementRule__Group__4 : rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5 ;
     public final void rule__PredictStatementRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3226:1: ( rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5 )
-            // InternalMachineLearningLanguage.g:3227:2: rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5
+            // InternalMachineLearningLanguage.g:3251:1: ( rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5 )
+            // InternalMachineLearningLanguage.g:3252:2: rule__PredictStatementRule__Group__4__Impl rule__PredictStatementRule__Group__5
             {
             pushFollow(FOLLOW_24);
             rule__PredictStatementRule__Group__4__Impl();
@@ -11411,22 +11459,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:3234:1: rule__PredictStatementRule__Group__4__Impl : ( ( rule__PredictStatementRule__Group_4__0 )? ) ;
+    // InternalMachineLearningLanguage.g:3259:1: rule__PredictStatementRule__Group__4__Impl : ( ( rule__PredictStatementRule__Group_4__0 )? ) ;
     public final void rule__PredictStatementRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3238:1: ( ( ( rule__PredictStatementRule__Group_4__0 )? ) )
-            // InternalMachineLearningLanguage.g:3239:1: ( ( rule__PredictStatementRule__Group_4__0 )? )
+            // InternalMachineLearningLanguage.g:3263:1: ( ( ( rule__PredictStatementRule__Group_4__0 )? ) )
+            // InternalMachineLearningLanguage.g:3264:1: ( ( rule__PredictStatementRule__Group_4__0 )? )
             {
-            // InternalMachineLearningLanguage.g:3239:1: ( ( rule__PredictStatementRule__Group_4__0 )? )
-            // InternalMachineLearningLanguage.g:3240:2: ( rule__PredictStatementRule__Group_4__0 )?
+            // InternalMachineLearningLanguage.g:3264:1: ( ( rule__PredictStatementRule__Group_4__0 )? )
+            // InternalMachineLearningLanguage.g:3265:2: ( rule__PredictStatementRule__Group_4__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getGroup_4()); 
             }
-            // InternalMachineLearningLanguage.g:3241:2: ( rule__PredictStatementRule__Group_4__0 )?
+            // InternalMachineLearningLanguage.g:3266:2: ( rule__PredictStatementRule__Group_4__0 )?
             int alt25=2;
             int LA25_0 = input.LA(1);
 
@@ -11439,7 +11487,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt25) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3241:3: rule__PredictStatementRule__Group_4__0
+                    // InternalMachineLearningLanguage.g:3266:3: rule__PredictStatementRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__PredictStatementRule__Group_4__0();
@@ -11477,14 +11525,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__5"
-    // InternalMachineLearningLanguage.g:3249:1: rule__PredictStatementRule__Group__5 : rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6 ;
+    // InternalMachineLearningLanguage.g:3274:1: rule__PredictStatementRule__Group__5 : rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6 ;
     public final void rule__PredictStatementRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3253:1: ( rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6 )
-            // InternalMachineLearningLanguage.g:3254:2: rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6
+            // InternalMachineLearningLanguage.g:3278:1: ( rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6 )
+            // InternalMachineLearningLanguage.g:3279:2: rule__PredictStatementRule__Group__5__Impl rule__PredictStatementRule__Group__6
             {
             pushFollow(FOLLOW_25);
             rule__PredictStatementRule__Group__5__Impl();
@@ -11515,17 +11563,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__5__Impl"
-    // InternalMachineLearningLanguage.g:3261:1: rule__PredictStatementRule__Group__5__Impl : ( 'and' ) ;
+    // InternalMachineLearningLanguage.g:3286:1: rule__PredictStatementRule__Group__5__Impl : ( 'and' ) ;
     public final void rule__PredictStatementRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3265:1: ( ( 'and' ) )
-            // InternalMachineLearningLanguage.g:3266:1: ( 'and' )
+            // InternalMachineLearningLanguage.g:3290:1: ( ( 'and' ) )
+            // InternalMachineLearningLanguage.g:3291:1: ( 'and' )
             {
-            // InternalMachineLearningLanguage.g:3266:1: ( 'and' )
-            // InternalMachineLearningLanguage.g:3267:2: 'and'
+            // InternalMachineLearningLanguage.g:3291:1: ( 'and' )
+            // InternalMachineLearningLanguage.g:3292:2: 'and'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getAndKeyword_5()); 
@@ -11556,14 +11604,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__6"
-    // InternalMachineLearningLanguage.g:3276:1: rule__PredictStatementRule__Group__6 : rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7 ;
+    // InternalMachineLearningLanguage.g:3301:1: rule__PredictStatementRule__Group__6 : rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7 ;
     public final void rule__PredictStatementRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3280:1: ( rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7 )
-            // InternalMachineLearningLanguage.g:3281:2: rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7
+            // InternalMachineLearningLanguage.g:3305:1: ( rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7 )
+            // InternalMachineLearningLanguage.g:3306:2: rule__PredictStatementRule__Group__6__Impl rule__PredictStatementRule__Group__7
             {
             pushFollow(FOLLOW_26);
             rule__PredictStatementRule__Group__6__Impl();
@@ -11594,17 +11642,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__6__Impl"
-    // InternalMachineLearningLanguage.g:3288:1: rule__PredictStatementRule__Group__6__Impl : ( 'store' ) ;
+    // InternalMachineLearningLanguage.g:3313:1: rule__PredictStatementRule__Group__6__Impl : ( 'store' ) ;
     public final void rule__PredictStatementRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3292:1: ( ( 'store' ) )
-            // InternalMachineLearningLanguage.g:3293:1: ( 'store' )
+            // InternalMachineLearningLanguage.g:3317:1: ( ( 'store' ) )
+            // InternalMachineLearningLanguage.g:3318:1: ( 'store' )
             {
-            // InternalMachineLearningLanguage.g:3293:1: ( 'store' )
-            // InternalMachineLearningLanguage.g:3294:2: 'store'
+            // InternalMachineLearningLanguage.g:3318:1: ( 'store' )
+            // InternalMachineLearningLanguage.g:3319:2: 'store'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getStoreKeyword_6()); 
@@ -11635,14 +11683,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__7"
-    // InternalMachineLearningLanguage.g:3303:1: rule__PredictStatementRule__Group__7 : rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8 ;
+    // InternalMachineLearningLanguage.g:3328:1: rule__PredictStatementRule__Group__7 : rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8 ;
     public final void rule__PredictStatementRule__Group__7() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3307:1: ( rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8 )
-            // InternalMachineLearningLanguage.g:3308:2: rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8
+            // InternalMachineLearningLanguage.g:3332:1: ( rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8 )
+            // InternalMachineLearningLanguage.g:3333:2: rule__PredictStatementRule__Group__7__Impl rule__PredictStatementRule__Group__8
             {
             pushFollow(FOLLOW_7);
             rule__PredictStatementRule__Group__7__Impl();
@@ -11673,17 +11721,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__7__Impl"
-    // InternalMachineLearningLanguage.g:3315:1: rule__PredictStatementRule__Group__7__Impl : ( 'to' ) ;
+    // InternalMachineLearningLanguage.g:3340:1: rule__PredictStatementRule__Group__7__Impl : ( 'to' ) ;
     public final void rule__PredictStatementRule__Group__7__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3319:1: ( ( 'to' ) )
-            // InternalMachineLearningLanguage.g:3320:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:3344:1: ( ( 'to' ) )
+            // InternalMachineLearningLanguage.g:3345:1: ( 'to' )
             {
-            // InternalMachineLearningLanguage.g:3320:1: ( 'to' )
-            // InternalMachineLearningLanguage.g:3321:2: 'to'
+            // InternalMachineLearningLanguage.g:3345:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:3346:2: 'to'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getToKeyword_7()); 
@@ -11714,14 +11762,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__8"
-    // InternalMachineLearningLanguage.g:3330:1: rule__PredictStatementRule__Group__8 : rule__PredictStatementRule__Group__8__Impl ;
+    // InternalMachineLearningLanguage.g:3355:1: rule__PredictStatementRule__Group__8 : rule__PredictStatementRule__Group__8__Impl ;
     public final void rule__PredictStatementRule__Group__8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3334:1: ( rule__PredictStatementRule__Group__8__Impl )
-            // InternalMachineLearningLanguage.g:3335:2: rule__PredictStatementRule__Group__8__Impl
+            // InternalMachineLearningLanguage.g:3359:1: ( rule__PredictStatementRule__Group__8__Impl )
+            // InternalMachineLearningLanguage.g:3360:2: rule__PredictStatementRule__Group__8__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PredictStatementRule__Group__8__Impl();
@@ -11747,23 +11795,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group__8__Impl"
-    // InternalMachineLearningLanguage.g:3341:1: rule__PredictStatementRule__Group__8__Impl : ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) ) ;
+    // InternalMachineLearningLanguage.g:3366:1: rule__PredictStatementRule__Group__8__Impl : ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) ) ;
     public final void rule__PredictStatementRule__Group__8__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3345:1: ( ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) ) )
-            // InternalMachineLearningLanguage.g:3346:1: ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) )
+            // InternalMachineLearningLanguage.g:3370:1: ( ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) ) )
+            // InternalMachineLearningLanguage.g:3371:1: ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) )
             {
-            // InternalMachineLearningLanguage.g:3346:1: ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) )
-            // InternalMachineLearningLanguage.g:3347:2: ( rule__PredictStatementRule__ModelFilenameAssignment_8 )
+            // InternalMachineLearningLanguage.g:3371:1: ( ( rule__PredictStatementRule__ModelFilenameAssignment_8 ) )
+            // InternalMachineLearningLanguage.g:3372:2: ( rule__PredictStatementRule__ModelFilenameAssignment_8 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getModelFilenameAssignment_8()); 
             }
-            // InternalMachineLearningLanguage.g:3348:2: ( rule__PredictStatementRule__ModelFilenameAssignment_8 )
-            // InternalMachineLearningLanguage.g:3348:3: rule__PredictStatementRule__ModelFilenameAssignment_8
+            // InternalMachineLearningLanguage.g:3373:2: ( rule__PredictStatementRule__ModelFilenameAssignment_8 )
+            // InternalMachineLearningLanguage.g:3373:3: rule__PredictStatementRule__ModelFilenameAssignment_8
             {
             pushFollow(FOLLOW_2);
             rule__PredictStatementRule__ModelFilenameAssignment_8();
@@ -11798,14 +11846,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__0"
-    // InternalMachineLearningLanguage.g:3357:1: rule__PredictStatementRule__Group_4__0 : rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1 ;
+    // InternalMachineLearningLanguage.g:3382:1: rule__PredictStatementRule__Group_4__0 : rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1 ;
     public final void rule__PredictStatementRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3361:1: ( rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1 )
-            // InternalMachineLearningLanguage.g:3362:2: rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1
+            // InternalMachineLearningLanguage.g:3386:1: ( rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1 )
+            // InternalMachineLearningLanguage.g:3387:2: rule__PredictStatementRule__Group_4__0__Impl rule__PredictStatementRule__Group_4__1
             {
             pushFollow(FOLLOW_27);
             rule__PredictStatementRule__Group_4__0__Impl();
@@ -11836,17 +11884,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__0__Impl"
-    // InternalMachineLearningLanguage.g:3369:1: rule__PredictStatementRule__Group_4__0__Impl : ( 'and' ) ;
+    // InternalMachineLearningLanguage.g:3394:1: rule__PredictStatementRule__Group_4__0__Impl : ( 'and' ) ;
     public final void rule__PredictStatementRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3373:1: ( ( 'and' ) )
-            // InternalMachineLearningLanguage.g:3374:1: ( 'and' )
+            // InternalMachineLearningLanguage.g:3398:1: ( ( 'and' ) )
+            // InternalMachineLearningLanguage.g:3399:1: ( 'and' )
             {
-            // InternalMachineLearningLanguage.g:3374:1: ( 'and' )
-            // InternalMachineLearningLanguage.g:3375:2: 'and'
+            // InternalMachineLearningLanguage.g:3399:1: ( 'and' )
+            // InternalMachineLearningLanguage.g:3400:2: 'and'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getAndKeyword_4_0()); 
@@ -11877,14 +11925,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__1"
-    // InternalMachineLearningLanguage.g:3384:1: rule__PredictStatementRule__Group_4__1 : rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2 ;
+    // InternalMachineLearningLanguage.g:3409:1: rule__PredictStatementRule__Group_4__1 : rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2 ;
     public final void rule__PredictStatementRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3388:1: ( rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2 )
-            // InternalMachineLearningLanguage.g:3389:2: rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2
+            // InternalMachineLearningLanguage.g:3413:1: ( rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2 )
+            // InternalMachineLearningLanguage.g:3414:2: rule__PredictStatementRule__Group_4__1__Impl rule__PredictStatementRule__Group_4__2
             {
             pushFollow(FOLLOW_28);
             rule__PredictStatementRule__Group_4__1__Impl();
@@ -11915,17 +11963,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__1__Impl"
-    // InternalMachineLearningLanguage.g:3396:1: rule__PredictStatementRule__Group_4__1__Impl : ( 'measure' ) ;
+    // InternalMachineLearningLanguage.g:3421:1: rule__PredictStatementRule__Group_4__1__Impl : ( 'measure' ) ;
     public final void rule__PredictStatementRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3400:1: ( ( 'measure' ) )
-            // InternalMachineLearningLanguage.g:3401:1: ( 'measure' )
+            // InternalMachineLearningLanguage.g:3425:1: ( ( 'measure' ) )
+            // InternalMachineLearningLanguage.g:3426:1: ( 'measure' )
             {
-            // InternalMachineLearningLanguage.g:3401:1: ( 'measure' )
-            // InternalMachineLearningLanguage.g:3402:2: 'measure'
+            // InternalMachineLearningLanguage.g:3426:1: ( 'measure' )
+            // InternalMachineLearningLanguage.g:3427:2: 'measure'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getMeasureKeyword_4_1()); 
@@ -11956,14 +12004,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__2"
-    // InternalMachineLearningLanguage.g:3411:1: rule__PredictStatementRule__Group_4__2 : rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3 ;
+    // InternalMachineLearningLanguage.g:3436:1: rule__PredictStatementRule__Group_4__2 : rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3 ;
     public final void rule__PredictStatementRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3415:1: ( rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3 )
-            // InternalMachineLearningLanguage.g:3416:2: rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3
+            // InternalMachineLearningLanguage.g:3440:1: ( rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3 )
+            // InternalMachineLearningLanguage.g:3441:2: rule__PredictStatementRule__Group_4__2__Impl rule__PredictStatementRule__Group_4__3
             {
             pushFollow(FOLLOW_28);
             rule__PredictStatementRule__Group_4__2__Impl();
@@ -11994,22 +12042,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__2__Impl"
-    // InternalMachineLearningLanguage.g:3423:1: rule__PredictStatementRule__Group_4__2__Impl : ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* ) ;
+    // InternalMachineLearningLanguage.g:3448:1: rule__PredictStatementRule__Group_4__2__Impl : ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* ) ;
     public final void rule__PredictStatementRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3427:1: ( ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* ) )
-            // InternalMachineLearningLanguage.g:3428:1: ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* )
+            // InternalMachineLearningLanguage.g:3452:1: ( ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* ) )
+            // InternalMachineLearningLanguage.g:3453:1: ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* )
             {
-            // InternalMachineLearningLanguage.g:3428:1: ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* )
-            // InternalMachineLearningLanguage.g:3429:2: ( rule__PredictStatementRule__StatementsAssignment_4_2 )*
+            // InternalMachineLearningLanguage.g:3453:1: ( ( rule__PredictStatementRule__StatementsAssignment_4_2 )* )
+            // InternalMachineLearningLanguage.g:3454:2: ( rule__PredictStatementRule__StatementsAssignment_4_2 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getStatementsAssignment_4_2()); 
             }
-            // InternalMachineLearningLanguage.g:3430:2: ( rule__PredictStatementRule__StatementsAssignment_4_2 )*
+            // InternalMachineLearningLanguage.g:3455:2: ( rule__PredictStatementRule__StatementsAssignment_4_2 )*
             loop26:
             do {
                 int alt26=2;
@@ -12022,7 +12070,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt26) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3430:3: rule__PredictStatementRule__StatementsAssignment_4_2
+            	    // InternalMachineLearningLanguage.g:3455:3: rule__PredictStatementRule__StatementsAssignment_4_2
             	    {
             	    pushFollow(FOLLOW_22);
             	    rule__PredictStatementRule__StatementsAssignment_4_2();
@@ -12063,14 +12111,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__3"
-    // InternalMachineLearningLanguage.g:3438:1: rule__PredictStatementRule__Group_4__3 : rule__PredictStatementRule__Group_4__3__Impl ;
+    // InternalMachineLearningLanguage.g:3463:1: rule__PredictStatementRule__Group_4__3 : rule__PredictStatementRule__Group_4__3__Impl ;
     public final void rule__PredictStatementRule__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3442:1: ( rule__PredictStatementRule__Group_4__3__Impl )
-            // InternalMachineLearningLanguage.g:3443:2: rule__PredictStatementRule__Group_4__3__Impl
+            // InternalMachineLearningLanguage.g:3467:1: ( rule__PredictStatementRule__Group_4__3__Impl )
+            // InternalMachineLearningLanguage.g:3468:2: rule__PredictStatementRule__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__PredictStatementRule__Group_4__3__Impl();
@@ -12096,17 +12144,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__Group_4__3__Impl"
-    // InternalMachineLearningLanguage.g:3449:1: rule__PredictStatementRule__Group_4__3__Impl : ( 'end' ) ;
+    // InternalMachineLearningLanguage.g:3474:1: rule__PredictStatementRule__Group_4__3__Impl : ( 'end' ) ;
     public final void rule__PredictStatementRule__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3453:1: ( ( 'end' ) )
-            // InternalMachineLearningLanguage.g:3454:1: ( 'end' )
+            // InternalMachineLearningLanguage.g:3478:1: ( ( 'end' ) )
+            // InternalMachineLearningLanguage.g:3479:1: ( 'end' )
             {
-            // InternalMachineLearningLanguage.g:3454:1: ( 'end' )
-            // InternalMachineLearningLanguage.g:3455:2: 'end'
+            // InternalMachineLearningLanguage.g:3479:1: ( 'end' )
+            // InternalMachineLearningLanguage.g:3480:2: 'end'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getEndKeyword_4_3()); 
@@ -12137,14 +12185,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__0"
-    // InternalMachineLearningLanguage.g:3465:1: rule__ForStatementRule__Group__0 : rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:3490:1: rule__ForStatementRule__Group__0 : rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 ;
     public final void rule__ForStatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3469:1: ( rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 )
-            // InternalMachineLearningLanguage.g:3470:2: rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1
+            // InternalMachineLearningLanguage.g:3494:1: ( rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1 )
+            // InternalMachineLearningLanguage.g:3495:2: rule__ForStatementRule__Group__0__Impl rule__ForStatementRule__Group__1
             {
             pushFollow(FOLLOW_29);
             rule__ForStatementRule__Group__0__Impl();
@@ -12175,17 +12223,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:3477:1: rule__ForStatementRule__Group__0__Impl : ( 'for' ) ;
+    // InternalMachineLearningLanguage.g:3502:1: rule__ForStatementRule__Group__0__Impl : ( 'for' ) ;
     public final void rule__ForStatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3481:1: ( ( 'for' ) )
-            // InternalMachineLearningLanguage.g:3482:1: ( 'for' )
+            // InternalMachineLearningLanguage.g:3506:1: ( ( 'for' ) )
+            // InternalMachineLearningLanguage.g:3507:1: ( 'for' )
             {
-            // InternalMachineLearningLanguage.g:3482:1: ( 'for' )
-            // InternalMachineLearningLanguage.g:3483:2: 'for'
+            // InternalMachineLearningLanguage.g:3507:1: ( 'for' )
+            // InternalMachineLearningLanguage.g:3508:2: 'for'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getForKeyword_0()); 
@@ -12216,14 +12264,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__1"
-    // InternalMachineLearningLanguage.g:3492:1: rule__ForStatementRule__Group__1 : rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:3517:1: rule__ForStatementRule__Group__1 : rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 ;
     public final void rule__ForStatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3496:1: ( rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 )
-            // InternalMachineLearningLanguage.g:3497:2: rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2
+            // InternalMachineLearningLanguage.g:3521:1: ( rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2 )
+            // InternalMachineLearningLanguage.g:3522:2: rule__ForStatementRule__Group__1__Impl rule__ForStatementRule__Group__2
             {
             pushFollow(FOLLOW_30);
             rule__ForStatementRule__Group__1__Impl();
@@ -12254,23 +12302,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:3504:1: rule__ForStatementRule__Group__1__Impl : ( ( rule__ForStatementRule__NameAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3529:1: rule__ForStatementRule__Group__1__Impl : ( ( rule__ForStatementRule__NameAssignment_1 ) ) ;
     public final void rule__ForStatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3508:1: ( ( ( rule__ForStatementRule__NameAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:3509:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3533:1: ( ( ( rule__ForStatementRule__NameAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:3534:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3509:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:3510:2: ( rule__ForStatementRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:3534:1: ( ( rule__ForStatementRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3535:2: ( rule__ForStatementRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getNameAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:3511:2: ( rule__ForStatementRule__NameAssignment_1 )
-            // InternalMachineLearningLanguage.g:3511:3: rule__ForStatementRule__NameAssignment_1
+            // InternalMachineLearningLanguage.g:3536:2: ( rule__ForStatementRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:3536:3: rule__ForStatementRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__NameAssignment_1();
@@ -12305,14 +12353,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__2"
-    // InternalMachineLearningLanguage.g:3519:1: rule__ForStatementRule__Group__2 : rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:3544:1: rule__ForStatementRule__Group__2 : rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 ;
     public final void rule__ForStatementRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3523:1: ( rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 )
-            // InternalMachineLearningLanguage.g:3524:2: rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3
+            // InternalMachineLearningLanguage.g:3548:1: ( rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3 )
+            // InternalMachineLearningLanguage.g:3549:2: rule__ForStatementRule__Group__2__Impl rule__ForStatementRule__Group__3
             {
             pushFollow(FOLLOW_31);
             rule__ForStatementRule__Group__2__Impl();
@@ -12343,17 +12391,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:3531:1: rule__ForStatementRule__Group__2__Impl : ( 'in' ) ;
+    // InternalMachineLearningLanguage.g:3556:1: rule__ForStatementRule__Group__2__Impl : ( 'in' ) ;
     public final void rule__ForStatementRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3535:1: ( ( 'in' ) )
-            // InternalMachineLearningLanguage.g:3536:1: ( 'in' )
+            // InternalMachineLearningLanguage.g:3560:1: ( ( 'in' ) )
+            // InternalMachineLearningLanguage.g:3561:1: ( 'in' )
             {
-            // InternalMachineLearningLanguage.g:3536:1: ( 'in' )
-            // InternalMachineLearningLanguage.g:3537:2: 'in'
+            // InternalMachineLearningLanguage.g:3561:1: ( 'in' )
+            // InternalMachineLearningLanguage.g:3562:2: 'in'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getInKeyword_2()); 
@@ -12384,14 +12432,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__3"
-    // InternalMachineLearningLanguage.g:3546:1: rule__ForStatementRule__Group__3 : rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:3571:1: rule__ForStatementRule__Group__3 : rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 ;
     public final void rule__ForStatementRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3550:1: ( rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 )
-            // InternalMachineLearningLanguage.g:3551:2: rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4
+            // InternalMachineLearningLanguage.g:3575:1: ( rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4 )
+            // InternalMachineLearningLanguage.g:3576:2: rule__ForStatementRule__Group__3__Impl rule__ForStatementRule__Group__4
             {
             pushFollow(FOLLOW_32);
             rule__ForStatementRule__Group__3__Impl();
@@ -12422,23 +12470,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:3558:1: rule__ForStatementRule__Group__3__Impl : ( ( rule__ForStatementRule__RangeAssignment_3 ) ) ;
+    // InternalMachineLearningLanguage.g:3583:1: rule__ForStatementRule__Group__3__Impl : ( ( rule__ForStatementRule__RangeAssignment_3 ) ) ;
     public final void rule__ForStatementRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3562:1: ( ( ( rule__ForStatementRule__RangeAssignment_3 ) ) )
-            // InternalMachineLearningLanguage.g:3563:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3587:1: ( ( ( rule__ForStatementRule__RangeAssignment_3 ) ) )
+            // InternalMachineLearningLanguage.g:3588:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
             {
-            // InternalMachineLearningLanguage.g:3563:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:3564:2: ( rule__ForStatementRule__RangeAssignment_3 )
+            // InternalMachineLearningLanguage.g:3588:1: ( ( rule__ForStatementRule__RangeAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3589:2: ( rule__ForStatementRule__RangeAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getRangeAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:3565:2: ( rule__ForStatementRule__RangeAssignment_3 )
-            // InternalMachineLearningLanguage.g:3565:3: rule__ForStatementRule__RangeAssignment_3
+            // InternalMachineLearningLanguage.g:3590:2: ( rule__ForStatementRule__RangeAssignment_3 )
+            // InternalMachineLearningLanguage.g:3590:3: rule__ForStatementRule__RangeAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__RangeAssignment_3();
@@ -12473,14 +12521,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__4"
-    // InternalMachineLearningLanguage.g:3573:1: rule__ForStatementRule__Group__4 : rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 ;
+    // InternalMachineLearningLanguage.g:3598:1: rule__ForStatementRule__Group__4 : rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 ;
     public final void rule__ForStatementRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3577:1: ( rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 )
-            // InternalMachineLearningLanguage.g:3578:2: rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5
+            // InternalMachineLearningLanguage.g:3602:1: ( rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5 )
+            // InternalMachineLearningLanguage.g:3603:2: rule__ForStatementRule__Group__4__Impl rule__ForStatementRule__Group__5
             {
             pushFollow(FOLLOW_33);
             rule__ForStatementRule__Group__4__Impl();
@@ -12511,17 +12559,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:3585:1: rule__ForStatementRule__Group__4__Impl : ( 'loop' ) ;
+    // InternalMachineLearningLanguage.g:3610:1: rule__ForStatementRule__Group__4__Impl : ( 'loop' ) ;
     public final void rule__ForStatementRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3589:1: ( ( 'loop' ) )
-            // InternalMachineLearningLanguage.g:3590:1: ( 'loop' )
+            // InternalMachineLearningLanguage.g:3614:1: ( ( 'loop' ) )
+            // InternalMachineLearningLanguage.g:3615:1: ( 'loop' )
             {
-            // InternalMachineLearningLanguage.g:3590:1: ( 'loop' )
-            // InternalMachineLearningLanguage.g:3591:2: 'loop'
+            // InternalMachineLearningLanguage.g:3615:1: ( 'loop' )
+            // InternalMachineLearningLanguage.g:3616:2: 'loop'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getLoopKeyword_4()); 
@@ -12552,14 +12600,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__5"
-    // InternalMachineLearningLanguage.g:3600:1: rule__ForStatementRule__Group__5 : rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 ;
+    // InternalMachineLearningLanguage.g:3625:1: rule__ForStatementRule__Group__5 : rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 ;
     public final void rule__ForStatementRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3604:1: ( rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 )
-            // InternalMachineLearningLanguage.g:3605:2: rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6
+            // InternalMachineLearningLanguage.g:3629:1: ( rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6 )
+            // InternalMachineLearningLanguage.g:3630:2: rule__ForStatementRule__Group__5__Impl rule__ForStatementRule__Group__6
             {
             pushFollow(FOLLOW_33);
             rule__ForStatementRule__Group__5__Impl();
@@ -12590,22 +12638,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__5__Impl"
-    // InternalMachineLearningLanguage.g:3612:1: rule__ForStatementRule__Group__5__Impl : ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) ;
+    // InternalMachineLearningLanguage.g:3637:1: rule__ForStatementRule__Group__5__Impl : ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) ;
     public final void rule__ForStatementRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3616:1: ( ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) )
-            // InternalMachineLearningLanguage.g:3617:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
+            // InternalMachineLearningLanguage.g:3641:1: ( ( ( rule__ForStatementRule__StatementsAssignment_5 )* ) )
+            // InternalMachineLearningLanguage.g:3642:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
             {
-            // InternalMachineLearningLanguage.g:3617:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
-            // InternalMachineLearningLanguage.g:3618:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
+            // InternalMachineLearningLanguage.g:3642:1: ( ( rule__ForStatementRule__StatementsAssignment_5 )* )
+            // InternalMachineLearningLanguage.g:3643:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getStatementsAssignment_5()); 
             }
-            // InternalMachineLearningLanguage.g:3619:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
+            // InternalMachineLearningLanguage.g:3644:2: ( rule__ForStatementRule__StatementsAssignment_5 )*
             loop27:
             do {
                 int alt27=2;
@@ -12618,7 +12666,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt27) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3619:3: rule__ForStatementRule__StatementsAssignment_5
+            	    // InternalMachineLearningLanguage.g:3644:3: rule__ForStatementRule__StatementsAssignment_5
             	    {
             	    pushFollow(FOLLOW_6);
             	    rule__ForStatementRule__StatementsAssignment_5();
@@ -12659,14 +12707,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__6"
-    // InternalMachineLearningLanguage.g:3627:1: rule__ForStatementRule__Group__6 : rule__ForStatementRule__Group__6__Impl ;
+    // InternalMachineLearningLanguage.g:3652:1: rule__ForStatementRule__Group__6 : rule__ForStatementRule__Group__6__Impl ;
     public final void rule__ForStatementRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3631:1: ( rule__ForStatementRule__Group__6__Impl )
-            // InternalMachineLearningLanguage.g:3632:2: rule__ForStatementRule__Group__6__Impl
+            // InternalMachineLearningLanguage.g:3656:1: ( rule__ForStatementRule__Group__6__Impl )
+            // InternalMachineLearningLanguage.g:3657:2: rule__ForStatementRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ForStatementRule__Group__6__Impl();
@@ -12692,17 +12740,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__Group__6__Impl"
-    // InternalMachineLearningLanguage.g:3638:1: rule__ForStatementRule__Group__6__Impl : ( 'end' ) ;
+    // InternalMachineLearningLanguage.g:3663:1: rule__ForStatementRule__Group__6__Impl : ( 'end' ) ;
     public final void rule__ForStatementRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3642:1: ( ( 'end' ) )
-            // InternalMachineLearningLanguage.g:3643:1: ( 'end' )
+            // InternalMachineLearningLanguage.g:3667:1: ( ( 'end' ) )
+            // InternalMachineLearningLanguage.g:3668:1: ( 'end' )
             {
-            // InternalMachineLearningLanguage.g:3643:1: ( 'end' )
-            // InternalMachineLearningLanguage.g:3644:2: 'end'
+            // InternalMachineLearningLanguage.g:3668:1: ( 'end' )
+            // InternalMachineLearningLanguage.g:3669:2: 'end'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getEndKeyword_6()); 
@@ -12733,14 +12781,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__0"
-    // InternalMachineLearningLanguage.g:3654:1: rule__CounterRangeRule__Group__0 : rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:3679:1: rule__CounterRangeRule__Group__0 : rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 ;
     public final void rule__CounterRangeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3658:1: ( rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:3659:2: rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1
+            // InternalMachineLearningLanguage.g:3683:1: ( rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:3684:2: rule__CounterRangeRule__Group__0__Impl rule__CounterRangeRule__Group__1
             {
             pushFollow(FOLLOW_34);
             rule__CounterRangeRule__Group__0__Impl();
@@ -12771,17 +12819,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:3666:1: rule__CounterRangeRule__Group__0__Impl : ( '[' ) ;
+    // InternalMachineLearningLanguage.g:3691:1: rule__CounterRangeRule__Group__0__Impl : ( '[' ) ;
     public final void rule__CounterRangeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3670:1: ( ( '[' ) )
-            // InternalMachineLearningLanguage.g:3671:1: ( '[' )
+            // InternalMachineLearningLanguage.g:3695:1: ( ( '[' ) )
+            // InternalMachineLearningLanguage.g:3696:1: ( '[' )
             {
-            // InternalMachineLearningLanguage.g:3671:1: ( '[' )
-            // InternalMachineLearningLanguage.g:3672:2: '['
+            // InternalMachineLearningLanguage.g:3696:1: ( '[' )
+            // InternalMachineLearningLanguage.g:3697:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getLeftSquareBracketKeyword_0()); 
@@ -12812,14 +12860,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__1"
-    // InternalMachineLearningLanguage.g:3681:1: rule__CounterRangeRule__Group__1 : rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:3706:1: rule__CounterRangeRule__Group__1 : rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 ;
     public final void rule__CounterRangeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3685:1: ( rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 )
-            // InternalMachineLearningLanguage.g:3686:2: rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2
+            // InternalMachineLearningLanguage.g:3710:1: ( rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2 )
+            // InternalMachineLearningLanguage.g:3711:2: rule__CounterRangeRule__Group__1__Impl rule__CounterRangeRule__Group__2
             {
             pushFollow(FOLLOW_26);
             rule__CounterRangeRule__Group__1__Impl();
@@ -12850,23 +12898,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:3693:1: rule__CounterRangeRule__Group__1__Impl : ( ( rule__CounterRangeRule__StartAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3718:1: rule__CounterRangeRule__Group__1__Impl : ( ( rule__CounterRangeRule__StartAssignment_1 ) ) ;
     public final void rule__CounterRangeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3697:1: ( ( ( rule__CounterRangeRule__StartAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:3698:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3722:1: ( ( ( rule__CounterRangeRule__StartAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:3723:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3698:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:3699:2: ( rule__CounterRangeRule__StartAssignment_1 )
+            // InternalMachineLearningLanguage.g:3723:1: ( ( rule__CounterRangeRule__StartAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3724:2: ( rule__CounterRangeRule__StartAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getStartAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:3700:2: ( rule__CounterRangeRule__StartAssignment_1 )
-            // InternalMachineLearningLanguage.g:3700:3: rule__CounterRangeRule__StartAssignment_1
+            // InternalMachineLearningLanguage.g:3725:2: ( rule__CounterRangeRule__StartAssignment_1 )
+            // InternalMachineLearningLanguage.g:3725:3: rule__CounterRangeRule__StartAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__StartAssignment_1();
@@ -12901,14 +12949,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__2"
-    // InternalMachineLearningLanguage.g:3708:1: rule__CounterRangeRule__Group__2 : rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:3733:1: rule__CounterRangeRule__Group__2 : rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 ;
     public final void rule__CounterRangeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3712:1: ( rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 )
-            // InternalMachineLearningLanguage.g:3713:2: rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3
+            // InternalMachineLearningLanguage.g:3737:1: ( rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3 )
+            // InternalMachineLearningLanguage.g:3738:2: rule__CounterRangeRule__Group__2__Impl rule__CounterRangeRule__Group__3
             {
             pushFollow(FOLLOW_34);
             rule__CounterRangeRule__Group__2__Impl();
@@ -12939,17 +12987,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:3720:1: rule__CounterRangeRule__Group__2__Impl : ( 'to' ) ;
+    // InternalMachineLearningLanguage.g:3745:1: rule__CounterRangeRule__Group__2__Impl : ( 'to' ) ;
     public final void rule__CounterRangeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3724:1: ( ( 'to' ) )
-            // InternalMachineLearningLanguage.g:3725:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:3749:1: ( ( 'to' ) )
+            // InternalMachineLearningLanguage.g:3750:1: ( 'to' )
             {
-            // InternalMachineLearningLanguage.g:3725:1: ( 'to' )
-            // InternalMachineLearningLanguage.g:3726:2: 'to'
+            // InternalMachineLearningLanguage.g:3750:1: ( 'to' )
+            // InternalMachineLearningLanguage.g:3751:2: 'to'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getToKeyword_2()); 
@@ -12980,14 +13028,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__3"
-    // InternalMachineLearningLanguage.g:3735:1: rule__CounterRangeRule__Group__3 : rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:3760:1: rule__CounterRangeRule__Group__3 : rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 ;
     public final void rule__CounterRangeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3739:1: ( rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 )
-            // InternalMachineLearningLanguage.g:3740:2: rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4
+            // InternalMachineLearningLanguage.g:3764:1: ( rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4 )
+            // InternalMachineLearningLanguage.g:3765:2: rule__CounterRangeRule__Group__3__Impl rule__CounterRangeRule__Group__4
             {
             pushFollow(FOLLOW_35);
             rule__CounterRangeRule__Group__3__Impl();
@@ -13018,23 +13066,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:3747:1: rule__CounterRangeRule__Group__3__Impl : ( ( rule__CounterRangeRule__EndAssignment_3 ) ) ;
+    // InternalMachineLearningLanguage.g:3772:1: rule__CounterRangeRule__Group__3__Impl : ( ( rule__CounterRangeRule__EndAssignment_3 ) ) ;
     public final void rule__CounterRangeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3751:1: ( ( ( rule__CounterRangeRule__EndAssignment_3 ) ) )
-            // InternalMachineLearningLanguage.g:3752:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3776:1: ( ( ( rule__CounterRangeRule__EndAssignment_3 ) ) )
+            // InternalMachineLearningLanguage.g:3777:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
             {
-            // InternalMachineLearningLanguage.g:3752:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
-            // InternalMachineLearningLanguage.g:3753:2: ( rule__CounterRangeRule__EndAssignment_3 )
+            // InternalMachineLearningLanguage.g:3777:1: ( ( rule__CounterRangeRule__EndAssignment_3 ) )
+            // InternalMachineLearningLanguage.g:3778:2: ( rule__CounterRangeRule__EndAssignment_3 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getEndAssignment_3()); 
             }
-            // InternalMachineLearningLanguage.g:3754:2: ( rule__CounterRangeRule__EndAssignment_3 )
-            // InternalMachineLearningLanguage.g:3754:3: rule__CounterRangeRule__EndAssignment_3
+            // InternalMachineLearningLanguage.g:3779:2: ( rule__CounterRangeRule__EndAssignment_3 )
+            // InternalMachineLearningLanguage.g:3779:3: rule__CounterRangeRule__EndAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__EndAssignment_3();
@@ -13069,14 +13117,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__4"
-    // InternalMachineLearningLanguage.g:3762:1: rule__CounterRangeRule__Group__4 : rule__CounterRangeRule__Group__4__Impl ;
+    // InternalMachineLearningLanguage.g:3787:1: rule__CounterRangeRule__Group__4 : rule__CounterRangeRule__Group__4__Impl ;
     public final void rule__CounterRangeRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3766:1: ( rule__CounterRangeRule__Group__4__Impl )
-            // InternalMachineLearningLanguage.g:3767:2: rule__CounterRangeRule__Group__4__Impl
+            // InternalMachineLearningLanguage.g:3791:1: ( rule__CounterRangeRule__Group__4__Impl )
+            // InternalMachineLearningLanguage.g:3792:2: rule__CounterRangeRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CounterRangeRule__Group__4__Impl();
@@ -13102,17 +13150,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:3773:1: rule__CounterRangeRule__Group__4__Impl : ( ']' ) ;
+    // InternalMachineLearningLanguage.g:3798:1: rule__CounterRangeRule__Group__4__Impl : ( ']' ) ;
     public final void rule__CounterRangeRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3777:1: ( ( ']' ) )
-            // InternalMachineLearningLanguage.g:3778:1: ( ']' )
+            // InternalMachineLearningLanguage.g:3802:1: ( ( ']' ) )
+            // InternalMachineLearningLanguage.g:3803:1: ( ']' )
             {
-            // InternalMachineLearningLanguage.g:3778:1: ( ']' )
-            // InternalMachineLearningLanguage.g:3779:2: ']'
+            // InternalMachineLearningLanguage.g:3803:1: ( ']' )
+            // InternalMachineLearningLanguage.g:3804:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getRightSquareBracketKeyword_4()); 
@@ -13143,14 +13191,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__0"
-    // InternalMachineLearningLanguage.g:3789:1: rule__StringLiterRangeRule__Group__0 : rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:3814:1: rule__StringLiterRangeRule__Group__0 : rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1 ;
     public final void rule__StringLiterRangeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3793:1: ( rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:3794:2: rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1
+            // InternalMachineLearningLanguage.g:3818:1: ( rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:3819:2: rule__StringLiterRangeRule__Group__0__Impl rule__StringLiterRangeRule__Group__1
             {
             pushFollow(FOLLOW_7);
             rule__StringLiterRangeRule__Group__0__Impl();
@@ -13181,17 +13229,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:3801:1: rule__StringLiterRangeRule__Group__0__Impl : ( '[' ) ;
+    // InternalMachineLearningLanguage.g:3826:1: rule__StringLiterRangeRule__Group__0__Impl : ( '[' ) ;
     public final void rule__StringLiterRangeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3805:1: ( ( '[' ) )
-            // InternalMachineLearningLanguage.g:3806:1: ( '[' )
+            // InternalMachineLearningLanguage.g:3830:1: ( ( '[' ) )
+            // InternalMachineLearningLanguage.g:3831:1: ( '[' )
             {
-            // InternalMachineLearningLanguage.g:3806:1: ( '[' )
-            // InternalMachineLearningLanguage.g:3807:2: '['
+            // InternalMachineLearningLanguage.g:3831:1: ( '[' )
+            // InternalMachineLearningLanguage.g:3832:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getLeftSquareBracketKeyword_0()); 
@@ -13222,14 +13270,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__1"
-    // InternalMachineLearningLanguage.g:3816:1: rule__StringLiterRangeRule__Group__1 : rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:3841:1: rule__StringLiterRangeRule__Group__1 : rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2 ;
     public final void rule__StringLiterRangeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3820:1: ( rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2 )
-            // InternalMachineLearningLanguage.g:3821:2: rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2
+            // InternalMachineLearningLanguage.g:3845:1: ( rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2 )
+            // InternalMachineLearningLanguage.g:3846:2: rule__StringLiterRangeRule__Group__1__Impl rule__StringLiterRangeRule__Group__2
             {
             pushFollow(FOLLOW_36);
             rule__StringLiterRangeRule__Group__1__Impl();
@@ -13260,23 +13308,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:3828:1: rule__StringLiterRangeRule__Group__1__Impl : ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3853:1: rule__StringLiterRangeRule__Group__1__Impl : ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) ) ;
     public final void rule__StringLiterRangeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3832:1: ( ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:3833:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3857:1: ( ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:3858:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3833:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:3834:2: ( rule__StringLiterRangeRule__ElementsAssignment_1 )
+            // InternalMachineLearningLanguage.g:3858:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:3859:2: ( rule__StringLiterRangeRule__ElementsAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getElementsAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:3835:2: ( rule__StringLiterRangeRule__ElementsAssignment_1 )
-            // InternalMachineLearningLanguage.g:3835:3: rule__StringLiterRangeRule__ElementsAssignment_1
+            // InternalMachineLearningLanguage.g:3860:2: ( rule__StringLiterRangeRule__ElementsAssignment_1 )
+            // InternalMachineLearningLanguage.g:3860:3: rule__StringLiterRangeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__StringLiterRangeRule__ElementsAssignment_1();
@@ -13311,14 +13359,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__2"
-    // InternalMachineLearningLanguage.g:3843:1: rule__StringLiterRangeRule__Group__2 : rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:3868:1: rule__StringLiterRangeRule__Group__2 : rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3 ;
     public final void rule__StringLiterRangeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3847:1: ( rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3 )
-            // InternalMachineLearningLanguage.g:3848:2: rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3
+            // InternalMachineLearningLanguage.g:3872:1: ( rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3 )
+            // InternalMachineLearningLanguage.g:3873:2: rule__StringLiterRangeRule__Group__2__Impl rule__StringLiterRangeRule__Group__3
             {
             pushFollow(FOLLOW_36);
             rule__StringLiterRangeRule__Group__2__Impl();
@@ -13349,22 +13397,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:3855:1: rule__StringLiterRangeRule__Group__2__Impl : ( ( rule__StringLiterRangeRule__Group_2__0 )* ) ;
+    // InternalMachineLearningLanguage.g:3880:1: rule__StringLiterRangeRule__Group__2__Impl : ( ( rule__StringLiterRangeRule__Group_2__0 )* ) ;
     public final void rule__StringLiterRangeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3859:1: ( ( ( rule__StringLiterRangeRule__Group_2__0 )* ) )
-            // InternalMachineLearningLanguage.g:3860:1: ( ( rule__StringLiterRangeRule__Group_2__0 )* )
+            // InternalMachineLearningLanguage.g:3884:1: ( ( ( rule__StringLiterRangeRule__Group_2__0 )* ) )
+            // InternalMachineLearningLanguage.g:3885:1: ( ( rule__StringLiterRangeRule__Group_2__0 )* )
             {
-            // InternalMachineLearningLanguage.g:3860:1: ( ( rule__StringLiterRangeRule__Group_2__0 )* )
-            // InternalMachineLearningLanguage.g:3861:2: ( rule__StringLiterRangeRule__Group_2__0 )*
+            // InternalMachineLearningLanguage.g:3885:1: ( ( rule__StringLiterRangeRule__Group_2__0 )* )
+            // InternalMachineLearningLanguage.g:3886:2: ( rule__StringLiterRangeRule__Group_2__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getGroup_2()); 
             }
-            // InternalMachineLearningLanguage.g:3862:2: ( rule__StringLiterRangeRule__Group_2__0 )*
+            // InternalMachineLearningLanguage.g:3887:2: ( rule__StringLiterRangeRule__Group_2__0 )*
             loop28:
             do {
                 int alt28=2;
@@ -13377,7 +13425,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt28) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3862:3: rule__StringLiterRangeRule__Group_2__0
+            	    // InternalMachineLearningLanguage.g:3887:3: rule__StringLiterRangeRule__Group_2__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__StringLiterRangeRule__Group_2__0();
@@ -13418,14 +13466,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__3"
-    // InternalMachineLearningLanguage.g:3870:1: rule__StringLiterRangeRule__Group__3 : rule__StringLiterRangeRule__Group__3__Impl ;
+    // InternalMachineLearningLanguage.g:3895:1: rule__StringLiterRangeRule__Group__3 : rule__StringLiterRangeRule__Group__3__Impl ;
     public final void rule__StringLiterRangeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3874:1: ( rule__StringLiterRangeRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:3875:2: rule__StringLiterRangeRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:3899:1: ( rule__StringLiterRangeRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:3900:2: rule__StringLiterRangeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringLiterRangeRule__Group__3__Impl();
@@ -13451,17 +13499,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:3881:1: rule__StringLiterRangeRule__Group__3__Impl : ( ']' ) ;
+    // InternalMachineLearningLanguage.g:3906:1: rule__StringLiterRangeRule__Group__3__Impl : ( ']' ) ;
     public final void rule__StringLiterRangeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3885:1: ( ( ']' ) )
-            // InternalMachineLearningLanguage.g:3886:1: ( ']' )
+            // InternalMachineLearningLanguage.g:3910:1: ( ( ']' ) )
+            // InternalMachineLearningLanguage.g:3911:1: ( ']' )
             {
-            // InternalMachineLearningLanguage.g:3886:1: ( ']' )
-            // InternalMachineLearningLanguage.g:3887:2: ']'
+            // InternalMachineLearningLanguage.g:3911:1: ( ']' )
+            // InternalMachineLearningLanguage.g:3912:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getRightSquareBracketKeyword_3()); 
@@ -13492,14 +13540,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group_2__0"
-    // InternalMachineLearningLanguage.g:3897:1: rule__StringLiterRangeRule__Group_2__0 : rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1 ;
+    // InternalMachineLearningLanguage.g:3922:1: rule__StringLiterRangeRule__Group_2__0 : rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1 ;
     public final void rule__StringLiterRangeRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3901:1: ( rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1 )
-            // InternalMachineLearningLanguage.g:3902:2: rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1
+            // InternalMachineLearningLanguage.g:3926:1: ( rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1 )
+            // InternalMachineLearningLanguage.g:3927:2: rule__StringLiterRangeRule__Group_2__0__Impl rule__StringLiterRangeRule__Group_2__1
             {
             pushFollow(FOLLOW_7);
             rule__StringLiterRangeRule__Group_2__0__Impl();
@@ -13530,17 +13578,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group_2__0__Impl"
-    // InternalMachineLearningLanguage.g:3909:1: rule__StringLiterRangeRule__Group_2__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:3934:1: rule__StringLiterRangeRule__Group_2__0__Impl : ( ',' ) ;
     public final void rule__StringLiterRangeRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3913:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:3914:1: ( ',' )
+            // InternalMachineLearningLanguage.g:3938:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:3939:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:3914:1: ( ',' )
-            // InternalMachineLearningLanguage.g:3915:2: ','
+            // InternalMachineLearningLanguage.g:3939:1: ( ',' )
+            // InternalMachineLearningLanguage.g:3940:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getCommaKeyword_2_0()); 
@@ -13571,14 +13619,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group_2__1"
-    // InternalMachineLearningLanguage.g:3924:1: rule__StringLiterRangeRule__Group_2__1 : rule__StringLiterRangeRule__Group_2__1__Impl ;
+    // InternalMachineLearningLanguage.g:3949:1: rule__StringLiterRangeRule__Group_2__1 : rule__StringLiterRangeRule__Group_2__1__Impl ;
     public final void rule__StringLiterRangeRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3928:1: ( rule__StringLiterRangeRule__Group_2__1__Impl )
-            // InternalMachineLearningLanguage.g:3929:2: rule__StringLiterRangeRule__Group_2__1__Impl
+            // InternalMachineLearningLanguage.g:3953:1: ( rule__StringLiterRangeRule__Group_2__1__Impl )
+            // InternalMachineLearningLanguage.g:3954:2: rule__StringLiterRangeRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringLiterRangeRule__Group_2__1__Impl();
@@ -13604,23 +13652,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__Group_2__1__Impl"
-    // InternalMachineLearningLanguage.g:3935:1: rule__StringLiterRangeRule__Group_2__1__Impl : ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) ) ;
+    // InternalMachineLearningLanguage.g:3960:1: rule__StringLiterRangeRule__Group_2__1__Impl : ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) ) ;
     public final void rule__StringLiterRangeRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3939:1: ( ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) ) )
-            // InternalMachineLearningLanguage.g:3940:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) )
+            // InternalMachineLearningLanguage.g:3964:1: ( ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) ) )
+            // InternalMachineLearningLanguage.g:3965:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) )
             {
-            // InternalMachineLearningLanguage.g:3940:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) )
-            // InternalMachineLearningLanguage.g:3941:2: ( rule__StringLiterRangeRule__ElementsAssignment_2_1 )
+            // InternalMachineLearningLanguage.g:3965:1: ( ( rule__StringLiterRangeRule__ElementsAssignment_2_1 ) )
+            // InternalMachineLearningLanguage.g:3966:2: ( rule__StringLiterRangeRule__ElementsAssignment_2_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getElementsAssignment_2_1()); 
             }
-            // InternalMachineLearningLanguage.g:3942:2: ( rule__StringLiterRangeRule__ElementsAssignment_2_1 )
-            // InternalMachineLearningLanguage.g:3942:3: rule__StringLiterRangeRule__ElementsAssignment_2_1
+            // InternalMachineLearningLanguage.g:3967:2: ( rule__StringLiterRangeRule__ElementsAssignment_2_1 )
+            // InternalMachineLearningLanguage.g:3967:3: rule__StringLiterRangeRule__ElementsAssignment_2_1
             {
             pushFollow(FOLLOW_2);
             rule__StringLiterRangeRule__ElementsAssignment_2_1();
@@ -13655,14 +13703,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallStatementRule__Group__0"
-    // InternalMachineLearningLanguage.g:3951:1: rule__CallStatementRule__Group__0 : rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:3976:1: rule__CallStatementRule__Group__0 : rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1 ;
     public final void rule__CallStatementRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3955:1: ( rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1 )
-            // InternalMachineLearningLanguage.g:3956:2: rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1
+            // InternalMachineLearningLanguage.g:3980:1: ( rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1 )
+            // InternalMachineLearningLanguage.g:3981:2: rule__CallStatementRule__Group__0__Impl rule__CallStatementRule__Group__1
             {
             pushFollow(FOLLOW_8);
             rule__CallStatementRule__Group__0__Impl();
@@ -13693,23 +13741,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallStatementRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:3963:1: rule__CallStatementRule__Group__0__Impl : ( ( rule__CallStatementRule__CallAssignment_0 ) ) ;
+    // InternalMachineLearningLanguage.g:3988:1: rule__CallStatementRule__Group__0__Impl : ( ( rule__CallStatementRule__CallAssignment_0 ) ) ;
     public final void rule__CallStatementRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3967:1: ( ( ( rule__CallStatementRule__CallAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:3968:1: ( ( rule__CallStatementRule__CallAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:3992:1: ( ( ( rule__CallStatementRule__CallAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:3993:1: ( ( rule__CallStatementRule__CallAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:3968:1: ( ( rule__CallStatementRule__CallAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:3969:2: ( rule__CallStatementRule__CallAssignment_0 )
+            // InternalMachineLearningLanguage.g:3993:1: ( ( rule__CallStatementRule__CallAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:3994:2: ( rule__CallStatementRule__CallAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallStatementRuleAccess().getCallAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:3970:2: ( rule__CallStatementRule__CallAssignment_0 )
-            // InternalMachineLearningLanguage.g:3970:3: rule__CallStatementRule__CallAssignment_0
+            // InternalMachineLearningLanguage.g:3995:2: ( rule__CallStatementRule__CallAssignment_0 )
+            // InternalMachineLearningLanguage.g:3995:3: rule__CallStatementRule__CallAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__CallStatementRule__CallAssignment_0();
@@ -13744,14 +13792,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallStatementRule__Group__1"
-    // InternalMachineLearningLanguage.g:3978:1: rule__CallStatementRule__Group__1 : rule__CallStatementRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:4003:1: rule__CallStatementRule__Group__1 : rule__CallStatementRule__Group__1__Impl ;
     public final void rule__CallStatementRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3982:1: ( rule__CallStatementRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:3983:2: rule__CallStatementRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4007:1: ( rule__CallStatementRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4008:2: rule__CallStatementRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__CallStatementRule__Group__1__Impl();
@@ -13777,17 +13825,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallStatementRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:3989:1: rule__CallStatementRule__Group__1__Impl : ( ';' ) ;
+    // InternalMachineLearningLanguage.g:4014:1: rule__CallStatementRule__Group__1__Impl : ( ';' ) ;
     public final void rule__CallStatementRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:3993:1: ( ( ';' ) )
-            // InternalMachineLearningLanguage.g:3994:1: ( ';' )
+            // InternalMachineLearningLanguage.g:4018:1: ( ( ';' ) )
+            // InternalMachineLearningLanguage.g:4019:1: ( ';' )
             {
-            // InternalMachineLearningLanguage.g:3994:1: ( ';' )
-            // InternalMachineLearningLanguage.g:3995:2: ';'
+            // InternalMachineLearningLanguage.g:4019:1: ( ';' )
+            // InternalMachineLearningLanguage.g:4020:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallStatementRuleAccess().getSemicolonKeyword_1()); 
@@ -13818,14 +13866,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group__0"
-    // InternalMachineLearningLanguage.g:4005:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:4030:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
     public final void rule__InstanceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4009:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4010:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
+            // InternalMachineLearningLanguage.g:4034:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4035:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
             {
             pushFollow(FOLLOW_37);
             rule__InstanceRule__Group__0__Impl();
@@ -13856,23 +13904,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4017:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
+    // InternalMachineLearningLanguage.g:4042:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
     public final void rule__InstanceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4021:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:4022:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4046:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4047:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4022:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:4023:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalMachineLearningLanguage.g:4047:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4048:2: ( rule__InstanceRule__DefinitionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getDefinitionAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:4024:2: ( rule__InstanceRule__DefinitionAssignment_0 )
-            // InternalMachineLearningLanguage.g:4024:3: rule__InstanceRule__DefinitionAssignment_0
+            // InternalMachineLearningLanguage.g:4049:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalMachineLearningLanguage.g:4049:3: rule__InstanceRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__DefinitionAssignment_0();
@@ -13907,14 +13955,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group__1"
-    // InternalMachineLearningLanguage.g:4032:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:4057:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
     public final void rule__InstanceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4036:1: ( rule__InstanceRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:4037:2: rule__InstanceRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4061:1: ( rule__InstanceRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4062:2: rule__InstanceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group__1__Impl();
@@ -13940,22 +13988,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4043:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
+    // InternalMachineLearningLanguage.g:4068:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
     public final void rule__InstanceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4047:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
-            // InternalMachineLearningLanguage.g:4048:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalMachineLearningLanguage.g:4072:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
+            // InternalMachineLearningLanguage.g:4073:1: ( ( rule__InstanceRule__Group_1__0 )? )
             {
-            // InternalMachineLearningLanguage.g:4048:1: ( ( rule__InstanceRule__Group_1__0 )? )
-            // InternalMachineLearningLanguage.g:4049:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalMachineLearningLanguage.g:4073:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalMachineLearningLanguage.g:4074:2: ( rule__InstanceRule__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:4050:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalMachineLearningLanguage.g:4075:2: ( rule__InstanceRule__Group_1__0 )?
             int alt29=2;
             int LA29_0 = input.LA(1);
 
@@ -13964,7 +14012,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
             switch (alt29) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:4050:3: rule__InstanceRule__Group_1__0
+                    // InternalMachineLearningLanguage.g:4075:3: rule__InstanceRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__InstanceRule__Group_1__0();
@@ -14002,14 +14050,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:4059:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
+    // InternalMachineLearningLanguage.g:4084:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
     public final void rule__InstanceRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4063:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:4064:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
+            // InternalMachineLearningLanguage.g:4088:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:4089:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
             {
             pushFollow(FOLLOW_38);
             rule__InstanceRule__Group_1__0__Impl();
@@ -14040,17 +14088,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4071:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
+    // InternalMachineLearningLanguage.g:4096:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
     public final void rule__InstanceRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4075:1: ( ( '{' ) )
-            // InternalMachineLearningLanguage.g:4076:1: ( '{' )
+            // InternalMachineLearningLanguage.g:4100:1: ( ( '{' ) )
+            // InternalMachineLearningLanguage.g:4101:1: ( '{' )
             {
-            // InternalMachineLearningLanguage.g:4076:1: ( '{' )
-            // InternalMachineLearningLanguage.g:4077:2: '{'
+            // InternalMachineLearningLanguage.g:4101:1: ( '{' )
+            // InternalMachineLearningLanguage.g:4102:2: '{'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getLeftCurlyBracketKeyword_1_0()); 
@@ -14081,14 +14129,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:4086:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
+    // InternalMachineLearningLanguage.g:4111:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
     public final void rule__InstanceRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4090:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
-            // InternalMachineLearningLanguage.g:4091:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
+            // InternalMachineLearningLanguage.g:4115:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
+            // InternalMachineLearningLanguage.g:4116:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
             {
             pushFollow(FOLLOW_38);
             rule__InstanceRule__Group_1__1__Impl();
@@ -14119,22 +14167,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4098:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
+    // InternalMachineLearningLanguage.g:4123:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
     public final void rule__InstanceRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4102:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
-            // InternalMachineLearningLanguage.g:4103:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalMachineLearningLanguage.g:4127:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
+            // InternalMachineLearningLanguage.g:4128:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
             {
-            // InternalMachineLearningLanguage.g:4103:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
-            // InternalMachineLearningLanguage.g:4104:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalMachineLearningLanguage.g:4128:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalMachineLearningLanguage.g:4129:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getAttributesAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:4105:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalMachineLearningLanguage.g:4130:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             loop30:
             do {
                 int alt30=2;
@@ -14147,7 +14195,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt30) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:4105:3: rule__InstanceRule__AttributesAssignment_1_1
+            	    // InternalMachineLearningLanguage.g:4130:3: rule__InstanceRule__AttributesAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_22);
             	    rule__InstanceRule__AttributesAssignment_1_1();
@@ -14188,14 +14236,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2"
-    // InternalMachineLearningLanguage.g:4113:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
+    // InternalMachineLearningLanguage.g:4138:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
     public final void rule__InstanceRule__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4117:1: ( rule__InstanceRule__Group_1__2__Impl )
-            // InternalMachineLearningLanguage.g:4118:2: rule__InstanceRule__Group_1__2__Impl
+            // InternalMachineLearningLanguage.g:4142:1: ( rule__InstanceRule__Group_1__2__Impl )
+            // InternalMachineLearningLanguage.g:4143:2: rule__InstanceRule__Group_1__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group_1__2__Impl();
@@ -14221,17 +14269,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2__Impl"
-    // InternalMachineLearningLanguage.g:4124:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
+    // InternalMachineLearningLanguage.g:4149:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
     public final void rule__InstanceRule__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4128:1: ( ( '}' ) )
-            // InternalMachineLearningLanguage.g:4129:1: ( '}' )
+            // InternalMachineLearningLanguage.g:4153:1: ( ( '}' ) )
+            // InternalMachineLearningLanguage.g:4154:1: ( '}' )
             {
-            // InternalMachineLearningLanguage.g:4129:1: ( '}' )
-            // InternalMachineLearningLanguage.g:4130:2: '}'
+            // InternalMachineLearningLanguage.g:4154:1: ( '}' )
+            // InternalMachineLearningLanguage.g:4155:2: '}'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getRightCurlyBracketKeyword_1_2()); 
@@ -14262,14 +14310,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__0"
-    // InternalMachineLearningLanguage.g:4140:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:4165:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
     public final void rule__AttributeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4144:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4145:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
+            // InternalMachineLearningLanguage.g:4169:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4170:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
             {
             pushFollow(FOLLOW_39);
             rule__AttributeRule__Group__0__Impl();
@@ -14300,23 +14348,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4152:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
+    // InternalMachineLearningLanguage.g:4177:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
     public final void rule__AttributeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4156:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:4157:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4181:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4182:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4157:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:4158:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalMachineLearningLanguage.g:4182:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4183:2: ( rule__AttributeRule__DefinitionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getDefinitionAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:4159:2: ( rule__AttributeRule__DefinitionAssignment_0 )
-            // InternalMachineLearningLanguage.g:4159:3: rule__AttributeRule__DefinitionAssignment_0
+            // InternalMachineLearningLanguage.g:4184:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalMachineLearningLanguage.g:4184:3: rule__AttributeRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__DefinitionAssignment_0();
@@ -14351,14 +14399,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__1"
-    // InternalMachineLearningLanguage.g:4167:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:4192:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
     public final void rule__AttributeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4171:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
-            // InternalMachineLearningLanguage.g:4172:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
+            // InternalMachineLearningLanguage.g:4196:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
+            // InternalMachineLearningLanguage.g:4197:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
             {
             pushFollow(FOLLOW_40);
             rule__AttributeRule__Group__1__Impl();
@@ -14389,17 +14437,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4179:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
+    // InternalMachineLearningLanguage.g:4204:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
     public final void rule__AttributeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4183:1: ( ( ':=' ) )
-            // InternalMachineLearningLanguage.g:4184:1: ( ':=' )
+            // InternalMachineLearningLanguage.g:4208:1: ( ( ':=' ) )
+            // InternalMachineLearningLanguage.g:4209:1: ( ':=' )
             {
-            // InternalMachineLearningLanguage.g:4184:1: ( ':=' )
-            // InternalMachineLearningLanguage.g:4185:2: ':='
+            // InternalMachineLearningLanguage.g:4209:1: ( ':=' )
+            // InternalMachineLearningLanguage.g:4210:2: ':='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getColonEqualsSignKeyword_1()); 
@@ -14430,14 +14478,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__2"
-    // InternalMachineLearningLanguage.g:4194:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:4219:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
     public final void rule__AttributeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4198:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
-            // InternalMachineLearningLanguage.g:4199:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
+            // InternalMachineLearningLanguage.g:4223:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
+            // InternalMachineLearningLanguage.g:4224:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
             {
             pushFollow(FOLLOW_8);
             rule__AttributeRule__Group__2__Impl();
@@ -14468,23 +14516,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:4206:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
+    // InternalMachineLearningLanguage.g:4231:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
     public final void rule__AttributeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4210:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
-            // InternalMachineLearningLanguage.g:4211:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:4235:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
+            // InternalMachineLearningLanguage.g:4236:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
             {
-            // InternalMachineLearningLanguage.g:4211:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
-            // InternalMachineLearningLanguage.g:4212:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalMachineLearningLanguage.g:4236:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:4237:2: ( rule__AttributeRule__ValueAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getValueAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:4213:2: ( rule__AttributeRule__ValueAssignment_2 )
-            // InternalMachineLearningLanguage.g:4213:3: rule__AttributeRule__ValueAssignment_2
+            // InternalMachineLearningLanguage.g:4238:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalMachineLearningLanguage.g:4238:3: rule__AttributeRule__ValueAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__ValueAssignment_2();
@@ -14519,14 +14567,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__3"
-    // InternalMachineLearningLanguage.g:4221:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
+    // InternalMachineLearningLanguage.g:4246:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
     public final void rule__AttributeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4225:1: ( rule__AttributeRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:4226:2: rule__AttributeRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:4250:1: ( rule__AttributeRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:4251:2: rule__AttributeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__Group__3__Impl();
@@ -14552,17 +14600,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:4232:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
+    // InternalMachineLearningLanguage.g:4257:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
     public final void rule__AttributeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4236:1: ( ( ';' ) )
-            // InternalMachineLearningLanguage.g:4237:1: ( ';' )
+            // InternalMachineLearningLanguage.g:4261:1: ( ( ';' ) )
+            // InternalMachineLearningLanguage.g:4262:1: ( ';' )
             {
-            // InternalMachineLearningLanguage.g:4237:1: ( ';' )
-            // InternalMachineLearningLanguage.g:4238:2: ';'
+            // InternalMachineLearningLanguage.g:4262:1: ( ';' )
+            // InternalMachineLearningLanguage.g:4263:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getSemicolonKeyword_3()); 
@@ -14593,14 +14641,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__0"
-    // InternalMachineLearningLanguage.g:4248:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:4273:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
     public final void rule__ArrayRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4252:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4253:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
+            // InternalMachineLearningLanguage.g:4277:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4278:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
             {
             pushFollow(FOLLOW_31);
             rule__ArrayRule__Group__0__Impl();
@@ -14631,23 +14679,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4260:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:4285:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
     public final void rule__ArrayRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4264:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:4265:1: ( () )
+            // InternalMachineLearningLanguage.g:4289:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:4290:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:4265:1: ( () )
-            // InternalMachineLearningLanguage.g:4266:2: ()
+            // InternalMachineLearningLanguage.g:4290:1: ( () )
+            // InternalMachineLearningLanguage.g:4291:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getArrayAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:4267:2: ()
-            // InternalMachineLearningLanguage.g:4267:3: 
+            // InternalMachineLearningLanguage.g:4292:2: ()
+            // InternalMachineLearningLanguage.g:4292:3: 
             {
             }
 
@@ -14672,14 +14720,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__1"
-    // InternalMachineLearningLanguage.g:4275:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:4300:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
     public final void rule__ArrayRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4279:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
-            // InternalMachineLearningLanguage.g:4280:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
+            // InternalMachineLearningLanguage.g:4304:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
+            // InternalMachineLearningLanguage.g:4305:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
             {
             pushFollow(FOLLOW_41);
             rule__ArrayRule__Group__1__Impl();
@@ -14710,17 +14758,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4287:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
+    // InternalMachineLearningLanguage.g:4312:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
     public final void rule__ArrayRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4291:1: ( ( '[' ) )
-            // InternalMachineLearningLanguage.g:4292:1: ( '[' )
+            // InternalMachineLearningLanguage.g:4316:1: ( ( '[' ) )
+            // InternalMachineLearningLanguage.g:4317:1: ( '[' )
             {
-            // InternalMachineLearningLanguage.g:4292:1: ( '[' )
-            // InternalMachineLearningLanguage.g:4293:2: '['
+            // InternalMachineLearningLanguage.g:4317:1: ( '[' )
+            // InternalMachineLearningLanguage.g:4318:2: '['
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getLeftSquareBracketKeyword_1()); 
@@ -14751,14 +14799,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__2"
-    // InternalMachineLearningLanguage.g:4302:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:4327:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
     public final void rule__ArrayRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4306:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
-            // InternalMachineLearningLanguage.g:4307:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
+            // InternalMachineLearningLanguage.g:4331:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
+            // InternalMachineLearningLanguage.g:4332:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
             {
             pushFollow(FOLLOW_41);
             rule__ArrayRule__Group__2__Impl();
@@ -14789,31 +14837,31 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:4314:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
+    // InternalMachineLearningLanguage.g:4339:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
     public final void rule__ArrayRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4318:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
-            // InternalMachineLearningLanguage.g:4319:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalMachineLearningLanguage.g:4343:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
+            // InternalMachineLearningLanguage.g:4344:1: ( ( rule__ArrayRule__Group_2__0 )? )
             {
-            // InternalMachineLearningLanguage.g:4319:1: ( ( rule__ArrayRule__Group_2__0 )? )
-            // InternalMachineLearningLanguage.g:4320:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalMachineLearningLanguage.g:4344:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalMachineLearningLanguage.g:4345:2: ( rule__ArrayRule__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getGroup_2()); 
             }
-            // InternalMachineLearningLanguage.g:4321:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalMachineLearningLanguage.g:4346:2: ( rule__ArrayRule__Group_2__0 )?
             int alt31=2;
             int LA31_0 = input.LA(1);
 
-            if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_DOUBLE)||LA31_0==15||LA31_0==68||LA31_0==73||LA31_0==94) ) {
+            if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_DOUBLE)||LA31_0==15||LA31_0==68||LA31_0==73||LA31_0==95) ) {
                 alt31=1;
             }
             switch (alt31) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:4321:3: rule__ArrayRule__Group_2__0
+                    // InternalMachineLearningLanguage.g:4346:3: rule__ArrayRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ArrayRule__Group_2__0();
@@ -14851,14 +14899,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__3"
-    // InternalMachineLearningLanguage.g:4329:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
+    // InternalMachineLearningLanguage.g:4354:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
     public final void rule__ArrayRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4333:1: ( rule__ArrayRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:4334:2: rule__ArrayRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:4358:1: ( rule__ArrayRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:4359:2: rule__ArrayRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group__3__Impl();
@@ -14884,17 +14932,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:4340:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
+    // InternalMachineLearningLanguage.g:4365:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
     public final void rule__ArrayRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4344:1: ( ( ']' ) )
-            // InternalMachineLearningLanguage.g:4345:1: ( ']' )
+            // InternalMachineLearningLanguage.g:4369:1: ( ( ']' ) )
+            // InternalMachineLearningLanguage.g:4370:1: ( ']' )
             {
-            // InternalMachineLearningLanguage.g:4345:1: ( ']' )
-            // InternalMachineLearningLanguage.g:4346:2: ']'
+            // InternalMachineLearningLanguage.g:4370:1: ( ']' )
+            // InternalMachineLearningLanguage.g:4371:2: ']'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getRightSquareBracketKeyword_3()); 
@@ -14925,14 +14973,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0"
-    // InternalMachineLearningLanguage.g:4356:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
+    // InternalMachineLearningLanguage.g:4381:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
     public final void rule__ArrayRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4360:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
-            // InternalMachineLearningLanguage.g:4361:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
+            // InternalMachineLearningLanguage.g:4385:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
+            // InternalMachineLearningLanguage.g:4386:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
             {
             pushFollow(FOLLOW_42);
             rule__ArrayRule__Group_2__0__Impl();
@@ -14963,23 +15011,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0__Impl"
-    // InternalMachineLearningLanguage.g:4368:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
+    // InternalMachineLearningLanguage.g:4393:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
     public final void rule__ArrayRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4372:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
-            // InternalMachineLearningLanguage.g:4373:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalMachineLearningLanguage.g:4397:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
+            // InternalMachineLearningLanguage.g:4398:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4373:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
-            // InternalMachineLearningLanguage.g:4374:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalMachineLearningLanguage.g:4398:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalMachineLearningLanguage.g:4399:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_0()); 
             }
-            // InternalMachineLearningLanguage.g:4375:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
-            // InternalMachineLearningLanguage.g:4375:3: rule__ArrayRule__ValuesAssignment_2_0
+            // InternalMachineLearningLanguage.g:4400:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalMachineLearningLanguage.g:4400:3: rule__ArrayRule__ValuesAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_0();
@@ -15014,14 +15062,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1"
-    // InternalMachineLearningLanguage.g:4383:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
+    // InternalMachineLearningLanguage.g:4408:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
     public final void rule__ArrayRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4387:1: ( rule__ArrayRule__Group_2__1__Impl )
-            // InternalMachineLearningLanguage.g:4388:2: rule__ArrayRule__Group_2__1__Impl
+            // InternalMachineLearningLanguage.g:4412:1: ( rule__ArrayRule__Group_2__1__Impl )
+            // InternalMachineLearningLanguage.g:4413:2: rule__ArrayRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2__1__Impl();
@@ -15047,22 +15095,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1__Impl"
-    // InternalMachineLearningLanguage.g:4394:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
+    // InternalMachineLearningLanguage.g:4419:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
     public final void rule__ArrayRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4398:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:4399:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalMachineLearningLanguage.g:4423:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:4424:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:4399:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
-            // InternalMachineLearningLanguage.g:4400:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalMachineLearningLanguage.g:4424:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalMachineLearningLanguage.g:4425:2: ( rule__ArrayRule__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getGroup_2_1()); 
             }
-            // InternalMachineLearningLanguage.g:4401:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalMachineLearningLanguage.g:4426:2: ( rule__ArrayRule__Group_2_1__0 )*
             loop32:
             do {
                 int alt32=2;
@@ -15075,7 +15123,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt32) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:4401:3: rule__ArrayRule__Group_2_1__0
+            	    // InternalMachineLearningLanguage.g:4426:3: rule__ArrayRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_12);
             	    rule__ArrayRule__Group_2_1__0();
@@ -15116,14 +15164,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0"
-    // InternalMachineLearningLanguage.g:4410:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
+    // InternalMachineLearningLanguage.g:4435:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
     public final void rule__ArrayRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4414:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
-            // InternalMachineLearningLanguage.g:4415:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
+            // InternalMachineLearningLanguage.g:4439:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
+            // InternalMachineLearningLanguage.g:4440:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
             {
             pushFollow(FOLLOW_40);
             rule__ArrayRule__Group_2_1__0__Impl();
@@ -15154,17 +15202,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4422:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalMachineLearningLanguage.g:4447:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__ArrayRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4426:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:4427:1: ( ',' )
+            // InternalMachineLearningLanguage.g:4451:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:4452:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:4427:1: ( ',' )
-            // InternalMachineLearningLanguage.g:4428:2: ','
+            // InternalMachineLearningLanguage.g:4452:1: ( ',' )
+            // InternalMachineLearningLanguage.g:4453:2: ','
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getCommaKeyword_2_1_0()); 
@@ -15195,14 +15243,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1"
-    // InternalMachineLearningLanguage.g:4437:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
+    // InternalMachineLearningLanguage.g:4462:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
     public final void rule__ArrayRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4441:1: ( rule__ArrayRule__Group_2_1__1__Impl )
-            // InternalMachineLearningLanguage.g:4442:2: rule__ArrayRule__Group_2_1__1__Impl
+            // InternalMachineLearningLanguage.g:4466:1: ( rule__ArrayRule__Group_2_1__1__Impl )
+            // InternalMachineLearningLanguage.g:4467:2: rule__ArrayRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2_1__1__Impl();
@@ -15228,23 +15276,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4448:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
+    // InternalMachineLearningLanguage.g:4473:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
     public final void rule__ArrayRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4452:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:4453:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalMachineLearningLanguage.g:4477:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:4478:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:4453:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
-            // InternalMachineLearningLanguage.g:4454:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalMachineLearningLanguage.g:4478:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalMachineLearningLanguage.g:4479:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:4455:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
-            // InternalMachineLearningLanguage.g:4455:3: rule__ArrayRule__ValuesAssignment_2_1_1
+            // InternalMachineLearningLanguage.g:4480:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalMachineLearningLanguage.g:4480:3: rule__ArrayRule__ValuesAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_1_1();
@@ -15279,14 +15327,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0"
-    // InternalMachineLearningLanguage.g:4464:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:4489:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
     public final void rule__DataReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4468:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4469:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
+            // InternalMachineLearningLanguage.g:4493:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4494:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__DataReferenceRule__Group__0__Impl();
@@ -15317,23 +15365,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4476:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:4501:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
     public final void rule__DataReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4480:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:4481:1: ( () )
+            // InternalMachineLearningLanguage.g:4505:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:4506:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:4481:1: ( () )
-            // InternalMachineLearningLanguage.g:4482:2: ()
+            // InternalMachineLearningLanguage.g:4506:1: ( () )
+            // InternalMachineLearningLanguage.g:4507:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDataReferenceAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:4483:2: ()
-            // InternalMachineLearningLanguage.g:4483:3: 
+            // InternalMachineLearningLanguage.g:4508:2: ()
+            // InternalMachineLearningLanguage.g:4508:3: 
             {
             }
 
@@ -15358,14 +15406,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1"
-    // InternalMachineLearningLanguage.g:4491:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:4516:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
     public final void rule__DataReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4495:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
-            // InternalMachineLearningLanguage.g:4496:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
+            // InternalMachineLearningLanguage.g:4520:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
+            // InternalMachineLearningLanguage.g:4521:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
             {
             pushFollow(FOLLOW_10);
             rule__DataReferenceRule__Group__1__Impl();
@@ -15396,17 +15444,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4503:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
+    // InternalMachineLearningLanguage.g:4528:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4507:1: ( ( 'data' ) )
-            // InternalMachineLearningLanguage.g:4508:1: ( 'data' )
+            // InternalMachineLearningLanguage.g:4532:1: ( ( 'data' ) )
+            // InternalMachineLearningLanguage.g:4533:1: ( 'data' )
             {
-            // InternalMachineLearningLanguage.g:4508:1: ( 'data' )
-            // InternalMachineLearningLanguage.g:4509:2: 'data'
+            // InternalMachineLearningLanguage.g:4533:1: ( 'data' )
+            // InternalMachineLearningLanguage.g:4534:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDataKeyword_1()); 
@@ -15437,14 +15485,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2"
-    // InternalMachineLearningLanguage.g:4518:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
+    // InternalMachineLearningLanguage.g:4543:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
     public final void rule__DataReferenceRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4522:1: ( rule__DataReferenceRule__Group__2__Impl )
-            // InternalMachineLearningLanguage.g:4523:2: rule__DataReferenceRule__Group__2__Impl
+            // InternalMachineLearningLanguage.g:4547:1: ( rule__DataReferenceRule__Group__2__Impl )
+            // InternalMachineLearningLanguage.g:4548:2: rule__DataReferenceRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__Group__2__Impl();
@@ -15470,23 +15518,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:4529:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
+    // InternalMachineLearningLanguage.g:4554:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
     public final void rule__DataReferenceRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4533:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
-            // InternalMachineLearningLanguage.g:4534:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:4558:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
+            // InternalMachineLearningLanguage.g:4559:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
             {
-            // InternalMachineLearningLanguage.g:4534:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
-            // InternalMachineLearningLanguage.g:4535:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalMachineLearningLanguage.g:4559:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:4560:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDefinitionAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:4536:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
-            // InternalMachineLearningLanguage.g:4536:3: rule__DataReferenceRule__DefinitionAssignment_2
+            // InternalMachineLearningLanguage.g:4561:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalMachineLearningLanguage.g:4561:3: rule__DataReferenceRule__DefinitionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__DefinitionAssignment_2();
@@ -15520,23 +15568,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__DataReferenceRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0"
-    // InternalMachineLearningLanguage.g:4545:1: rule__QualifiedNameRule__Group__0 : rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 ;
-    public final void rule__QualifiedNameRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:4570:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4549:1: ( rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4550:2: rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1
+            // InternalMachineLearningLanguage.g:4574:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4575:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_44);
-            rule__QualifiedNameRule__Group__0__Impl();
+            rule__OrExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1();
+            rule__OrExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15555,32 +15603,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0"
+    // $ANTLR end "rule__OrExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4557:1: rule__QualifiedNameRule__Group__0__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:4582:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4561:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:4562:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:4586:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4587:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4562:1: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:4563:2: ruleStringOrId
+            // InternalMachineLearningLanguage.g:4587:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4588:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
+               before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
+            // InternalMachineLearningLanguage.g:4589:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4589:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+            {
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
+               after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
 
             }
@@ -15600,21 +15654,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1"
-    // InternalMachineLearningLanguage.g:4572:1: rule__QualifiedNameRule__Group__1 : rule__QualifiedNameRule__Group__1__Impl ;
-    public final void rule__QualifiedNameRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:4597:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4576:1: ( rule__QualifiedNameRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:4577:2: rule__QualifiedNameRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4601:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4602:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1__Impl();
+            rule__OrExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15633,26 +15687,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1"
+    // $ANTLR end "rule__OrExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4583:1: rule__QualifiedNameRule__Group__1__Impl : ( ( rule__QualifiedNameRule__Group_1__0 )* ) ;
-    public final void rule__QualifiedNameRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:4608:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4587:1: ( ( ( rule__QualifiedNameRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:4588:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4612:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:4613:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:4588:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:4589:2: ( rule__QualifiedNameRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4613:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4614:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
+               before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:4590:2: ( rule__QualifiedNameRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4615:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop33:
             do {
                 int alt33=2;
@@ -15665,10 +15719,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt33) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:4590:3: rule__QualifiedNameRule__Group_1__0
+            	    // InternalMachineLearningLanguage.g:4615:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_45);
-            	    rule__QualifiedNameRule__Group_1__0();
+            	    rule__OrExpressionRule__Group_1__0();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -15682,7 +15736,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
+               after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -15702,26 +15756,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:4599:1: rule__QualifiedNameRule__Group_1__0 : rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 ;
-    public final void rule__QualifiedNameRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:4624:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4603:1: ( rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:4604:2: rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1
+            // InternalMachineLearningLanguage.g:4628:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:4629:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_10);
-            rule__QualifiedNameRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__OrExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1();
+            rule__OrExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15740,28 +15794,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4611:1: rule__QualifiedNameRule__Group_1__0__Impl : ( '.' ) ;
-    public final void rule__QualifiedNameRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:4636:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4615:1: ( ( '.' ) )
-            // InternalMachineLearningLanguage.g:4616:1: ( '.' )
+            // InternalMachineLearningLanguage.g:4640:1: ( ( 'OR' ) )
+            // InternalMachineLearningLanguage.g:4641:1: ( 'OR' )
             {
-            // InternalMachineLearningLanguage.g:4616:1: ( '.' )
-            // InternalMachineLearningLanguage.g:4617:2: '.'
+            // InternalMachineLearningLanguage.g:4641:1: ( 'OR' )
+            // InternalMachineLearningLanguage.g:4642:2: 'OR'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+               before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             }
             match(input,74,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+               after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             }
 
             }
@@ -15781,21 +15835,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0__Impl"
-
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:4626:1: rule__QualifiedNameRule__Group_1__1 : rule__QualifiedNameRule__Group_1__1__Impl ;
-    public final void rule__QualifiedNameRule__Group_1__1() throws RecognitionException {
+
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:4651:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4630:1: ( rule__QualifiedNameRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:4631:2: rule__QualifiedNameRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:4655:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:4656:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1__Impl();
+            rule__OrExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15814,32 +15868,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4637:1: rule__QualifiedNameRule__Group_1__1__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:4662:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4641:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:4642:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:4666:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:4667:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:4642:1: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:4643:2: ruleStringOrId
+            // InternalMachineLearningLanguage.g:4667:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4668:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
+               before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
+            // InternalMachineLearningLanguage.g:4669:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4669:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+            {
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
+               after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
 
             }
@@ -15859,26 +15919,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:4653:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
-    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:4678:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4657:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4658:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:4682:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4683:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_46);
-            rule__OrExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_47);
+            rule__XorExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1();
+            rule__XorExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15897,30 +15957,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0"
+    // $ANTLR end "rule__XorExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4665:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:4690:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4669:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:4670:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4694:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4695:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4670:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:4671:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4695:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4696:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:4672:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalMachineLearningLanguage.g:4672:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+            // InternalMachineLearningLanguage.g:4697:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4697:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_0();
+            rule__XorExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15928,7 +15988,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
 
             }
@@ -15948,21 +16008,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:4680:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
-    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:4705:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4684:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:4685:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4709:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4710:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1__Impl();
+            rule__XorExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -15981,26 +16041,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1"
+    // $ANTLR end "rule__XorExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4691:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
-    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:4716:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4695:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:4696:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4720:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:4721:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:4696:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:4697:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4721:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4722:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+               before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:4698:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4723:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop34:
             do {
                 int alt34=2;
@@ -16013,10 +16073,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt34) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:4698:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalMachineLearningLanguage.g:4723:3: rule__XorExpressionRule__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_47);
-            	    rule__OrExpressionRule__Group_1__0();
+            	    pushFollow(FOLLOW_48);
+            	    rule__XorExpressionRule__Group_1__0();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -16030,7 +16090,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+               after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -16050,26 +16110,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:4707:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
-    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:4732:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4711:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:4712:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:4736:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:4737:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_48);
-            rule__OrExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__XorExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1();
+            rule__XorExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16088,28 +16148,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4719:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
-    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:4744:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4723:1: ( ( 'OR' ) )
-            // InternalMachineLearningLanguage.g:4724:1: ( 'OR' )
+            // InternalMachineLearningLanguage.g:4748:1: ( ( 'XOR' ) )
+            // InternalMachineLearningLanguage.g:4749:1: ( 'XOR' )
             {
-            // InternalMachineLearningLanguage.g:4724:1: ( 'OR' )
-            // InternalMachineLearningLanguage.g:4725:2: 'OR'
+            // InternalMachineLearningLanguage.g:4749:1: ( 'XOR' )
+            // InternalMachineLearningLanguage.g:4750:2: 'XOR'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+               before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             }
             match(input,75,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+               after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             }
 
             }
@@ -16129,21 +16189,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:4734:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
-    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:4759:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4738:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:4739:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:4763:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:4764:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1__Impl();
+            rule__XorExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16162,30 +16222,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4745:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:4770:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4749:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:4750:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4774:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:4775:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:4750:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:4751:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4775:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4776:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:4752:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:4752:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+            // InternalMachineLearningLanguage.g:4777:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4777:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
+            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16193,7 +16253,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
 
             }
@@ -16213,26 +16273,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:4761:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
-    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:4786:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4765:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4766:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:4790:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4791:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_49);
-            rule__XorExpressionRule__Group__0__Impl();
+            rule__AndExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1();
+            rule__AndExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16251,30 +16311,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0"
+    // $ANTLR end "rule__AndExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4773:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:4798:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4777:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:4778:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4802:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4803:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4778:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:4779:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4803:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4804:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:4780:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalMachineLearningLanguage.g:4780:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+            // InternalMachineLearningLanguage.g:4805:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4805:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_0();
+            rule__AndExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16282,7 +16342,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
             }
 
             }
@@ -16302,21 +16362,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:4788:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
-    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:4813:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4792:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:4793:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4817:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4818:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1__Impl();
+            rule__AndExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16335,26 +16395,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1"
+    // $ANTLR end "rule__AndExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4799:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
-    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:4824:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4803:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:4804:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4828:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:4829:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:4804:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:4805:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4829:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4830:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+               before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:4806:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4831:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop35:
             do {
                 int alt35=2;
@@ -16367,10 +16427,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
                 switch (alt35) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:4806:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalMachineLearningLanguage.g:4831:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_50);
-            	    rule__XorExpressionRule__Group_1__0();
+            	    rule__AndExpressionRule__Group_1__0();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -16384,7 +16444,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+               after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -16404,26 +16464,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:4815:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
-    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:4840:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4819:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:4820:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:4844:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:4845:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_48);
-            rule__XorExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__AndExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1();
+            rule__AndExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16442,28 +16502,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4827:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
-    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:4852:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4831:1: ( ( 'XOR' ) )
-            // InternalMachineLearningLanguage.g:4832:1: ( 'XOR' )
+            // InternalMachineLearningLanguage.g:4856:1: ( ( 'AND' ) )
+            // InternalMachineLearningLanguage.g:4857:1: ( 'AND' )
             {
-            // InternalMachineLearningLanguage.g:4832:1: ( 'XOR' )
-            // InternalMachineLearningLanguage.g:4833:2: 'XOR'
+            // InternalMachineLearningLanguage.g:4857:1: ( 'AND' )
+            // InternalMachineLearningLanguage.g:4858:2: 'AND'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+               before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             }
             match(input,76,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+               after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             }
 
             }
@@ -16483,21 +16543,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:4842:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
-    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:4867:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4846:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:4847:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:4871:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:4872:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1__Impl();
+            rule__AndExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16516,30 +16576,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4853:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:4878:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4857:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:4858:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4882:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:4883:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:4858:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:4859:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4883:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4884:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:4860:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:4860:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+            // InternalMachineLearningLanguage.g:4885:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4885:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
+            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16547,7 +16607,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
             }
 
             }
@@ -16567,26 +16627,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:4869:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
-    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:4894:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4873:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4874:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:4898:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4899:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_51);
-            rule__AndExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__NotExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1();
+            rule__NotExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16605,38 +16665,49 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0"
+    // $ANTLR end "rule__NotExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4881:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:4906:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4885:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:4886:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4910:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalMachineLearningLanguage.g:4911:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalMachineLearningLanguage.g:4886:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:4887:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalMachineLearningLanguage.g:4911:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalMachineLearningLanguage.g:4912:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:4888:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalMachineLearningLanguage.g:4888:3: rule__AndExpressionRule__SubExpressionsAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_0();
+            // InternalMachineLearningLanguage.g:4913:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( (LA36_0==94) ) {
+                alt36=1;
+            }
+            switch (alt36) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:4913:3: rule__NotExpressionRule__NegatedAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NotExpressionRule__NegatedAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+               after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
             }
 
             }
@@ -16656,21 +16727,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:4896:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
-    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:4921:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4900:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:4901:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:4925:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4926:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1__Impl();
+            rule__NotExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16689,59 +16760,41 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1"
+    // $ANTLR end "rule__NotExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:4907:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:4932:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4911:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:4912:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:4936:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:4937:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:4912:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:4913:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:4937:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:4938:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+               before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:4914:2: ( rule__AndExpressionRule__Group_1__0 )*
-            loop36:
-            do {
-                int alt36=2;
-                int LA36_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:4939:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalMachineLearningLanguage.g:4939:3: rule__NotExpressionRule__OperandAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NotExpressionRule__OperandAssignment_1();
 
-                if ( (LA36_0==77) ) {
-                    alt36=1;
-                }
+            state._fsp--;
+            if (state.failed) return ;
 
+            }
 
-                switch (alt36) {
-            	case 1 :
-            	    // InternalMachineLearningLanguage.g:4914:3: rule__AndExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_52);
-            	    rule__AndExpressionRule__Group_1__0();
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+            }
 
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop36;
-                }
-            } while (true);
-
-            if ( state.backtracking==0 ) {
-               after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            }
-
-            }
+            }
 
 
             }
@@ -16758,26 +16811,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:4923:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
-    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:4948:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4927:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:4928:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:4952:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:4953:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_48);
-            rule__AndExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_51);
+            rule__ComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1();
+            rule__ComparisonExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16796,28 +16849,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:4935:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
-    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:4960:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4939:1: ( ( 'AND' ) )
-            // InternalMachineLearningLanguage.g:4940:1: ( 'AND' )
+            // InternalMachineLearningLanguage.g:4964:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:4965:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4940:1: ( 'AND' )
-            // InternalMachineLearningLanguage.g:4941:2: 'AND'
+            // InternalMachineLearningLanguage.g:4965:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:4966:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
+               before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            match(input,77,FOLLOW_2); if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:4967:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:4967:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
+               after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
 
             }
@@ -16837,21 +16900,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:4950:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
-    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:4975:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4954:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:4955:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:4979:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:4980:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1__Impl();
+            rule__ComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16870,38 +16933,56 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:4961:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:4986:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4965:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:4966:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:4990:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalMachineLearningLanguage.g:4991:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalMachineLearningLanguage.g:4966:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:4967:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:4991:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalMachineLearningLanguage.g:4992:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:4968:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:4968:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
+            // InternalMachineLearningLanguage.g:4993:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            loop37:
+            do {
+                int alt37=2;
+                int LA37_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+                if ( ((LA37_0>=16 && LA37_0<=21)) ) {
+                    alt37=1;
+                }
 
-            }
+
+                switch (alt37) {
+            	case 1 :
+            	    // InternalMachineLearningLanguage.g:4993:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    {
+            	    pushFollow(FOLLOW_52);
+            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop37;
+                }
+            } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+               after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
             }
 
             }
@@ -16921,26 +17002,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:4977:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
-    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5002:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4981:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:4982:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5006:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5007:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_48);
-            rule__NotExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__PartialComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1();
+            rule__PartialComparisonExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -16959,49 +17040,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:4989:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
-    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5014:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:4993:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalMachineLearningLanguage.g:4994:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalMachineLearningLanguage.g:5018:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5019:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:4994:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalMachineLearningLanguage.g:4995:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalMachineLearningLanguage.g:5019:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5020:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            }
-            // InternalMachineLearningLanguage.g:4996:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
-            int alt37=2;
-            int LA37_0 = input.LA(1);
-
-            if ( (LA37_0==93) ) {
-                alt37=1;
+               before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
             }
-            switch (alt37) {
-                case 1 :
-                    // InternalMachineLearningLanguage.g:4996:3: rule__NotExpressionRule__NegatedAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__NotExpressionRule__NegatedAssignment_0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:5021:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalMachineLearningLanguage.g:5021:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
 
-                    }
-                    break;
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+               after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
             }
 
             }
@@ -17021,21 +17091,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5004:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
-    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5029:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5008:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5009:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5033:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5034:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1__Impl();
+            rule__PartialComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17054,30 +17124,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5015:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
-    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5040:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5019:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:5020:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5044:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:5045:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5020:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:5021:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalMachineLearningLanguage.g:5045:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5046:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+               before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:5022:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalMachineLearningLanguage.g:5022:3: rule__NotExpressionRule__OperandAssignment_1
+            // InternalMachineLearningLanguage.g:5047:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5047:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__OperandAssignment_1();
+            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17085,7 +17155,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+               after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
 
             }
@@ -17105,26 +17175,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5031:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
-    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5056:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5035:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5036:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5060:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5061:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_53);
-            rule__ComparisonExpressionRule__Group__0__Impl();
+            rule__AddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17143,30 +17213,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5043:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5068:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5047:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5048:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5072:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5073:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5048:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5049:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5073:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5074:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5050:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalMachineLearningLanguage.g:5050:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            // InternalMachineLearningLanguage.g:5075:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5075:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17174,7 +17244,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
 
             }
@@ -17194,21 +17264,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5058:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5083:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5062:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5063:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5087:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5088:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17227,42 +17297,42 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5069:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
-    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5094:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5073:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalMachineLearningLanguage.g:5074:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalMachineLearningLanguage.g:5098:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:5099:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:5074:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalMachineLearningLanguage.g:5075:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalMachineLearningLanguage.g:5099:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:5100:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:5076:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalMachineLearningLanguage.g:5101:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop38:
             do {
                 int alt38=2;
                 int LA38_0 = input.LA(1);
 
-                if ( ((LA38_0>=16 && LA38_0<=21)) ) {
+                if ( ((LA38_0>=22 && LA38_0<=23)) ) {
                     alt38=1;
                 }
 
 
                 switch (alt38) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:5076:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalMachineLearningLanguage.g:5101:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_54);
-            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
+            	    rule__AddOrSubtractExpressionRule__Group_1__0();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -17276,7 +17346,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -17296,26 +17366,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5085:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
-    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:5110:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5089:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5090:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5114:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:5115:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_48);
-            rule__PartialComparisonExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17334,30 +17404,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5097:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:5122:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5101:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5102:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5126:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalMachineLearningLanguage.g:5127:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5102:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5103:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalMachineLearningLanguage.g:5127:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalMachineLearningLanguage.g:5128:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:5104:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalMachineLearningLanguage.g:5104:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            // InternalMachineLearningLanguage.g:5129:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalMachineLearningLanguage.g:5129:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
+            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17365,7 +17435,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
 
             }
@@ -17385,21 +17455,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5112:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:5137:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5116:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5117:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5141:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:5142:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17418,30 +17488,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5123:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:5148:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5127:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:5128:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5152:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:5153:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5128:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:5129:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5153:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5154:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:5130:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalMachineLearningLanguage.g:5130:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+            // InternalMachineLearningLanguage.g:5155:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5155:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
+            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17449,7 +17519,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
 
             }
@@ -17469,26 +17539,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5139:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5164:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5143:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5144:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5168:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5169:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_55);
-            rule__AddOrSubtractExpressionRule__Group__0__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1();
+            rule__MultiplyDivideModuloExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17507,30 +17577,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5151:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5176:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5155:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5156:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5180:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5181:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5156:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5157:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5181:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5182:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5158:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalMachineLearningLanguage.g:5158:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+            // InternalMachineLearningLanguage.g:5183:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5183:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
+            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17538,7 +17608,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
 
             }
@@ -17558,21 +17628,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5166:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5191:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5170:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5171:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5195:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5196:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17591,42 +17661,42 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5177:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5202:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5181:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:5182:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:5206:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:5207:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:5182:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:5183:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:5207:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:5208:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:5184:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:5209:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop39:
             do {
                 int alt39=2;
                 int LA39_0 = input.LA(1);
 
-                if ( ((LA39_0>=22 && LA39_0<=23)) ) {
+                if ( ((LA39_0>=24 && LA39_0<=26)) ) {
                     alt39=1;
                 }
 
 
                 switch (alt39) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:5184:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalMachineLearningLanguage.g:5209:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_56);
-            	    rule__AddOrSubtractExpressionRule__Group_1__0();
+            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
 
             	    state._fsp--;
             	    if (state.failed) return ;
@@ -17640,7 +17710,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -17660,26 +17730,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:5193:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:5218:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5197:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:5198:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:5222:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:5223:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_48);
-            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17698,30 +17768,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:5205:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:5230:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5209:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalMachineLearningLanguage.g:5210:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalMachineLearningLanguage.g:5234:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalMachineLearningLanguage.g:5235:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5210:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalMachineLearningLanguage.g:5211:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalMachineLearningLanguage.g:5235:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalMachineLearningLanguage.g:5236:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:5212:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalMachineLearningLanguage.g:5212:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+            // InternalMachineLearningLanguage.g:5237:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalMachineLearningLanguage.g:5237:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
+            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17729,7 +17799,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
             }
 
             }
@@ -17749,21 +17819,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:5220:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:5245:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5224:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:5225:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:5249:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:5250:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17782,30 +17852,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:5231:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:5256:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5235:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:5236:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5260:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:5261:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5236:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:5237:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5261:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5262:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:5238:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:5238:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+            // InternalMachineLearningLanguage.g:5263:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5263:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
+            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17813,7 +17883,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
             }
 
             }
@@ -17833,26 +17903,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5247:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5272:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5251:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5252:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5276:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5277:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_57);
-            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
+            rule__PowerOfExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1();
+            rule__PowerOfExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17871,30 +17941,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5259:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5284:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5263:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5264:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5288:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5289:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5264:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5265:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5289:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5290:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5266:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalMachineLearningLanguage.g:5266:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+            // InternalMachineLearningLanguage.g:5291:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5291:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
+            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17902,7 +17972,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
             }
 
             }
@@ -17922,21 +17992,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5274:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5299:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5278:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5279:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5303:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5304:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
+            rule__PowerOfExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -17955,56 +18025,49 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5285:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5310:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5289:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:5290:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:5314:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalMachineLearningLanguage.g:5315:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalMachineLearningLanguage.g:5290:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:5291:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:5315:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalMachineLearningLanguage.g:5316:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+               before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:5292:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
-            loop40:
-            do {
-                int alt40=2;
-                int LA40_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:5317:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
 
-                if ( ((LA40_0>=24 && LA40_0<=26)) ) {
-                    alt40=1;
-                }
-
-
-                switch (alt40) {
-            	case 1 :
-            	    // InternalMachineLearningLanguage.g:5292:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_58);
-            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
+            if ( (LA40_0==77) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:5317:3: rule__PowerOfExpressionRule__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PowerOfExpressionRule__Group_1__0();
 
-            	    state._fsp--;
-            	    if (state.failed) return ;
+                    state._fsp--;
+                    if (state.failed) return ;
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop40;
-                }
-            } while (true);
+            }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+               after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
             }
 
             }
@@ -18024,26 +18087,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:5301:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
+    // InternalMachineLearningLanguage.g:5326:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5305:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:5306:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:5330:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalMachineLearningLanguage.g:5331:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_48);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__PowerOfExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
+            rule__PowerOfExpressionRule__Group_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18062,38 +18125,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:5313:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // InternalMachineLearningLanguage.g:5338:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5317:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalMachineLearningLanguage.g:5318:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalMachineLearningLanguage.g:5342:1: ( ( '^' ) )
+            // InternalMachineLearningLanguage.g:5343:1: ( '^' )
             {
-            // InternalMachineLearningLanguage.g:5318:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalMachineLearningLanguage.g:5319:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalMachineLearningLanguage.g:5343:1: ( '^' )
+            // InternalMachineLearningLanguage.g:5344:2: '^'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            }
-            // InternalMachineLearningLanguage.g:5320:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalMachineLearningLanguage.g:5320:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
-
-            state._fsp--;
-            if (state.failed) return ;
-
+               before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
             }
-
+            match(input,77,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+               after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
             }
 
             }
@@ -18113,21 +18166,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:5328:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
+    // InternalMachineLearningLanguage.g:5353:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5332:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:5333:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:5357:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:5358:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
+            rule__PowerOfExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18146,30 +18199,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:5339:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // InternalMachineLearningLanguage.g:5364:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5343:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:5344:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5368:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:5369:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5344:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:5345:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5369:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5370:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+               before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
             }
-            // InternalMachineLearningLanguage.g:5346:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:5346:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+            // InternalMachineLearningLanguage.g:5371:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5371:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
+            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18177,7 +18230,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+               after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
             }
 
             }
@@ -18197,26 +18250,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5355:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
-    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5380:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5359:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5360:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5384:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5385:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_59);
-            rule__PowerOfExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18235,38 +18288,56 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5367:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5392:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5371:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5372:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5396:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalMachineLearningLanguage.g:5397:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-            // InternalMachineLearningLanguage.g:5372:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5373:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalMachineLearningLanguage.g:5397:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalMachineLearningLanguage.g:5398:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5374:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalMachineLearningLanguage.g:5374:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
+            // InternalMachineLearningLanguage.g:5399:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            loop41:
+            do {
+                int alt41=2;
+                int LA41_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+                if ( ((LA41_0>=22 && LA41_0<=23)) ) {
+                    alt41=1;
+                }
 
-            }
+
+                switch (alt41) {
+            	case 1 :
+            	    // InternalMachineLearningLanguage.g:5399:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    {
+            	    pushFollow(FOLLOW_54);
+            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop41;
+                }
+            } while (true);
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+               after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
             }
 
             }
@@ -18286,21 +18357,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5382:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5407:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5386:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5387:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5411:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5412:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1__Impl();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18319,49 +18390,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5393:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
-    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5418:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5397:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalMachineLearningLanguage.g:5398:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalMachineLearningLanguage.g:5422:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:5423:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5398:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalMachineLearningLanguage.g:5399:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalMachineLearningLanguage.g:5423:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5424:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            }
-            // InternalMachineLearningLanguage.g:5400:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
-            int alt41=2;
-            int LA41_0 = input.LA(1);
-
-            if ( (LA41_0==78) ) {
-                alt41=1;
+               before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
-            switch (alt41) {
-                case 1 :
-                    // InternalMachineLearningLanguage.g:5400:3: rule__PowerOfExpressionRule__Group_1__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__PowerOfExpressionRule__Group_1__0();
-
-                    state._fsp--;
-                    if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:5425:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5425:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
 
-                    }
-                    break;
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+               after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
             }
 
             }
@@ -18381,26 +18441,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalMachineLearningLanguage.g:5409:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
-    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0"
+    // InternalMachineLearningLanguage.g:5434:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5413:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalMachineLearningLanguage.g:5414:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalMachineLearningLanguage.g:5438:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5439:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
-            pushFollow(FOLLOW_48);
-            rule__PowerOfExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_46);
+            rule__ParanthesesRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1();
+            rule__ParanthesesRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18419,28 +18479,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:5421:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5446:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5425:1: ( ( '^' ) )
-            // InternalMachineLearningLanguage.g:5426:1: ( '^' )
+            // InternalMachineLearningLanguage.g:5450:1: ( ( '(' ) )
+            // InternalMachineLearningLanguage.g:5451:1: ( '(' )
             {
-            // InternalMachineLearningLanguage.g:5426:1: ( '^' )
-            // InternalMachineLearningLanguage.g:5427:2: '^'
+            // InternalMachineLearningLanguage.g:5451:1: ( '(' )
+            // InternalMachineLearningLanguage.g:5452:2: '('
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+               before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             }
             match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+               after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             }
 
             }
@@ -18460,21 +18520,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalMachineLearningLanguage.g:5436:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1"
+    // InternalMachineLearningLanguage.g:5461:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5440:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:5441:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:5465:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalMachineLearningLanguage.g:5466:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
+            pushFollow(FOLLOW_58);
+            rule__ParanthesesRule__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1__Impl();
+            rule__ParanthesesRule__Group__2();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18493,30 +18558,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ParanthesesRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:5447:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5473:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5451:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:5452:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalMachineLearningLanguage.g:5477:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:5478:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5452:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalMachineLearningLanguage.g:5453:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalMachineLearningLanguage.g:5478:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5479:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+               before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:5454:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalMachineLearningLanguage.g:5454:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+            // InternalMachineLearningLanguage.g:5480:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5480:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
+            rule__ParanthesesRule__SubExpressionAssignment_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18524,7 +18589,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+               after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
             }
 
             }
@@ -18544,26 +18609,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalMachineLearningLanguage.g:5463:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2"
+    // InternalMachineLearningLanguage.g:5488:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5467:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5468:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalMachineLearningLanguage.g:5492:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalMachineLearningLanguage.g:5493:2: rule__ParanthesesRule__Group__2__Impl
             {
-            pushFollow(FOLLOW_48);
-            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1();
+            rule__ParanthesesRule__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18582,56 +18642,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__2"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5475:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
+    // InternalMachineLearningLanguage.g:5499:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5479:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalMachineLearningLanguage.g:5480:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalMachineLearningLanguage.g:5503:1: ( ( ')' ) )
+            // InternalMachineLearningLanguage.g:5504:1: ( ')' )
             {
-            // InternalMachineLearningLanguage.g:5480:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalMachineLearningLanguage.g:5481:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalMachineLearningLanguage.g:5504:1: ( ')' )
+            // InternalMachineLearningLanguage.g:5505:2: ')'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+               before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
             }
-            // InternalMachineLearningLanguage.g:5482:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
-            loop42:
-            do {
-                int alt42=2;
-                int LA42_0 = input.LA(1);
-
-                if ( ((LA42_0>=22 && LA42_0<=23)) ) {
-                    alt42=1;
-                }
-
-
-                switch (alt42) {
-            	case 1 :
-            	    // InternalMachineLearningLanguage.g:5482:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
-            	    {
-            	    pushFollow(FOLLOW_56);
-            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
-
-            	    state._fsp--;
-            	    if (state.failed) return ;
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop42;
-                }
-            } while (true);
-
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+               after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
             }
 
             }
@@ -18651,21 +18683,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalMachineLearningLanguage.g:5490:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0"
+    // InternalMachineLearningLanguage.g:5515:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5494:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5495:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5519:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5520:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
+            pushFollow(FOLLOW_59);
+            rule__CallRule__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
+            rule__CallRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18684,30 +18721,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__0"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5501:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5527:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5505:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:5506:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5531:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5532:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5506:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:5507:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5532:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5533:2: ( rule__CallRule__FunctionAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+               before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5508:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalMachineLearningLanguage.g:5508:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            // InternalMachineLearningLanguage.g:5534:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalMachineLearningLanguage.g:5534:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
+            rule__CallRule__FunctionAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18715,7 +18752,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+               after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
             }
 
             }
@@ -18735,26 +18772,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalMachineLearningLanguage.g:5517:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
-    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1"
+    // InternalMachineLearningLanguage.g:5542:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5521:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5522:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalMachineLearningLanguage.g:5546:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalMachineLearningLanguage.g:5547:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
-            pushFollow(FOLLOW_48);
-            rule__ParanthesesRule__Group__0__Impl();
+            pushFollow(FOLLOW_60);
+            rule__CallRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__1();
+            rule__CallRule__Group__2();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18773,28 +18810,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group__1"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5529:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
-    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5554:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5533:1: ( ( '(' ) )
-            // InternalMachineLearningLanguage.g:5534:1: ( '(' )
+            // InternalMachineLearningLanguage.g:5558:1: ( ( '(' ) )
+            // InternalMachineLearningLanguage.g:5559:1: ( '(' )
             {
-            // InternalMachineLearningLanguage.g:5534:1: ( '(' )
-            // InternalMachineLearningLanguage.g:5535:2: '('
+            // InternalMachineLearningLanguage.g:5559:1: ( '(' )
+            // InternalMachineLearningLanguage.g:5560:2: '('
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
+               before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            match(input,78,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
+               after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
             }
 
             }
@@ -18814,26 +18851,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalMachineLearningLanguage.g:5544:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
-    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2"
+    // InternalMachineLearningLanguage.g:5569:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5548:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalMachineLearningLanguage.g:5549:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalMachineLearningLanguage.g:5573:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalMachineLearningLanguage.g:5574:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_60);
-            rule__ParanthesesRule__Group__1__Impl();
+            rule__CallRule__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2();
+            rule__CallRule__Group__3();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18852,38 +18889,49 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__2"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5556:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2__Impl"
+    // InternalMachineLearningLanguage.g:5581:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5560:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:5561:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:5585:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalMachineLearningLanguage.g:5586:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalMachineLearningLanguage.g:5561:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:5562:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalMachineLearningLanguage.g:5586:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalMachineLearningLanguage.g:5587:2: ( rule__CallRule__Group_2__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+               before(grammarAccess.getCallRuleAccess().getGroup_2()); 
             }
-            // InternalMachineLearningLanguage.g:5563:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalMachineLearningLanguage.g:5563:3: rule__ParanthesesRule__SubExpressionAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__SubExpressionAssignment_1();
+            // InternalMachineLearningLanguage.g:5588:2: ( rule__CallRule__Group_2__0 )?
+            int alt42=2;
+            int LA42_0 = input.LA(1);
 
-            state._fsp--;
-            if (state.failed) return ;
+            if ( ((LA42_0>=RULE_QUOTED_ID && LA42_0<=RULE_DOUBLE)||LA42_0==15||(LA42_0>=22 && LA42_0<=23)||LA42_0==78||(LA42_0>=94 && LA42_0<=95)) ) {
+                alt42=1;
+            }
+            switch (alt42) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:5588:3: rule__CallRule__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CallRule__Group_2__0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+               after(grammarAccess.getCallRuleAccess().getGroup_2()); 
             }
 
             }
@@ -18903,21 +18951,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalMachineLearningLanguage.g:5571:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
-    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3"
+    // InternalMachineLearningLanguage.g:5596:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5575:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalMachineLearningLanguage.g:5576:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalMachineLearningLanguage.g:5600:1: ( rule__CallRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:5601:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2__Impl();
+            rule__CallRule__Group__3__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -18936,28 +18984,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group__3"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:5582:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
-    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3__Impl"
+    // InternalMachineLearningLanguage.g:5607:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5586:1: ( ( ')' ) )
-            // InternalMachineLearningLanguage.g:5587:1: ( ')' )
+            // InternalMachineLearningLanguage.g:5611:1: ( ( ')' ) )
+            // InternalMachineLearningLanguage.g:5612:1: ( ')' )
             {
-            // InternalMachineLearningLanguage.g:5587:1: ( ')' )
-            // InternalMachineLearningLanguage.g:5588:2: ')'
+            // InternalMachineLearningLanguage.g:5612:1: ( ')' )
+            // InternalMachineLearningLanguage.g:5613:2: ')'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+               before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            match(input,79,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+               after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
             }
 
             }
@@ -18977,26 +19025,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
+    // $ANTLR end "rule__CallRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__0"
-    // InternalMachineLearningLanguage.g:5598:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
-    public final void rule__CallRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0"
+    // InternalMachineLearningLanguage.g:5623:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5602:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5603:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalMachineLearningLanguage.g:5627:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalMachineLearningLanguage.g:5628:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
-            pushFollow(FOLLOW_61);
-            rule__CallRule__Group__0__Impl();
+            pushFollow(FOLLOW_42);
+            rule__CallRule__Group_2__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__1();
+            rule__CallRule__Group_2__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19015,30 +19063,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group_2__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5610:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
-    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
+    // InternalMachineLearningLanguage.g:5635:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5614:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5615:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5639:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalMachineLearningLanguage.g:5640:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5615:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5616:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalMachineLearningLanguage.g:5640:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalMachineLearningLanguage.g:5641:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+               before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
             }
-            // InternalMachineLearningLanguage.g:5617:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalMachineLearningLanguage.g:5617:3: rule__CallRule__FunctionAssignment_0
+            // InternalMachineLearningLanguage.g:5642:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalMachineLearningLanguage.g:5642:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__FunctionAssignment_0();
+            rule__CallRule__ParametersAssignment_2_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19046,7 +19094,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+               after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
             }
 
             }
@@ -19066,26 +19114,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__1"
-    // InternalMachineLearningLanguage.g:5625:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
-    public final void rule__CallRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__1"
+    // InternalMachineLearningLanguage.g:5650:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5629:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalMachineLearningLanguage.g:5630:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalMachineLearningLanguage.g:5654:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalMachineLearningLanguage.g:5655:2: rule__CallRule__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_62);
-            rule__CallRule__Group__1__Impl();
-
-            state._fsp--;
-            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__2();
+            rule__CallRule__Group_2__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19104,28 +19147,56 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group_2__1"
 
 
-    // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5637:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
-    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
+    // InternalMachineLearningLanguage.g:5661:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5641:1: ( ( '(' ) )
-            // InternalMachineLearningLanguage.g:5642:1: ( '(' )
+            // InternalMachineLearningLanguage.g:5665:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:5666:1: ( ( rule__CallRule__Group_2_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:5642:1: ( '(' )
-            // InternalMachineLearningLanguage.g:5643:2: '('
+            // InternalMachineLearningLanguage.g:5666:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalMachineLearningLanguage.g:5667:2: ( rule__CallRule__Group_2_1__0 )*
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+               before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
             }
-            match(input,79,FOLLOW_2); if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:5668:2: ( rule__CallRule__Group_2_1__0 )*
+            loop43:
+            do {
+                int alt43=2;
+                int LA43_0 = input.LA(1);
+
+                if ( (LA43_0==53) ) {
+                    alt43=1;
+                }
+
+
+                switch (alt43) {
+            	case 1 :
+            	    // InternalMachineLearningLanguage.g:5668:3: rule__CallRule__Group_2_1__0
+            	    {
+            	    pushFollow(FOLLOW_12);
+            	    rule__CallRule__Group_2_1__0();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop43;
+                }
+            } while (true);
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+               after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
             }
 
             }
@@ -19145,26 +19216,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1__Impl"
-
+    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
 
-    // $ANTLR start "rule__CallRule__Group__2"
-    // InternalMachineLearningLanguage.g:5652:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
-    public final void rule__CallRule__Group__2() throws RecognitionException {
+
+    // $ANTLR start "rule__CallRule__Group_2_1__0"
+    // InternalMachineLearningLanguage.g:5677:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5656:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalMachineLearningLanguage.g:5657:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalMachineLearningLanguage.g:5681:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalMachineLearningLanguage.g:5682:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
             {
-            pushFollow(FOLLOW_62);
-            rule__CallRule__Group__2__Impl();
+            pushFollow(FOLLOW_46);
+            rule__CallRule__Group_2_1__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3();
+            rule__CallRule__Group_2_1__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19183,49 +19254,112 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group_2_1__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:5664:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
-    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
+    // InternalMachineLearningLanguage.g:5689:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5668:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalMachineLearningLanguage.g:5669:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalMachineLearningLanguage.g:5693:1: ( ( ',' ) )
+            // InternalMachineLearningLanguage.g:5694:1: ( ',' )
             {
-            // InternalMachineLearningLanguage.g:5669:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalMachineLearningLanguage.g:5670:2: ( rule__CallRule__Group_2__0 )?
+            // InternalMachineLearningLanguage.g:5694:1: ( ',' )
+            // InternalMachineLearningLanguage.g:5695:2: ','
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getGroup_2()); 
+               before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+            }
+            match(input,53,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:5671:2: ( rule__CallRule__Group_2__0 )?
-            int alt43=2;
-            int LA43_0 = input.LA(1);
 
-            if ( ((LA43_0>=RULE_QUOTED_ID && LA43_0<=RULE_DOUBLE)||LA43_0==15||(LA43_0>=22 && LA43_0<=23)||LA43_0==79||LA43_0==81||(LA43_0>=93 && LA43_0<=94)) ) {
-                alt43=1;
             }
-            switch (alt43) {
-                case 1 :
-                    // InternalMachineLearningLanguage.g:5671:3: rule__CallRule__Group_2__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__CallRule__Group_2__0();
 
-                    state._fsp--;
-                    if (state.failed) return ;
 
-                    }
-                    break;
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__1"
+    // InternalMachineLearningLanguage.g:5704:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:5708:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalMachineLearningLanguage.g:5709:2: rule__CallRule__Group_2_1__1__Impl
+            {
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2_1__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2_1__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
+    // InternalMachineLearningLanguage.g:5715:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:5719:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalMachineLearningLanguage.g:5720:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            {
+            // InternalMachineLearningLanguage.g:5720:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalMachineLearningLanguage.g:5721:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+            }
+            // InternalMachineLearningLanguage.g:5722:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalMachineLearningLanguage.g:5722:3: rule__CallRule__ParametersAssignment_2_1_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__CallRule__ParametersAssignment_2_1_1();
+
+            state._fsp--;
+            if (state.failed) return ;
 
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getGroup_2()); 
+               after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
             }
 
             }
@@ -19245,21 +19379,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2__Impl"
+    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__3"
-    // InternalMachineLearningLanguage.g:5679:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
-    public final void rule__CallRule__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
+    // InternalMachineLearningLanguage.g:5731:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5683:1: ( rule__CallRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:5684:2: rule__CallRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:5735:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5736:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
+            pushFollow(FOLLOW_61);
+            rule__DoubleLiteralRule__Group__0__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3__Impl();
+            rule__DoubleLiteralRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19278,28 +19417,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:5690:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
-    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5743:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5694:1: ( ( ')' ) )
-            // InternalMachineLearningLanguage.g:5695:1: ( ')' )
+            // InternalMachineLearningLanguage.g:5747:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5748:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5695:1: ( ')' )
-            // InternalMachineLearningLanguage.g:5696:2: ')'
+            // InternalMachineLearningLanguage.g:5748:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5749:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+               before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
             }
-            match(input,80,FOLLOW_2); if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:5750:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalMachineLearningLanguage.g:5750:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__LiteralAssignment_0();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+               after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
             }
 
             }
@@ -19319,26 +19468,121 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalMachineLearningLanguage.g:5706:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
-    public final void rule__CallRule__Group_2__0() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
+    // InternalMachineLearningLanguage.g:5758:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5710:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalMachineLearningLanguage.g:5711:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
+            // InternalMachineLearningLanguage.g:5762:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5763:2: rule__DoubleLiteralRule__Group__1__Impl
             {
-            pushFollow(FOLLOW_42);
-            rule__CallRule__Group_2__0__Impl();
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
+
+
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5769:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:5773:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalMachineLearningLanguage.g:5774:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            {
+            // InternalMachineLearningLanguage.g:5774:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalMachineLearningLanguage.g:5775:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            }
+            // InternalMachineLearningLanguage.g:5776:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            int alt44=2;
+            int LA44_0 = input.LA(1);
+
+            if ( ((LA44_0>=27 && LA44_0<=46)) ) {
+                alt44=1;
+            }
+            switch (alt44) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:5776:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DoubleLiteralRule__FactorAssignment_1();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
+
+
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
+    // InternalMachineLearningLanguage.g:5785:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:5789:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5790:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            {
+            pushFollow(FOLLOW_61);
+            rule__IntegerLiteralRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1();
+            rule__IntegerLiteralRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19357,30 +19601,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalMachineLearningLanguage.g:5718:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
-    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5797:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5722:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalMachineLearningLanguage.g:5723:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalMachineLearningLanguage.g:5801:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:5802:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:5723:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalMachineLearningLanguage.g:5724:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalMachineLearningLanguage.g:5802:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5803:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+               before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5725:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalMachineLearningLanguage.g:5725:3: rule__CallRule__ParametersAssignment_2_0
+            // InternalMachineLearningLanguage.g:5804:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalMachineLearningLanguage.g:5804:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_0();
+            rule__IntegerLiteralRule__LiteralAssignment_0();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19388,7 +19632,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+               after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
             }
 
             }
@@ -19408,21 +19652,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalMachineLearningLanguage.g:5733:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
-    public final void rule__CallRule__Group_2__1() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
+    // InternalMachineLearningLanguage.g:5812:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5737:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalMachineLearningLanguage.g:5738:2: rule__CallRule__Group_2__1__Impl
+            // InternalMachineLearningLanguage.g:5816:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5817:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1__Impl();
+            rule__IntegerLiteralRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19441,56 +19685,49 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalMachineLearningLanguage.g:5744:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
-    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5823:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5748:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:5749:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalMachineLearningLanguage.g:5827:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalMachineLearningLanguage.g:5828:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalMachineLearningLanguage.g:5749:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalMachineLearningLanguage.g:5750:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalMachineLearningLanguage.g:5828:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalMachineLearningLanguage.g:5829:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+               before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:5751:2: ( rule__CallRule__Group_2_1__0 )*
-            loop44:
-            do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
-
-                if ( (LA44_0==53) ) {
-                    alt44=1;
-                }
-
+            // InternalMachineLearningLanguage.g:5830:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            int alt45=2;
+            int LA45_0 = input.LA(1);
 
-                switch (alt44) {
-            	case 1 :
-            	    // InternalMachineLearningLanguage.g:5751:3: rule__CallRule__Group_2_1__0
-            	    {
-            	    pushFollow(FOLLOW_12);
-            	    rule__CallRule__Group_2_1__0();
+            if ( ((LA45_0>=27 && LA45_0<=46)) ) {
+                alt45=1;
+            }
+            switch (alt45) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:5830:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__IntegerLiteralRule__FactorAssignment_1();
 
-            	    state._fsp--;
-            	    if (state.failed) return ;
+                    state._fsp--;
+                    if (state.failed) return ;
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop44;
-                }
-            } while (true);
+            }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+               after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
             }
 
             }
@@ -19510,26 +19747,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalMachineLearningLanguage.g:5760:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
-    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
+    // InternalMachineLearningLanguage.g:5839:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5764:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalMachineLearningLanguage.g:5765:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalMachineLearningLanguage.g:5843:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5844:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_48);
-            rule__CallRule__Group_2_1__0__Impl();
+            pushFollow(FOLLOW_40);
+            rule__BooleanLiteralRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1();
+            rule__BooleanLiteralRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19548,28 +19785,32 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalMachineLearningLanguage.g:5772:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
-    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5851:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5776:1: ( ( ',' ) )
-            // InternalMachineLearningLanguage.g:5777:1: ( ',' )
+            // InternalMachineLearningLanguage.g:5855:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:5856:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:5777:1: ( ',' )
-            // InternalMachineLearningLanguage.g:5778:2: ','
+            // InternalMachineLearningLanguage.g:5856:1: ( () )
+            // InternalMachineLearningLanguage.g:5857:2: ()
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+               before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
             }
-            match(input,53,FOLLOW_2); if (state.failed) return ;
+            // InternalMachineLearningLanguage.g:5858:2: ()
+            // InternalMachineLearningLanguage.g:5858:3: 
+            {
+            }
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+               after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
             }
 
             }
@@ -19578,10 +19819,6 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
         }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -19589,21 +19826,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalMachineLearningLanguage.g:5787:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
-    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
+    // InternalMachineLearningLanguage.g:5866:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5791:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalMachineLearningLanguage.g:5792:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalMachineLearningLanguage.g:5870:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:5871:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1__Impl();
+            rule__BooleanLiteralRule__Group__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19622,30 +19859,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalMachineLearningLanguage.g:5798:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
-    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5877:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5802:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalMachineLearningLanguage.g:5803:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalMachineLearningLanguage.g:5881:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalMachineLearningLanguage.g:5882:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalMachineLearningLanguage.g:5803:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalMachineLearningLanguage.g:5804:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalMachineLearningLanguage.g:5882:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalMachineLearningLanguage.g:5883:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+               before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
             }
-            // InternalMachineLearningLanguage.g:5805:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalMachineLearningLanguage.g:5805:3: rule__CallRule__ParametersAssignment_2_1_1
+            // InternalMachineLearningLanguage.g:5884:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalMachineLearningLanguage.g:5884:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_1_1();
+            rule__BooleanLiteralRule__Alternatives_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19653,7 +19890,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+               after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
             }
 
             }
@@ -19673,26 +19910,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalMachineLearningLanguage.g:5814:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalMachineLearningLanguage.g:5893:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5818:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5819:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
+            // InternalMachineLearningLanguage.g:5897:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:5898:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_48);
-            rule__ValueReferenceRule__Group__0__Impl();
+            pushFollow(FOLLOW_62);
+            rule__TypeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
+            rule__TypeDefinitionRule__Group__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19711,32 +19948,49 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5826:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalMachineLearningLanguage.g:5905:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5830:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:5831:1: ( () )
+            // InternalMachineLearningLanguage.g:5909:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalMachineLearningLanguage.g:5910:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-            // InternalMachineLearningLanguage.g:5831:1: ( () )
-            // InternalMachineLearningLanguage.g:5832:2: ()
+            // InternalMachineLearningLanguage.g:5910:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalMachineLearningLanguage.g:5911:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:5833:2: ()
-            // InternalMachineLearningLanguage.g:5833:3: 
-            {
+            // InternalMachineLearningLanguage.g:5912:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt46=2;
+            int LA46_0 = input.LA(1);
+
+            if ( (LA46_0==96) ) {
+                alt46=1;
+            }
+            switch (alt46) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:5912:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+                    if (state.failed) return ;
+
+                    }
+                    break;
+
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
             }
 
             }
@@ -19745,6 +19999,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -19752,21 +20010,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalMachineLearningLanguage.g:5841:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalMachineLearningLanguage.g:5920:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5845:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5846:2: rule__ValueReferenceRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5924:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalMachineLearningLanguage.g:5925:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
             {
+            pushFollow(FOLLOW_10);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__2();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19785,28 +20048,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5852:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalMachineLearningLanguage.g:5932:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5856:1: ( ( 'value' ) )
-            // InternalMachineLearningLanguage.g:5857:1: ( 'value' )
+            // InternalMachineLearningLanguage.g:5936:1: ( ( 'type' ) )
+            // InternalMachineLearningLanguage.g:5937:1: ( 'type' )
             {
-            // InternalMachineLearningLanguage.g:5857:1: ( 'value' )
-            // InternalMachineLearningLanguage.g:5858:2: 'value'
+            // InternalMachineLearningLanguage.g:5937:1: ( 'type' )
+            // InternalMachineLearningLanguage.g:5938:2: 'type'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
             }
-            match(input,81,FOLLOW_2); if (state.failed) return ;
+            match(input,80,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
             }
 
             }
@@ -19826,26 +20089,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalMachineLearningLanguage.g:5868:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
-    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalMachineLearningLanguage.g:5947:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5872:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5873:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalMachineLearningLanguage.g:5951:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalMachineLearningLanguage.g:5952:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_63);
-            rule__DoubleLiteralRule__Group__0__Impl();
+            rule__TypeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__3();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19864,30 +20127,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5880:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalMachineLearningLanguage.g:5959:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5884:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5885:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:5963:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalMachineLearningLanguage.g:5964:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalMachineLearningLanguage.g:5885:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5886:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalMachineLearningLanguage.g:5964:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:5965:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:5887:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalMachineLearningLanguage.g:5887:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            // InternalMachineLearningLanguage.g:5966:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalMachineLearningLanguage.g:5966:3: rule__TypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__NameAssignment_2();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19895,7 +20158,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
             }
 
             }
@@ -19915,21 +20178,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalMachineLearningLanguage.g:5895:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
-    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalMachineLearningLanguage.g:5974:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5899:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5900:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:5978:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalMachineLearningLanguage.g:5979:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
             {
+            pushFollow(FOLLOW_63);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__4();
 
             state._fsp--;
             if (state.failed) return ;
@@ -19948,38 +20216,38 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5906:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalMachineLearningLanguage.g:5986:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5910:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalMachineLearningLanguage.g:5911:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalMachineLearningLanguage.g:5990:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalMachineLearningLanguage.g:5991:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalMachineLearningLanguage.g:5911:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalMachineLearningLanguage.g:5912:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalMachineLearningLanguage.g:5991:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalMachineLearningLanguage.g:5992:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
             }
-            // InternalMachineLearningLanguage.g:5913:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:5993:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( ((LA45_0>=27 && LA45_0<=46)) ) {
-                alt45=1;
+            if ( (LA47_0==81) ) {
+                alt47=1;
             }
-            switch (alt45) {
+            switch (alt47) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:5913:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalMachineLearningLanguage.g:5993:3: rule__TypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
-                    rule__DoubleLiteralRule__FactorAssignment_1();
+                    rule__TypeDefinitionRule__Group_3__0();
 
                     state._fsp--;
                     if (state.failed) return ;
@@ -19990,7 +20258,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
             }
 
             }
@@ -20010,26 +20278,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalMachineLearningLanguage.g:5922:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
-    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalMachineLearningLanguage.g:6001:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5926:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5927:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalMachineLearningLanguage.g:6005:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalMachineLearningLanguage.g:6006:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
             {
-            pushFollow(FOLLOW_63);
-            rule__IntegerLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_38);
+            rule__TypeDefinitionRule__Group__4__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__5();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20048,38 +20316,135 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5934:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalMachineLearningLanguage.g:6013:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5938:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:5939:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:6017:1: ( ( '{' ) )
+            // InternalMachineLearningLanguage.g:6018:1: ( '{' )
             {
-            // InternalMachineLearningLanguage.g:5939:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:5940:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalMachineLearningLanguage.g:6018:1: ( '{' )
+            // InternalMachineLearningLanguage.g:6019:2: '{'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
             }
-            // InternalMachineLearningLanguage.g:5941:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalMachineLearningLanguage.g:5941:3: rule__IntegerLiteralRule__LiteralAssignment_0
+            match(input,70,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalMachineLearningLanguage.g:6028:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:6032:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalMachineLearningLanguage.g:6033:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
             {
+            pushFollow(FOLLOW_38);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+            if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__Group__6();
 
             state._fsp--;
             if (state.failed) return ;
 
             }
 
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalMachineLearningLanguage.g:6040:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:6044:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalMachineLearningLanguage.g:6045:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalMachineLearningLanguage.g:6045:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalMachineLearningLanguage.g:6046:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            }
+            // InternalMachineLearningLanguage.g:6047:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop48:
+            do {
+                int alt48=2;
+                int LA48_0 = input.LA(1);
+
+                if ( ((LA48_0>=RULE_QUOTED_ID && LA48_0<=RULE_ID)) ) {
+                    alt48=1;
+                }
+
+
+                switch (alt48) {
+            	case 1 :
+            	    // InternalMachineLearningLanguage.g:6047:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_22);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+            	    if (state.failed) return ;
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop48;
+                }
+            } while (true);
+
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
             }
 
             }
@@ -20099,21 +20464,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalMachineLearningLanguage.g:5949:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
-    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalMachineLearningLanguage.g:6055:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5953:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:5954:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6059:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalMachineLearningLanguage.g:6060:2: rule__TypeDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__6__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20132,49 +20497,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:5960:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalMachineLearningLanguage.g:6066:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5964:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalMachineLearningLanguage.g:5965:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalMachineLearningLanguage.g:6070:1: ( ( '}' ) )
+            // InternalMachineLearningLanguage.g:6071:1: ( '}' )
             {
-            // InternalMachineLearningLanguage.g:5965:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalMachineLearningLanguage.g:5966:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalMachineLearningLanguage.g:6071:1: ( '}' )
+            // InternalMachineLearningLanguage.g:6072:2: '}'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            }
-            // InternalMachineLearningLanguage.g:5967:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
-            int alt46=2;
-            int LA46_0 = input.LA(1);
-
-            if ( ((LA46_0>=27 && LA46_0<=46)) ) {
-                alt46=1;
-            }
-            switch (alt46) {
-                case 1 :
-                    // InternalMachineLearningLanguage.g:5967:3: rule__IntegerLiteralRule__FactorAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__IntegerLiteralRule__FactorAssignment_1();
-
-                    state._fsp--;
-                    if (state.failed) return ;
-
-                    }
-                    break;
-
+               before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
             }
-
+            match(input,71,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
             }
 
             }
@@ -20194,26 +20538,26 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalMachineLearningLanguage.g:5976:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
-    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalMachineLearningLanguage.g:6082:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5980:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalMachineLearningLanguage.g:5981:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalMachineLearningLanguage.g:6086:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalMachineLearningLanguage.g:6087:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_40);
-            rule__BooleanLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_10);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
             if (state.failed) return ;
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group_3__1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20232,32 +20576,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:5988:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
-    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalMachineLearningLanguage.g:6094:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:5992:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:5993:1: ( () )
+            // InternalMachineLearningLanguage.g:6098:1: ( ( 'extends' ) )
+            // InternalMachineLearningLanguage.g:6099:1: ( 'extends' )
             {
-            // InternalMachineLearningLanguage.g:5993:1: ( () )
-            // InternalMachineLearningLanguage.g:5994:2: ()
+            // InternalMachineLearningLanguage.g:6099:1: ( 'extends' )
+            // InternalMachineLearningLanguage.g:6100:2: 'extends'
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
             }
-            // InternalMachineLearningLanguage.g:5995:2: ()
-            // InternalMachineLearningLanguage.g:5995:3: 
-            {
-            }
-
+            match(input,81,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
             }
 
             }
@@ -20266,6 +20606,10 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -20273,21 +20617,21 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalMachineLearningLanguage.g:6003:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
-    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalMachineLearningLanguage.g:6109:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6007:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6008:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6113:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalMachineLearningLanguage.g:6114:2: rule__TypeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group_3__1__Impl();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20306,30 +20650,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6014:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
-    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalMachineLearningLanguage.g:6120:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6018:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalMachineLearningLanguage.g:6019:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalMachineLearningLanguage.g:6124:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalMachineLearningLanguage.g:6125:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
             {
-            // InternalMachineLearningLanguage.g:6019:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalMachineLearningLanguage.g:6020:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalMachineLearningLanguage.g:6125:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalMachineLearningLanguage.g:6126:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
             }
-            // InternalMachineLearningLanguage.g:6021:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalMachineLearningLanguage.g:6021:3: rule__BooleanLiteralRule__Alternatives_1
+            // InternalMachineLearningLanguage.g:6127:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalMachineLearningLanguage.g:6127:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Alternatives_1();
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
 
             state._fsp--;
             if (state.failed) return ;
@@ -20337,7 +20681,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             }
 
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
             }
 
             }
@@ -20357,18 +20701,18 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalMachineLearningLanguage.g:6030:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6136:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6034:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6035:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalMachineLearningLanguage.g:6140:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6141:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_64);
             rule__AttributeDefinitionRule__Group__0__Impl();
@@ -20399,23 +20743,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6042:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalMachineLearningLanguage.g:6148:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6046:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:6047:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:6152:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:6153:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:6047:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:6048:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalMachineLearningLanguage.g:6153:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:6154:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:6049:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalMachineLearningLanguage.g:6049:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalMachineLearningLanguage.g:6155:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalMachineLearningLanguage.g:6155:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -20450,14 +20794,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalMachineLearningLanguage.g:6057:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:6163:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6061:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalMachineLearningLanguage.g:6062:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalMachineLearningLanguage.g:6167:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalMachineLearningLanguage.g:6168:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_65);
             rule__AttributeDefinitionRule__Group__1__Impl();
@@ -20488,17 +20832,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6069:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalMachineLearningLanguage.g:6175:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6073:1: ( ( ':' ) )
-            // InternalMachineLearningLanguage.g:6074:1: ( ':' )
+            // InternalMachineLearningLanguage.g:6179:1: ( ( ':' ) )
+            // InternalMachineLearningLanguage.g:6180:1: ( ':' )
             {
-            // InternalMachineLearningLanguage.g:6074:1: ( ':' )
-            // InternalMachineLearningLanguage.g:6075:2: ':'
+            // InternalMachineLearningLanguage.g:6180:1: ( ':' )
+            // InternalMachineLearningLanguage.g:6181:2: ':'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
@@ -20529,14 +20873,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalMachineLearningLanguage.g:6084:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:6190:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6088:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalMachineLearningLanguage.g:6089:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalMachineLearningLanguage.g:6194:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalMachineLearningLanguage.g:6195:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_66);
             rule__AttributeDefinitionRule__Group__2__Impl();
@@ -20567,23 +20911,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:6096:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalMachineLearningLanguage.g:6202:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6100:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalMachineLearningLanguage.g:6101:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:6206:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalMachineLearningLanguage.g:6207:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalMachineLearningLanguage.g:6101:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalMachineLearningLanguage.g:6102:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalMachineLearningLanguage.g:6207:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:6208:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:6103:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalMachineLearningLanguage.g:6103:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalMachineLearningLanguage.g:6209:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalMachineLearningLanguage.g:6209:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -20618,14 +20962,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalMachineLearningLanguage.g:6111:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalMachineLearningLanguage.g:6217:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6115:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalMachineLearningLanguage.g:6116:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalMachineLearningLanguage.g:6221:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalMachineLearningLanguage.g:6222:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_66);
             rule__AttributeDefinitionRule__Group__3__Impl();
@@ -20656,31 +21000,31 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:6123:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalMachineLearningLanguage.g:6229:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6127:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalMachineLearningLanguage.g:6128:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalMachineLearningLanguage.g:6233:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalMachineLearningLanguage.g:6234:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalMachineLearningLanguage.g:6128:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalMachineLearningLanguage.g:6129:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalMachineLearningLanguage.g:6234:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalMachineLearningLanguage.g:6235:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
             }
-            // InternalMachineLearningLanguage.g:6130:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:6236:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA47_0==72) ) {
-                alt47=1;
+            if ( (LA49_0==72) ) {
+                alt49=1;
             }
-            switch (alt47) {
+            switch (alt49) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:6130:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalMachineLearningLanguage.g:6236:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -20718,14 +21062,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalMachineLearningLanguage.g:6138:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalMachineLearningLanguage.g:6244:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6142:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalMachineLearningLanguage.g:6143:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalMachineLearningLanguage.g:6248:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalMachineLearningLanguage.g:6249:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -20751,17 +21095,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalMachineLearningLanguage.g:6149:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalMachineLearningLanguage.g:6255:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6153:1: ( ( ';' ) )
-            // InternalMachineLearningLanguage.g:6154:1: ( ';' )
+            // InternalMachineLearningLanguage.g:6259:1: ( ( ';' ) )
+            // InternalMachineLearningLanguage.g:6260:1: ( ';' )
             {
-            // InternalMachineLearningLanguage.g:6154:1: ( ';' )
-            // InternalMachineLearningLanguage.g:6155:2: ';'
+            // InternalMachineLearningLanguage.g:6260:1: ( ';' )
+            // InternalMachineLearningLanguage.g:6261:2: ';'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
@@ -20792,16 +21136,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalMachineLearningLanguage.g:6165:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalMachineLearningLanguage.g:6271:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6169:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalMachineLearningLanguage.g:6170:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalMachineLearningLanguage.g:6275:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalMachineLearningLanguage.g:6276:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_46);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
@@ -20830,17 +21174,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalMachineLearningLanguage.g:6177:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalMachineLearningLanguage.g:6283:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6181:1: ( ( ':=' ) )
-            // InternalMachineLearningLanguage.g:6182:1: ( ':=' )
+            // InternalMachineLearningLanguage.g:6287:1: ( ( ':=' ) )
+            // InternalMachineLearningLanguage.g:6288:1: ( ':=' )
             {
-            // InternalMachineLearningLanguage.g:6182:1: ( ':=' )
-            // InternalMachineLearningLanguage.g:6183:2: ':='
+            // InternalMachineLearningLanguage.g:6288:1: ( ':=' )
+            // InternalMachineLearningLanguage.g:6289:2: ':='
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
@@ -20871,14 +21215,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalMachineLearningLanguage.g:6192:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalMachineLearningLanguage.g:6298:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6196:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalMachineLearningLanguage.g:6197:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalMachineLearningLanguage.g:6302:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalMachineLearningLanguage.g:6303:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -20904,23 +21248,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalMachineLearningLanguage.g:6203:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalMachineLearningLanguage.g:6309:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6207:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalMachineLearningLanguage.g:6208:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalMachineLearningLanguage.g:6313:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalMachineLearningLanguage.g:6314:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalMachineLearningLanguage.g:6208:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalMachineLearningLanguage.g:6209:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalMachineLearningLanguage.g:6314:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalMachineLearningLanguage.g:6315:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
             }
-            // InternalMachineLearningLanguage.g:6210:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalMachineLearningLanguage.g:6210:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalMachineLearningLanguage.g:6316:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalMachineLearningLanguage.g:6316:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -20955,14 +21299,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6219:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6325:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6223:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6224:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6329:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6330:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
             pushFollow(FOLLOW_67);
             rule__LiteralTypeRule__Group__0__Impl();
@@ -20993,23 +21337,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6231:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6337:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6235:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6236:1: ( () )
+            // InternalMachineLearningLanguage.g:6341:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6342:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6236:1: ( () )
-            // InternalMachineLearningLanguage.g:6237:2: ()
+            // InternalMachineLearningLanguage.g:6342:1: ( () )
+            // InternalMachineLearningLanguage.g:6343:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6238:2: ()
-            // InternalMachineLearningLanguage.g:6238:3: 
+            // InternalMachineLearningLanguage.g:6344:2: ()
+            // InternalMachineLearningLanguage.g:6344:3: 
             {
             }
 
@@ -21034,14 +21378,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6246:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6352:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6250:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6251:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6356:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6357:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -21067,17 +21411,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6257:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalMachineLearningLanguage.g:6363:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6261:1: ( ( 'literal' ) )
-            // InternalMachineLearningLanguage.g:6262:1: ( 'literal' )
+            // InternalMachineLearningLanguage.g:6367:1: ( ( 'literal' ) )
+            // InternalMachineLearningLanguage.g:6368:1: ( 'literal' )
             {
-            // InternalMachineLearningLanguage.g:6262:1: ( 'literal' )
-            // InternalMachineLearningLanguage.g:6263:2: 'literal'
+            // InternalMachineLearningLanguage.g:6368:1: ( 'literal' )
+            // InternalMachineLearningLanguage.g:6369:2: 'literal'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
@@ -21108,14 +21452,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6273:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6379:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6277:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6278:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6383:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6384:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
             pushFollow(FOLLOW_68);
             rule__InstanceTypeRule__Group__0__Impl();
@@ -21146,23 +21490,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6285:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6391:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6289:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6290:1: ( () )
+            // InternalMachineLearningLanguage.g:6395:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6396:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6290:1: ( () )
-            // InternalMachineLearningLanguage.g:6291:2: ()
+            // InternalMachineLearningLanguage.g:6396:1: ( () )
+            // InternalMachineLearningLanguage.g:6397:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6292:2: ()
-            // InternalMachineLearningLanguage.g:6292:3: 
+            // InternalMachineLearningLanguage.g:6398:2: ()
+            // InternalMachineLearningLanguage.g:6398:3: 
             {
             }
 
@@ -21187,14 +21531,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6300:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalMachineLearningLanguage.g:6406:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6304:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalMachineLearningLanguage.g:6305:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalMachineLearningLanguage.g:6410:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalMachineLearningLanguage.g:6411:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_10);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -21225,17 +21569,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6312:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalMachineLearningLanguage.g:6418:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6316:1: ( ( 'instance' ) )
-            // InternalMachineLearningLanguage.g:6317:1: ( 'instance' )
+            // InternalMachineLearningLanguage.g:6422:1: ( ( 'instance' ) )
+            // InternalMachineLearningLanguage.g:6423:1: ( 'instance' )
             {
-            // InternalMachineLearningLanguage.g:6317:1: ( 'instance' )
-            // InternalMachineLearningLanguage.g:6318:2: 'instance'
+            // InternalMachineLearningLanguage.g:6423:1: ( 'instance' )
+            // InternalMachineLearningLanguage.g:6424:2: 'instance'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
@@ -21266,14 +21610,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalMachineLearningLanguage.g:6327:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalMachineLearningLanguage.g:6433:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6331:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalMachineLearningLanguage.g:6332:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalMachineLearningLanguage.g:6437:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalMachineLearningLanguage.g:6438:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
             pushFollow(FOLLOW_69);
             rule__InstanceTypeRule__Group__2__Impl();
@@ -21304,23 +21648,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalMachineLearningLanguage.g:6339:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalMachineLearningLanguage.g:6445:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6343:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalMachineLearningLanguage.g:6344:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:6449:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalMachineLearningLanguage.g:6450:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalMachineLearningLanguage.g:6344:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalMachineLearningLanguage.g:6345:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalMachineLearningLanguage.g:6450:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalMachineLearningLanguage.g:6451:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
             }
-            // InternalMachineLearningLanguage.g:6346:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalMachineLearningLanguage.g:6346:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalMachineLearningLanguage.g:6452:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalMachineLearningLanguage.g:6452:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -21355,14 +21699,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalMachineLearningLanguage.g:6354:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalMachineLearningLanguage.g:6460:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6358:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalMachineLearningLanguage.g:6359:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalMachineLearningLanguage.g:6464:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalMachineLearningLanguage.g:6465:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -21388,35 +21732,35 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalMachineLearningLanguage.g:6365:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalMachineLearningLanguage.g:6471:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6369:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalMachineLearningLanguage.g:6370:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalMachineLearningLanguage.g:6475:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalMachineLearningLanguage.g:6476:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalMachineLearningLanguage.g:6370:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalMachineLearningLanguage.g:6371:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalMachineLearningLanguage.g:6476:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalMachineLearningLanguage.g:6477:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
             }
-            // InternalMachineLearningLanguage.g:6372:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop48:
+            // InternalMachineLearningLanguage.g:6478:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop50:
             do {
-                int alt48=2;
-                int LA48_0 = input.LA(1);
+                int alt50=2;
+                int LA50_0 = input.LA(1);
 
-                if ( (LA48_0==85) ) {
-                    alt48=1;
+                if ( (LA50_0==85) ) {
+                    alt50=1;
                 }
 
 
-                switch (alt48) {
+                switch (alt50) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:6372:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalMachineLearningLanguage.g:6478:3: rule__InstanceTypeRule__Group_3__0
             	    {
             	    pushFollow(FOLLOW_70);
             	    rule__InstanceTypeRule__Group_3__0();
@@ -21428,7 +21772,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             	    break;
 
             	default :
-            	    break loop48;
+            	    break loop50;
                 }
             } while (true);
 
@@ -21457,14 +21801,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalMachineLearningLanguage.g:6381:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalMachineLearningLanguage.g:6487:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6385:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalMachineLearningLanguage.g:6386:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalMachineLearningLanguage.g:6491:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalMachineLearningLanguage.g:6492:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_10);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -21495,17 +21839,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalMachineLearningLanguage.g:6393:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalMachineLearningLanguage.g:6499:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6397:1: ( ( '|' ) )
-            // InternalMachineLearningLanguage.g:6398:1: ( '|' )
+            // InternalMachineLearningLanguage.g:6503:1: ( ( '|' ) )
+            // InternalMachineLearningLanguage.g:6504:1: ( '|' )
             {
-            // InternalMachineLearningLanguage.g:6398:1: ( '|' )
-            // InternalMachineLearningLanguage.g:6399:2: '|'
+            // InternalMachineLearningLanguage.g:6504:1: ( '|' )
+            // InternalMachineLearningLanguage.g:6505:2: '|'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
@@ -21536,14 +21880,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalMachineLearningLanguage.g:6408:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalMachineLearningLanguage.g:6514:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6412:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalMachineLearningLanguage.g:6413:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalMachineLearningLanguage.g:6518:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalMachineLearningLanguage.g:6519:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -21569,23 +21913,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalMachineLearningLanguage.g:6419:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalMachineLearningLanguage.g:6525:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6423:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalMachineLearningLanguage.g:6424:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalMachineLearningLanguage.g:6529:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalMachineLearningLanguage.g:6530:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalMachineLearningLanguage.g:6424:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalMachineLearningLanguage.g:6425:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalMachineLearningLanguage.g:6530:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalMachineLearningLanguage.g:6531:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
             }
-            // InternalMachineLearningLanguage.g:6426:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalMachineLearningLanguage.g:6426:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalMachineLearningLanguage.g:6532:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalMachineLearningLanguage.g:6532:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -21620,14 +21964,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6435:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6541:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6439:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6440:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6545:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6546:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
             pushFollow(FOLLOW_71);
             rule__StringTypeRule__Group__0__Impl();
@@ -21658,23 +22002,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6447:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6553:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6451:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6452:1: ( () )
+            // InternalMachineLearningLanguage.g:6557:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6558:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6452:1: ( () )
-            // InternalMachineLearningLanguage.g:6453:2: ()
+            // InternalMachineLearningLanguage.g:6558:1: ( () )
+            // InternalMachineLearningLanguage.g:6559:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6454:2: ()
-            // InternalMachineLearningLanguage.g:6454:3: 
+            // InternalMachineLearningLanguage.g:6560:2: ()
+            // InternalMachineLearningLanguage.g:6560:3: 
             {
             }
 
@@ -21699,14 +22043,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6462:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6568:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6466:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6467:2: rule__StringTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6572:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6573:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -21732,17 +22076,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6473:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalMachineLearningLanguage.g:6579:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6477:1: ( ( 'string' ) )
-            // InternalMachineLearningLanguage.g:6478:1: ( 'string' )
+            // InternalMachineLearningLanguage.g:6583:1: ( ( 'string' ) )
+            // InternalMachineLearningLanguage.g:6584:1: ( 'string' )
             {
-            // InternalMachineLearningLanguage.g:6478:1: ( 'string' )
-            // InternalMachineLearningLanguage.g:6479:2: 'string'
+            // InternalMachineLearningLanguage.g:6584:1: ( 'string' )
+            // InternalMachineLearningLanguage.g:6585:2: 'string'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
@@ -21773,14 +22117,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6489:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6595:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6493:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6494:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6599:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6600:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
             pushFollow(FOLLOW_72);
             rule__ExpressionTypeRule__Group__0__Impl();
@@ -21811,23 +22155,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6501:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6607:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6505:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6506:1: ( () )
+            // InternalMachineLearningLanguage.g:6611:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6612:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6506:1: ( () )
-            // InternalMachineLearningLanguage.g:6507:2: ()
+            // InternalMachineLearningLanguage.g:6612:1: ( () )
+            // InternalMachineLearningLanguage.g:6613:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6508:2: ()
-            // InternalMachineLearningLanguage.g:6508:3: 
+            // InternalMachineLearningLanguage.g:6614:2: ()
+            // InternalMachineLearningLanguage.g:6614:3: 
             {
             }
 
@@ -21852,14 +22196,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6516:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6622:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6520:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6521:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6626:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6627:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -21885,17 +22229,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6527:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalMachineLearningLanguage.g:6633:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6531:1: ( ( 'expression' ) )
-            // InternalMachineLearningLanguage.g:6532:1: ( 'expression' )
+            // InternalMachineLearningLanguage.g:6637:1: ( ( 'expression' ) )
+            // InternalMachineLearningLanguage.g:6638:1: ( 'expression' )
             {
-            // InternalMachineLearningLanguage.g:6532:1: ( 'expression' )
-            // InternalMachineLearningLanguage.g:6533:2: 'expression'
+            // InternalMachineLearningLanguage.g:6638:1: ( 'expression' )
+            // InternalMachineLearningLanguage.g:6639:2: 'expression'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
@@ -21926,14 +22270,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6543:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6649:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6547:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6548:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6653:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6654:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
             pushFollow(FOLLOW_73);
             rule__IntTypeRule__Group__0__Impl();
@@ -21964,23 +22308,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6555:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6661:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6559:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6560:1: ( () )
+            // InternalMachineLearningLanguage.g:6665:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6666:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6560:1: ( () )
-            // InternalMachineLearningLanguage.g:6561:2: ()
+            // InternalMachineLearningLanguage.g:6666:1: ( () )
+            // InternalMachineLearningLanguage.g:6667:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6562:2: ()
-            // InternalMachineLearningLanguage.g:6562:3: 
+            // InternalMachineLearningLanguage.g:6668:2: ()
+            // InternalMachineLearningLanguage.g:6668:3: 
             {
             }
 
@@ -22005,14 +22349,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6570:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6676:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6574:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6575:2: rule__IntTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6680:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6681:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -22038,17 +22382,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6581:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalMachineLearningLanguage.g:6687:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6585:1: ( ( 'int' ) )
-            // InternalMachineLearningLanguage.g:6586:1: ( 'int' )
+            // InternalMachineLearningLanguage.g:6691:1: ( ( 'int' ) )
+            // InternalMachineLearningLanguage.g:6692:1: ( 'int' )
             {
-            // InternalMachineLearningLanguage.g:6586:1: ( 'int' )
-            // InternalMachineLearningLanguage.g:6587:2: 'int'
+            // InternalMachineLearningLanguage.g:6692:1: ( 'int' )
+            // InternalMachineLearningLanguage.g:6693:2: 'int'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
@@ -22079,14 +22423,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6597:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6703:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6601:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6602:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6707:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6708:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
             pushFollow(FOLLOW_74);
             rule__FloatTypeRule__Group__0__Impl();
@@ -22117,23 +22461,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6609:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6715:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6613:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6614:1: ( () )
+            // InternalMachineLearningLanguage.g:6719:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6720:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6614:1: ( () )
-            // InternalMachineLearningLanguage.g:6615:2: ()
+            // InternalMachineLearningLanguage.g:6720:1: ( () )
+            // InternalMachineLearningLanguage.g:6721:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6616:2: ()
-            // InternalMachineLearningLanguage.g:6616:3: 
+            // InternalMachineLearningLanguage.g:6722:2: ()
+            // InternalMachineLearningLanguage.g:6722:3: 
             {
             }
 
@@ -22158,14 +22502,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6624:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6730:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6628:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6629:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6734:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6735:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -22191,17 +22535,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6635:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalMachineLearningLanguage.g:6741:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6639:1: ( ( 'float' ) )
-            // InternalMachineLearningLanguage.g:6640:1: ( 'float' )
+            // InternalMachineLearningLanguage.g:6745:1: ( ( 'float' ) )
+            // InternalMachineLearningLanguage.g:6746:1: ( 'float' )
             {
-            // InternalMachineLearningLanguage.g:6640:1: ( 'float' )
-            // InternalMachineLearningLanguage.g:6641:2: 'float'
+            // InternalMachineLearningLanguage.g:6746:1: ( 'float' )
+            // InternalMachineLearningLanguage.g:6747:2: 'float'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
@@ -22232,14 +22576,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6651:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6757:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6655:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6656:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6761:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6762:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
             pushFollow(FOLLOW_75);
             rule__BooleanTypeRule__Group__0__Impl();
@@ -22270,23 +22614,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6663:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6769:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6667:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6668:1: ( () )
+            // InternalMachineLearningLanguage.g:6773:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6774:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6668:1: ( () )
-            // InternalMachineLearningLanguage.g:6669:2: ()
+            // InternalMachineLearningLanguage.g:6774:1: ( () )
+            // InternalMachineLearningLanguage.g:6775:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6670:2: ()
-            // InternalMachineLearningLanguage.g:6670:3: 
+            // InternalMachineLearningLanguage.g:6776:2: ()
+            // InternalMachineLearningLanguage.g:6776:3: 
             {
             }
 
@@ -22311,14 +22655,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6678:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6784:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6682:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6683:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6788:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6789:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -22344,17 +22688,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6689:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalMachineLearningLanguage.g:6795:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6693:1: ( ( 'boolean' ) )
-            // InternalMachineLearningLanguage.g:6694:1: ( 'boolean' )
+            // InternalMachineLearningLanguage.g:6799:1: ( ( 'boolean' ) )
+            // InternalMachineLearningLanguage.g:6800:1: ( 'boolean' )
             {
-            // InternalMachineLearningLanguage.g:6694:1: ( 'boolean' )
-            // InternalMachineLearningLanguage.g:6695:2: 'boolean'
+            // InternalMachineLearningLanguage.g:6800:1: ( 'boolean' )
+            // InternalMachineLearningLanguage.g:6801:2: 'boolean'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
@@ -22385,14 +22729,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6705:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6811:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6709:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6710:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6815:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6816:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
             pushFollow(FOLLOW_76);
             rule__VoidTypeRule__Group__0__Impl();
@@ -22423,23 +22767,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6717:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6823:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6721:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6722:1: ( () )
+            // InternalMachineLearningLanguage.g:6827:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6828:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6722:1: ( () )
-            // InternalMachineLearningLanguage.g:6723:2: ()
+            // InternalMachineLearningLanguage.g:6828:1: ( () )
+            // InternalMachineLearningLanguage.g:6829:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6724:2: ()
-            // InternalMachineLearningLanguage.g:6724:3: 
+            // InternalMachineLearningLanguage.g:6830:2: ()
+            // InternalMachineLearningLanguage.g:6830:3: 
             {
             }
 
@@ -22464,14 +22808,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6732:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6838:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6736:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6737:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6842:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6843:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -22497,17 +22841,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6743:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalMachineLearningLanguage.g:6849:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6747:1: ( ( 'void' ) )
-            // InternalMachineLearningLanguage.g:6748:1: ( 'void' )
+            // InternalMachineLearningLanguage.g:6853:1: ( ( 'void' ) )
+            // InternalMachineLearningLanguage.g:6854:1: ( 'void' )
             {
-            // InternalMachineLearningLanguage.g:6748:1: ( 'void' )
-            // InternalMachineLearningLanguage.g:6749:2: 'void'
+            // InternalMachineLearningLanguage.g:6854:1: ( 'void' )
+            // InternalMachineLearningLanguage.g:6855:2: 'void'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
@@ -22538,14 +22882,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6759:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6865:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6763:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6764:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6869:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6870:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__DataTypeRule__Group__0__Impl();
@@ -22576,23 +22920,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6771:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalMachineLearningLanguage.g:6877:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6775:1: ( ( () ) )
-            // InternalMachineLearningLanguage.g:6776:1: ( () )
+            // InternalMachineLearningLanguage.g:6881:1: ( ( () ) )
+            // InternalMachineLearningLanguage.g:6882:1: ( () )
             {
-            // InternalMachineLearningLanguage.g:6776:1: ( () )
-            // InternalMachineLearningLanguage.g:6777:2: ()
+            // InternalMachineLearningLanguage.g:6882:1: ( () )
+            // InternalMachineLearningLanguage.g:6883:2: ()
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
             }
-            // InternalMachineLearningLanguage.g:6778:2: ()
-            // InternalMachineLearningLanguage.g:6778:3: 
+            // InternalMachineLearningLanguage.g:6884:2: ()
+            // InternalMachineLearningLanguage.g:6884:3: 
             {
             }
 
@@ -22617,14 +22961,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6786:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6892:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6790:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6791:2: rule__DataTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6896:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6897:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -22650,17 +22994,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6797:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalMachineLearningLanguage.g:6903:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6801:1: ( ( 'data' ) )
-            // InternalMachineLearningLanguage.g:6802:1: ( 'data' )
+            // InternalMachineLearningLanguage.g:6907:1: ( ( 'data' ) )
+            // InternalMachineLearningLanguage.g:6908:1: ( 'data' )
             {
-            // InternalMachineLearningLanguage.g:6802:1: ( 'data' )
-            // InternalMachineLearningLanguage.g:6803:2: 'data'
+            // InternalMachineLearningLanguage.g:6908:1: ( 'data' )
+            // InternalMachineLearningLanguage.g:6909:2: 'data'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
@@ -22691,14 +23035,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalMachineLearningLanguage.g:6813:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6919:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6817:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6818:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalMachineLearningLanguage.g:6923:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6924:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
             pushFollow(FOLLOW_65);
             rule__ArrayTypeRule__Group__0__Impl();
@@ -22729,17 +23073,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6825:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalMachineLearningLanguage.g:6931:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6829:1: ( ( 'array' ) )
-            // InternalMachineLearningLanguage.g:6830:1: ( 'array' )
+            // InternalMachineLearningLanguage.g:6935:1: ( ( 'array' ) )
+            // InternalMachineLearningLanguage.g:6936:1: ( 'array' )
             {
-            // InternalMachineLearningLanguage.g:6830:1: ( 'array' )
-            // InternalMachineLearningLanguage.g:6831:2: 'array'
+            // InternalMachineLearningLanguage.g:6936:1: ( 'array' )
+            // InternalMachineLearningLanguage.g:6937:2: 'array'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
@@ -22770,14 +23114,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalMachineLearningLanguage.g:6840:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:6946:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6844:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6845:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:6950:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:6951:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -22803,23 +23147,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6851:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:6957:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6855:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:6856:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:6961:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:6962:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:6856:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:6857:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalMachineLearningLanguage.g:6962:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:6963:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:6858:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalMachineLearningLanguage.g:6858:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalMachineLearningLanguage.g:6964:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalMachineLearningLanguage.g:6964:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -22854,14 +23198,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalMachineLearningLanguage.g:6867:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalMachineLearningLanguage.g:6973:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6871:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalMachineLearningLanguage.g:6872:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalMachineLearningLanguage.g:6977:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalMachineLearningLanguage.g:6978:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__ParameterRule__Group__0__Impl();
@@ -22892,23 +23236,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6879:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalMachineLearningLanguage.g:6985:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6883:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalMachineLearningLanguage.g:6884:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:6989:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalMachineLearningLanguage.g:6990:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalMachineLearningLanguage.g:6884:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalMachineLearningLanguage.g:6885:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalMachineLearningLanguage.g:6990:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalMachineLearningLanguage.g:6991:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
             }
-            // InternalMachineLearningLanguage.g:6886:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalMachineLearningLanguage.g:6886:3: rule__ParameterRule__TypeAssignment_0
+            // InternalMachineLearningLanguage.g:6992:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalMachineLearningLanguage.g:6992:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -22943,14 +23287,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalMachineLearningLanguage.g:6894:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:7000:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6898:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6899:2: rule__ParameterRule__Group__1__Impl
+            // InternalMachineLearningLanguage.g:7004:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:7005:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -22976,23 +23320,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6905:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalMachineLearningLanguage.g:7011:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6909:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalMachineLearningLanguage.g:6910:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:7015:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalMachineLearningLanguage.g:7016:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalMachineLearningLanguage.g:6910:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalMachineLearningLanguage.g:6911:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:7016:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalMachineLearningLanguage.g:7017:2: ( rule__ParameterRule__NameAssignment_1 )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
             }
-            // InternalMachineLearningLanguage.g:6912:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalMachineLearningLanguage.g:6912:3: rule__ParameterRule__NameAssignment_1
+            // InternalMachineLearningLanguage.g:7018:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalMachineLearningLanguage.g:7018:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -23027,16 +23371,16 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalMachineLearningLanguage.g:6921:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalMachineLearningLanguage.g:7027: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 {
-            // InternalMachineLearningLanguage.g:6925:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalMachineLearningLanguage.g:6926:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalMachineLearningLanguage.g:7031:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalMachineLearningLanguage.g:7032:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_77);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -23065,17 +23409,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalMachineLearningLanguage.g:6933:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalMachineLearningLanguage.g:7039:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6937:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:6938:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7043:1: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7044:1: ( ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:6938:1: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:6939:2: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7044:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7045:2: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
@@ -23110,14 +23454,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalMachineLearningLanguage.g:6948:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalMachineLearningLanguage.g:7054:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6952:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalMachineLearningLanguage.g:6953:2: rule__QualifiedName__Group__1__Impl
+            // InternalMachineLearningLanguage.g:7058:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalMachineLearningLanguage.g:7059:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -23143,37 +23487,37 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalMachineLearningLanguage.g:6959:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalMachineLearningLanguage.g:7065: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 {
-            // InternalMachineLearningLanguage.g:6963:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalMachineLearningLanguage.g:6964:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:7069:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalMachineLearningLanguage.g:7070:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalMachineLearningLanguage.g:6964:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalMachineLearningLanguage.g:6965:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalMachineLearningLanguage.g:7070:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalMachineLearningLanguage.g:7071:2: ( rule__QualifiedName__Group_1__0 )*
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
             }
-            // InternalMachineLearningLanguage.g:6966:2: ( rule__QualifiedName__Group_1__0 )*
-            loop49:
+            // InternalMachineLearningLanguage.g:7072:2: ( rule__QualifiedName__Group_1__0 )*
+            loop51:
             do {
-                int alt49=2;
-                int LA49_0 = input.LA(1);
+                int alt51=2;
+                int LA51_0 = input.LA(1);
 
-                if ( (LA49_0==74) ) {
-                    alt49=1;
+                if ( (LA51_0==93) ) {
+                    alt51=1;
                 }
 
 
-                switch (alt49) {
+                switch (alt51) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:6966:3: rule__QualifiedName__Group_1__0
+            	    // InternalMachineLearningLanguage.g:7072:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_45);
+            	    pushFollow(FOLLOW_78);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -23183,7 +23527,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
             	    break;
 
             	default :
-            	    break loop49;
+            	    break loop51;
                 }
             } while (true);
 
@@ -23212,14 +23556,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalMachineLearningLanguage.g:6975:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalMachineLearningLanguage.g:7081: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 {
-            // InternalMachineLearningLanguage.g:6979:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalMachineLearningLanguage.g:6980:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalMachineLearningLanguage.g:7085:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalMachineLearningLanguage.g:7086:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_10);
             rule__QualifiedName__Group_1__0__Impl();
@@ -23250,22 +23594,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalMachineLearningLanguage.g:6987:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalMachineLearningLanguage.g:7093:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:6991:1: ( ( '.' ) )
-            // InternalMachineLearningLanguage.g:6992:1: ( '.' )
+            // InternalMachineLearningLanguage.g:7097:1: ( ( '.' ) )
+            // InternalMachineLearningLanguage.g:7098:1: ( '.' )
             {
-            // InternalMachineLearningLanguage.g:6992:1: ( '.' )
-            // InternalMachineLearningLanguage.g:6993:2: '.'
+            // InternalMachineLearningLanguage.g:7098:1: ( '.' )
+            // InternalMachineLearningLanguage.g:7099:2: '.'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
-            match(input,74,FOLLOW_2); if (state.failed) return ;
+            match(input,93,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
             }
@@ -23291,14 +23635,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalMachineLearningLanguage.g:7002:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalMachineLearningLanguage.g:7108: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 {
-            // InternalMachineLearningLanguage.g:7006:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalMachineLearningLanguage.g:7007:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalMachineLearningLanguage.g:7112:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalMachineLearningLanguage.g:7113:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -23324,17 +23668,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalMachineLearningLanguage.g:7013:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalMachineLearningLanguage.g:7119:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7017:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7018:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7123:1: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7124:1: ( ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:7018:1: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7019:2: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7124:1: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7125:2: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
@@ -23369,17 +23713,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__UsesAssignment_0"
-    // InternalMachineLearningLanguage.g:7029:1: rule__MachineLearningConfigurationRule__UsesAssignment_0 : ( ruleUseRule ) ;
+    // InternalMachineLearningLanguage.g:7135:1: rule__MachineLearningConfigurationRule__UsesAssignment_0 : ( ruleUseRule ) ;
     public final void rule__MachineLearningConfigurationRule__UsesAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7033:1: ( ( ruleUseRule ) )
-            // InternalMachineLearningLanguage.g:7034:2: ( ruleUseRule )
+            // InternalMachineLearningLanguage.g:7139:1: ( ( ruleUseRule ) )
+            // InternalMachineLearningLanguage.g:7140:2: ( ruleUseRule )
             {
-            // InternalMachineLearningLanguage.g:7034:2: ( ruleUseRule )
-            // InternalMachineLearningLanguage.g:7035:3: ruleUseRule
+            // InternalMachineLearningLanguage.g:7140:2: ( ruleUseRule )
+            // InternalMachineLearningLanguage.g:7141:3: ruleUseRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getUsesUseRuleParserRuleCall_0_0()); 
@@ -23414,17 +23758,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__DefinitionsAssignment_1"
-    // InternalMachineLearningLanguage.g:7044:1: rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 : ( ruleSurrogateDefinitionRule ) ;
+    // InternalMachineLearningLanguage.g:7150:1: rule__MachineLearningConfigurationRule__DefinitionsAssignment_1 : ( ruleSurrogateDefinitionRule ) ;
     public final void rule__MachineLearningConfigurationRule__DefinitionsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7048:1: ( ( ruleSurrogateDefinitionRule ) )
-            // InternalMachineLearningLanguage.g:7049:2: ( ruleSurrogateDefinitionRule )
+            // InternalMachineLearningLanguage.g:7154:1: ( ( ruleSurrogateDefinitionRule ) )
+            // InternalMachineLearningLanguage.g:7155:2: ( ruleSurrogateDefinitionRule )
             {
-            // InternalMachineLearningLanguage.g:7049:2: ( ruleSurrogateDefinitionRule )
-            // InternalMachineLearningLanguage.g:7050:3: ruleSurrogateDefinitionRule
+            // InternalMachineLearningLanguage.g:7155:2: ( ruleSurrogateDefinitionRule )
+            // InternalMachineLearningLanguage.g:7156:3: ruleSurrogateDefinitionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getDefinitionsSurrogateDefinitionRuleParserRuleCall_1_0()); 
@@ -23459,17 +23803,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MachineLearningConfigurationRule__StatementsAssignment_2"
-    // InternalMachineLearningLanguage.g:7059:1: rule__MachineLearningConfigurationRule__StatementsAssignment_2 : ( ruleStatementRule ) ;
+    // InternalMachineLearningLanguage.g:7165:1: rule__MachineLearningConfigurationRule__StatementsAssignment_2 : ( ruleStatementRule ) ;
     public final void rule__MachineLearningConfigurationRule__StatementsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7063:1: ( ( ruleStatementRule ) )
-            // InternalMachineLearningLanguage.g:7064:2: ( ruleStatementRule )
+            // InternalMachineLearningLanguage.g:7169:1: ( ( ruleStatementRule ) )
+            // InternalMachineLearningLanguage.g:7170:2: ( ruleStatementRule )
             {
-            // InternalMachineLearningLanguage.g:7064:2: ( ruleStatementRule )
-            // InternalMachineLearningLanguage.g:7065:3: ruleStatementRule
+            // InternalMachineLearningLanguage.g:7170:2: ( ruleStatementRule )
+            // InternalMachineLearningLanguage.g:7171:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMachineLearningConfigurationRuleAccess().getStatementsStatementRuleParserRuleCall_2_0()); 
@@ -23504,17 +23848,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UseRule__ImportURIAssignment_1"
-    // InternalMachineLearningLanguage.g:7074:1: rule__UseRule__ImportURIAssignment_1 : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:7180:1: rule__UseRule__ImportURIAssignment_1 : ( RULE_STRING ) ;
     public final void rule__UseRule__ImportURIAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7078:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:7079:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7184:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:7185:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:7079:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:7080:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:7185:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7186:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUseRuleAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
@@ -23545,17 +23889,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__NameAssignment_1"
-    // InternalMachineLearningLanguage.g:7089:1: rule__SurrogateDefinitionRule__NameAssignment_1 : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:7195:1: rule__SurrogateDefinitionRule__NameAssignment_1 : ( RULE_STRING ) ;
     public final void rule__SurrogateDefinitionRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7093:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:7094:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7199:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:7200:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:7094:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:7095:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:7200:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7201:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getNameSTRINGTerminalRuleCall_1_0()); 
@@ -23586,23 +23930,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__InputsAssignment_3"
-    // InternalMachineLearningLanguage.g:7104:1: rule__SurrogateDefinitionRule__InputsAssignment_3 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7210:1: rule__SurrogateDefinitionRule__InputsAssignment_3 : ( ( ruleStringOrId ) ) ;
     public final void rule__SurrogateDefinitionRule__InputsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7108:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7109:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7214:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7215:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7109:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7110:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7215:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7216:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsDataDescriptionCrossReference_3_0()); 
             }
-            // InternalMachineLearningLanguage.g:7111:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7112:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7217:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7218:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsDataDescriptionStringOrIdParserRuleCall_3_0_1()); 
@@ -23643,23 +23987,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__InputsAssignment_4_1"
-    // InternalMachineLearningLanguage.g:7123:1: rule__SurrogateDefinitionRule__InputsAssignment_4_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7229:1: rule__SurrogateDefinitionRule__InputsAssignment_4_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__SurrogateDefinitionRule__InputsAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7127:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7128:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7233:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7234:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7128:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7129:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7234:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7235:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsDataDescriptionCrossReference_4_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7130:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7131:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7236:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7237:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getInputsDataDescriptionStringOrIdParserRuleCall_4_1_0_1()); 
@@ -23700,23 +24044,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__OutputsAssignment_6"
-    // InternalMachineLearningLanguage.g:7142:1: rule__SurrogateDefinitionRule__OutputsAssignment_6 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7248:1: rule__SurrogateDefinitionRule__OutputsAssignment_6 : ( ( ruleStringOrId ) ) ;
     public final void rule__SurrogateDefinitionRule__OutputsAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7146:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7147:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7252:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7253:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7147:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7148:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7253:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7254:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsDataDescriptionCrossReference_6_0()); 
             }
-            // InternalMachineLearningLanguage.g:7149:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7150:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7255:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7256:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsDataDescriptionStringOrIdParserRuleCall_6_0_1()); 
@@ -23757,23 +24101,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__OutputsAssignment_7_1"
-    // InternalMachineLearningLanguage.g:7161:1: rule__SurrogateDefinitionRule__OutputsAssignment_7_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7267:1: rule__SurrogateDefinitionRule__OutputsAssignment_7_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__SurrogateDefinitionRule__OutputsAssignment_7_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7165:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7166:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7271:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7272:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7166:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7167:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7272:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7273:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsDataDescriptionCrossReference_7_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7168:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7169:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7274:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7275:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getOutputsDataDescriptionStringOrIdParserRuleCall_7_1_0_1()); 
@@ -23814,17 +24158,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateDefinitionRule__LayersAssignment_9"
-    // InternalMachineLearningLanguage.g:7180:1: rule__SurrogateDefinitionRule__LayersAssignment_9 : ( ruleSurrogateLayerDefinitionRule ) ;
+    // InternalMachineLearningLanguage.g:7286:1: rule__SurrogateDefinitionRule__LayersAssignment_9 : ( ruleSurrogateLayerDefinitionRule ) ;
     public final void rule__SurrogateDefinitionRule__LayersAssignment_9() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7184:1: ( ( ruleSurrogateLayerDefinitionRule ) )
-            // InternalMachineLearningLanguage.g:7185:2: ( ruleSurrogateLayerDefinitionRule )
+            // InternalMachineLearningLanguage.g:7290:1: ( ( ruleSurrogateLayerDefinitionRule ) )
+            // InternalMachineLearningLanguage.g:7291:2: ( ruleSurrogateLayerDefinitionRule )
             {
-            // InternalMachineLearningLanguage.g:7185:2: ( ruleSurrogateLayerDefinitionRule )
-            // InternalMachineLearningLanguage.g:7186:3: ruleSurrogateLayerDefinitionRule
+            // InternalMachineLearningLanguage.g:7291:2: ( ruleSurrogateLayerDefinitionRule )
+            // InternalMachineLearningLanguage.g:7292:3: ruleSurrogateLayerDefinitionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateDefinitionRuleAccess().getLayersSurrogateLayerDefinitionRuleParserRuleCall_9_0()); 
@@ -23859,17 +24203,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__NameAssignment_1"
-    // InternalMachineLearningLanguage.g:7195:1: rule__SurrogateLayerDefinitionRule__NameAssignment_1 : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:7301:1: rule__SurrogateLayerDefinitionRule__NameAssignment_1 : ( RULE_STRING ) ;
     public final void rule__SurrogateLayerDefinitionRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7199:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:7200:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7305:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:7306:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:7200:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:7201:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:7306:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7307:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getNameSTRINGTerminalRuleCall_1_0()); 
@@ -23900,17 +24244,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3"
-    // InternalMachineLearningLanguage.g:7210:1: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 : ( rulePartialSurrogateFunctionDefinitionRule ) ;
+    // InternalMachineLearningLanguage.g:7316:1: rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3 : ( rulePartialSurrogateFunctionDefinitionRule ) ;
     public final void rule__SurrogateLayerDefinitionRule__FunctionsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7214:1: ( ( rulePartialSurrogateFunctionDefinitionRule ) )
-            // InternalMachineLearningLanguage.g:7215:2: ( rulePartialSurrogateFunctionDefinitionRule )
+            // InternalMachineLearningLanguage.g:7320:1: ( ( rulePartialSurrogateFunctionDefinitionRule ) )
+            // InternalMachineLearningLanguage.g:7321:2: ( rulePartialSurrogateFunctionDefinitionRule )
             {
-            // InternalMachineLearningLanguage.g:7215:2: ( rulePartialSurrogateFunctionDefinitionRule )
-            // InternalMachineLearningLanguage.g:7216:3: rulePartialSurrogateFunctionDefinitionRule
+            // InternalMachineLearningLanguage.g:7321:2: ( rulePartialSurrogateFunctionDefinitionRule )
+            // InternalMachineLearningLanguage.g:7322:3: rulePartialSurrogateFunctionDefinitionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getSurrogateLayerDefinitionRuleAccess().getFunctionsPartialSurrogateFunctionDefinitionRuleParserRuleCall_3_0()); 
@@ -23945,23 +24289,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1"
-    // InternalMachineLearningLanguage.g:7225:1: rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7331:1: rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7229:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7230:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7335:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7336:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7230:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7231:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7336:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7337:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getNameTypeDefinitionCrossReference_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7232:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7233:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7338:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7339:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getNameTypeDefinitionStringOrIdParserRuleCall_1_0_1()); 
@@ -24002,23 +24346,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3"
-    // InternalMachineLearningLanguage.g:7244:1: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7350:1: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3 : ( ( ruleStringOrId ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7248:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7249:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7354:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7355:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7249:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7250:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7355:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7356:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsDataDescriptionCrossReference_3_0()); 
             }
-            // InternalMachineLearningLanguage.g:7251:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7252:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7357:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7358:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsDataDescriptionStringOrIdParserRuleCall_3_0_1()); 
@@ -24059,23 +24403,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1"
-    // InternalMachineLearningLanguage.g:7263:1: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7369:1: rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__InputsAssignment_4_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7267:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7268:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7373:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7374:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7268:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7269:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7374:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7375:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsDataDescriptionCrossReference_4_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7270:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7271:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7376:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7377:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getInputsDataDescriptionStringOrIdParserRuleCall_4_1_0_1()); 
@@ -24116,23 +24460,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6"
-    // InternalMachineLearningLanguage.g:7282:1: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7388:1: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6 : ( ( ruleStringOrId ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7286:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7287:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7392:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7393:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7287:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7288:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7393:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7394:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsDataDescriptionCrossReference_6_0()); 
             }
-            // InternalMachineLearningLanguage.g:7289:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7290:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7395:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7396:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsDataDescriptionStringOrIdParserRuleCall_6_0_1()); 
@@ -24173,23 +24517,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1"
-    // InternalMachineLearningLanguage.g:7301:1: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7407:1: rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__OutputsAssignment_7_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7305:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7306:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7411:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7412:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7306:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7307:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7412:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7413:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsDataDescriptionCrossReference_7_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7308:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7309:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7414:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7415:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getOutputsDataDescriptionStringOrIdParserRuleCall_7_1_0_1()); 
@@ -24230,17 +24574,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2"
-    // InternalMachineLearningLanguage.g:7320:1: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 : ( ruleAttributeRule ) ;
+    // InternalMachineLearningLanguage.g:7426:1: rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2 : ( ruleAttributeRule ) ;
     public final void rule__PartialSurrogateFunctionDefinitionRule__ParametersAssignment_8_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7324:1: ( ( ruleAttributeRule ) )
-            // InternalMachineLearningLanguage.g:7325:2: ( ruleAttributeRule )
+            // InternalMachineLearningLanguage.g:7430:1: ( ( ruleAttributeRule ) )
+            // InternalMachineLearningLanguage.g:7431:2: ( ruleAttributeRule )
             {
-            // InternalMachineLearningLanguage.g:7325:2: ( ruleAttributeRule )
-            // InternalMachineLearningLanguage.g:7326:3: ruleAttributeRule
+            // InternalMachineLearningLanguage.g:7431:2: ( ruleAttributeRule )
+            // InternalMachineLearningLanguage.g:7432:3: ruleAttributeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialSurrogateFunctionDefinitionRuleAccess().getParametersAttributeRuleParserRuleCall_8_2_0()); 
@@ -24275,23 +24619,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__SurrogateAssignment_1"
-    // InternalMachineLearningLanguage.g:7335:1: rule__PredictStatementRule__SurrogateAssignment_1 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7441:1: rule__PredictStatementRule__SurrogateAssignment_1 : ( ( ruleStringOrId ) ) ;
     public final void rule__PredictStatementRule__SurrogateAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7339:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7340:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7445:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7446:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7340:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7341:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7446:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7447:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getSurrogateSurrogateDefinitionCrossReference_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:7342:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7343:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7448:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7449:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getSurrogateSurrogateDefinitionStringOrIdParserRuleCall_1_0_1()); 
@@ -24332,17 +24676,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__TrainingDataAssignment_3"
-    // InternalMachineLearningLanguage.g:7354:1: rule__PredictStatementRule__TrainingDataAssignment_3 : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:7460:1: rule__PredictStatementRule__TrainingDataAssignment_3 : ( RULE_STRING ) ;
     public final void rule__PredictStatementRule__TrainingDataAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7358:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:7359:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7464:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:7465:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:7359:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:7360:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:7465:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7466:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getTrainingDataSTRINGTerminalRuleCall_3_0()); 
@@ -24373,17 +24717,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__StatementsAssignment_4_2"
-    // InternalMachineLearningLanguage.g:7369:1: rule__PredictStatementRule__StatementsAssignment_4_2 : ( ruleCallStatementRule ) ;
+    // InternalMachineLearningLanguage.g:7475:1: rule__PredictStatementRule__StatementsAssignment_4_2 : ( ruleCallStatementRule ) ;
     public final void rule__PredictStatementRule__StatementsAssignment_4_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7373:1: ( ( ruleCallStatementRule ) )
-            // InternalMachineLearningLanguage.g:7374:2: ( ruleCallStatementRule )
+            // InternalMachineLearningLanguage.g:7479:1: ( ( ruleCallStatementRule ) )
+            // InternalMachineLearningLanguage.g:7480:2: ( ruleCallStatementRule )
             {
-            // InternalMachineLearningLanguage.g:7374:2: ( ruleCallStatementRule )
-            // InternalMachineLearningLanguage.g:7375:3: ruleCallStatementRule
+            // InternalMachineLearningLanguage.g:7480:2: ( ruleCallStatementRule )
+            // InternalMachineLearningLanguage.g:7481:3: ruleCallStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getStatementsCallStatementRuleParserRuleCall_4_2_0()); 
@@ -24418,17 +24762,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PredictStatementRule__ModelFilenameAssignment_8"
-    // InternalMachineLearningLanguage.g:7384:1: rule__PredictStatementRule__ModelFilenameAssignment_8 : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:7490:1: rule__PredictStatementRule__ModelFilenameAssignment_8 : ( RULE_STRING ) ;
     public final void rule__PredictStatementRule__ModelFilenameAssignment_8() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7388:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:7389:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7494:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:7495:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:7389:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:7390:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:7495:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:7496:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPredictStatementRuleAccess().getModelFilenameSTRINGTerminalRuleCall_8_0()); 
@@ -24459,17 +24803,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__NameAssignment_1"
-    // InternalMachineLearningLanguage.g:7399:1: rule__ForStatementRule__NameAssignment_1 : ( RULE_ID ) ;
+    // InternalMachineLearningLanguage.g:7505:1: rule__ForStatementRule__NameAssignment_1 : ( RULE_ID ) ;
     public final void rule__ForStatementRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7403:1: ( ( RULE_ID ) )
-            // InternalMachineLearningLanguage.g:7404:2: ( RULE_ID )
+            // InternalMachineLearningLanguage.g:7509:1: ( ( RULE_ID ) )
+            // InternalMachineLearningLanguage.g:7510:2: ( RULE_ID )
             {
-            // InternalMachineLearningLanguage.g:7404:2: ( RULE_ID )
-            // InternalMachineLearningLanguage.g:7405:3: RULE_ID
+            // InternalMachineLearningLanguage.g:7510:2: ( RULE_ID )
+            // InternalMachineLearningLanguage.g:7511:3: RULE_ID
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getNameIDTerminalRuleCall_1_0()); 
@@ -24500,17 +24844,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__RangeAssignment_3"
-    // InternalMachineLearningLanguage.g:7414:1: rule__ForStatementRule__RangeAssignment_3 : ( ruleRangeRule ) ;
+    // InternalMachineLearningLanguage.g:7520:1: rule__ForStatementRule__RangeAssignment_3 : ( ruleRangeRule ) ;
     public final void rule__ForStatementRule__RangeAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7418:1: ( ( ruleRangeRule ) )
-            // InternalMachineLearningLanguage.g:7419:2: ( ruleRangeRule )
+            // InternalMachineLearningLanguage.g:7524:1: ( ( ruleRangeRule ) )
+            // InternalMachineLearningLanguage.g:7525:2: ( ruleRangeRule )
             {
-            // InternalMachineLearningLanguage.g:7419:2: ( ruleRangeRule )
-            // InternalMachineLearningLanguage.g:7420:3: ruleRangeRule
+            // InternalMachineLearningLanguage.g:7525:2: ( ruleRangeRule )
+            // InternalMachineLearningLanguage.g:7526:3: ruleRangeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getRangeRangeRuleParserRuleCall_3_0()); 
@@ -24545,17 +24889,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ForStatementRule__StatementsAssignment_5"
-    // InternalMachineLearningLanguage.g:7429:1: rule__ForStatementRule__StatementsAssignment_5 : ( ruleStatementRule ) ;
+    // InternalMachineLearningLanguage.g:7535:1: rule__ForStatementRule__StatementsAssignment_5 : ( ruleStatementRule ) ;
     public final void rule__ForStatementRule__StatementsAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7433:1: ( ( ruleStatementRule ) )
-            // InternalMachineLearningLanguage.g:7434:2: ( ruleStatementRule )
+            // InternalMachineLearningLanguage.g:7539:1: ( ( ruleStatementRule ) )
+            // InternalMachineLearningLanguage.g:7540:2: ( ruleStatementRule )
             {
-            // InternalMachineLearningLanguage.g:7434:2: ( ruleStatementRule )
-            // InternalMachineLearningLanguage.g:7435:3: ruleStatementRule
+            // InternalMachineLearningLanguage.g:7540:2: ( ruleStatementRule )
+            // InternalMachineLearningLanguage.g:7541:3: ruleStatementRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getForStatementRuleAccess().getStatementsStatementRuleParserRuleCall_5_0()); 
@@ -24590,17 +24934,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__StartAssignment_1"
-    // InternalMachineLearningLanguage.g:7444:1: rule__CounterRangeRule__StartAssignment_1 : ( RULE_INT ) ;
+    // InternalMachineLearningLanguage.g:7550:1: rule__CounterRangeRule__StartAssignment_1 : ( RULE_INT ) ;
     public final void rule__CounterRangeRule__StartAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7448:1: ( ( RULE_INT ) )
-            // InternalMachineLearningLanguage.g:7449:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:7554:1: ( ( RULE_INT ) )
+            // InternalMachineLearningLanguage.g:7555:2: ( RULE_INT )
             {
-            // InternalMachineLearningLanguage.g:7449:2: ( RULE_INT )
-            // InternalMachineLearningLanguage.g:7450:3: RULE_INT
+            // InternalMachineLearningLanguage.g:7555:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:7556:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getStartINTTerminalRuleCall_1_0()); 
@@ -24631,17 +24975,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CounterRangeRule__EndAssignment_3"
-    // InternalMachineLearningLanguage.g:7459:1: rule__CounterRangeRule__EndAssignment_3 : ( RULE_INT ) ;
+    // InternalMachineLearningLanguage.g:7565:1: rule__CounterRangeRule__EndAssignment_3 : ( RULE_INT ) ;
     public final void rule__CounterRangeRule__EndAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7463:1: ( ( RULE_INT ) )
-            // InternalMachineLearningLanguage.g:7464:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:7569:1: ( ( RULE_INT ) )
+            // InternalMachineLearningLanguage.g:7570:2: ( RULE_INT )
             {
-            // InternalMachineLearningLanguage.g:7464:2: ( RULE_INT )
-            // InternalMachineLearningLanguage.g:7465:3: RULE_INT
+            // InternalMachineLearningLanguage.g:7570:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:7571:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCounterRangeRuleAccess().getEndINTTerminalRuleCall_3_0()); 
@@ -24672,17 +25016,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__ElementsAssignment_1"
-    // InternalMachineLearningLanguage.g:7474:1: rule__StringLiterRangeRule__ElementsAssignment_1 : ( ruleStringLiteralRule ) ;
+    // InternalMachineLearningLanguage.g:7580:1: rule__StringLiterRangeRule__ElementsAssignment_1 : ( ruleStringLiteralRule ) ;
     public final void rule__StringLiterRangeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7478:1: ( ( ruleStringLiteralRule ) )
-            // InternalMachineLearningLanguage.g:7479:2: ( ruleStringLiteralRule )
+            // InternalMachineLearningLanguage.g:7584:1: ( ( ruleStringLiteralRule ) )
+            // InternalMachineLearningLanguage.g:7585:2: ( ruleStringLiteralRule )
             {
-            // InternalMachineLearningLanguage.g:7479:2: ( ruleStringLiteralRule )
-            // InternalMachineLearningLanguage.g:7480:3: ruleStringLiteralRule
+            // InternalMachineLearningLanguage.g:7585:2: ( ruleStringLiteralRule )
+            // InternalMachineLearningLanguage.g:7586:3: ruleStringLiteralRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getElementsStringLiteralRuleParserRuleCall_1_0()); 
@@ -24717,17 +25061,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiterRangeRule__ElementsAssignment_2_1"
-    // InternalMachineLearningLanguage.g:7489:1: rule__StringLiterRangeRule__ElementsAssignment_2_1 : ( ruleStringLiteralRule ) ;
+    // InternalMachineLearningLanguage.g:7595:1: rule__StringLiterRangeRule__ElementsAssignment_2_1 : ( ruleStringLiteralRule ) ;
     public final void rule__StringLiterRangeRule__ElementsAssignment_2_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7493:1: ( ( ruleStringLiteralRule ) )
-            // InternalMachineLearningLanguage.g:7494:2: ( ruleStringLiteralRule )
+            // InternalMachineLearningLanguage.g:7599:1: ( ( ruleStringLiteralRule ) )
+            // InternalMachineLearningLanguage.g:7600:2: ( ruleStringLiteralRule )
             {
-            // InternalMachineLearningLanguage.g:7494:2: ( ruleStringLiteralRule )
-            // InternalMachineLearningLanguage.g:7495:3: ruleStringLiteralRule
+            // InternalMachineLearningLanguage.g:7600:2: ( ruleStringLiteralRule )
+            // InternalMachineLearningLanguage.g:7601:3: ruleStringLiteralRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiterRangeRuleAccess().getElementsStringLiteralRuleParserRuleCall_2_1_0()); 
@@ -24762,17 +25106,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallStatementRule__CallAssignment_0"
-    // InternalMachineLearningLanguage.g:7504:1: rule__CallStatementRule__CallAssignment_0 : ( ruleCallRule ) ;
+    // InternalMachineLearningLanguage.g:7610:1: rule__CallStatementRule__CallAssignment_0 : ( ruleCallRule ) ;
     public final void rule__CallStatementRule__CallAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7508:1: ( ( ruleCallRule ) )
-            // InternalMachineLearningLanguage.g:7509:2: ( ruleCallRule )
+            // InternalMachineLearningLanguage.g:7614:1: ( ( ruleCallRule ) )
+            // InternalMachineLearningLanguage.g:7615:2: ( ruleCallRule )
             {
-            // InternalMachineLearningLanguage.g:7509:2: ( ruleCallRule )
-            // InternalMachineLearningLanguage.g:7510:3: ruleCallRule
+            // InternalMachineLearningLanguage.g:7615:2: ( ruleCallRule )
+            // InternalMachineLearningLanguage.g:7616:3: ruleCallRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallStatementRuleAccess().getCallCallRuleParserRuleCall_0_0()); 
@@ -24807,34 +25151,34 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__DefinitionAssignment_0"
-    // InternalMachineLearningLanguage.g:7519:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedNameRule ) ) ;
+    // InternalMachineLearningLanguage.g:7625:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7523:1: ( ( ( ruleQualifiedNameRule ) ) )
-            // InternalMachineLearningLanguage.g:7524:2: ( ( ruleQualifiedNameRule ) )
+            // InternalMachineLearningLanguage.g:7629:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:7630:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:7524:2: ( ( ruleQualifiedNameRule ) )
-            // InternalMachineLearningLanguage.g:7525:3: ( ruleQualifiedNameRule )
+            // InternalMachineLearningLanguage.g:7630:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:7631:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); 
             }
-            // InternalMachineLearningLanguage.g:7526:3: ( ruleQualifiedNameRule )
-            // InternalMachineLearningLanguage.g:7527:4: ruleQualifiedNameRule
+            // InternalMachineLearningLanguage.g:7632:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:7633:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
-               before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+               before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
             }
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
             if (state.failed) return ;
             if ( state.backtracking==0 ) {
-               after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+               after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
             }
 
             }
@@ -24864,17 +25208,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceRule__AttributesAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7538:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
+    // InternalMachineLearningLanguage.g:7644:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
     public final void rule__InstanceRule__AttributesAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7542:1: ( ( ruleAttributeRule ) )
-            // InternalMachineLearningLanguage.g:7543:2: ( ruleAttributeRule )
+            // InternalMachineLearningLanguage.g:7648:1: ( ( ruleAttributeRule ) )
+            // InternalMachineLearningLanguage.g:7649:2: ( ruleAttributeRule )
             {
-            // InternalMachineLearningLanguage.g:7543:2: ( ruleAttributeRule )
-            // InternalMachineLearningLanguage.g:7544:3: ruleAttributeRule
+            // InternalMachineLearningLanguage.g:7649:2: ( ruleAttributeRule )
+            // InternalMachineLearningLanguage.g:7650:3: ruleAttributeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceRuleAccess().getAttributesAttributeRuleParserRuleCall_1_1_0()); 
@@ -24909,23 +25253,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__DefinitionAssignment_0"
-    // InternalMachineLearningLanguage.g:7553:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7659:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
     public final void rule__AttributeRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7557:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7558:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7663:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7664:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7558:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7559:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7664:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7665:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionCrossReference_0_0()); 
             }
-            // InternalMachineLearningLanguage.g:7560:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7561:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7666:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7667:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionStringOrIdParserRuleCall_0_0_1()); 
@@ -24966,17 +25310,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeRule__ValueAssignment_2"
-    // InternalMachineLearningLanguage.g:7572:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
+    // InternalMachineLearningLanguage.g:7678:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
     public final void rule__AttributeRule__ValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7576:1: ( ( ruleValueRule ) )
-            // InternalMachineLearningLanguage.g:7577:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7682:1: ( ( ruleValueRule ) )
+            // InternalMachineLearningLanguage.g:7683:2: ( ruleValueRule )
             {
-            // InternalMachineLearningLanguage.g:7577:2: ( ruleValueRule )
-            // InternalMachineLearningLanguage.g:7578:3: ruleValueRule
+            // InternalMachineLearningLanguage.g:7683:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7684:3: ruleValueRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeRuleAccess().getValueValueRuleParserRuleCall_2_0()); 
@@ -25011,17 +25355,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_0"
-    // InternalMachineLearningLanguage.g:7587:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
+    // InternalMachineLearningLanguage.g:7693:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7591:1: ( ( ruleValueRule ) )
-            // InternalMachineLearningLanguage.g:7592:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7697:1: ( ( ruleValueRule ) )
+            // InternalMachineLearningLanguage.g:7698:2: ( ruleValueRule )
             {
-            // InternalMachineLearningLanguage.g:7592:2: ( ruleValueRule )
-            // InternalMachineLearningLanguage.g:7593:3: ruleValueRule
+            // InternalMachineLearningLanguage.g:7698:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7699:3: ruleValueRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_0_0()); 
@@ -25056,17 +25400,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_1_1"
-    // InternalMachineLearningLanguage.g:7602:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
+    // InternalMachineLearningLanguage.g:7708:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7606:1: ( ( ruleValueRule ) )
-            // InternalMachineLearningLanguage.g:7607:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7712:1: ( ( ruleValueRule ) )
+            // InternalMachineLearningLanguage.g:7713:2: ( ruleValueRule )
             {
-            // InternalMachineLearningLanguage.g:7607:2: ( ruleValueRule )
-            // InternalMachineLearningLanguage.g:7608:3: ruleValueRule
+            // InternalMachineLearningLanguage.g:7713:2: ( ruleValueRule )
+            // InternalMachineLearningLanguage.g:7714:3: ruleValueRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_1_1_0()); 
@@ -25101,17 +25445,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__LiteralValueRule__LiteralAssignment"
-    // InternalMachineLearningLanguage.g:7617:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
+    // InternalMachineLearningLanguage.g:7723:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
     public final void rule__LiteralValueRule__LiteralAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7621:1: ( ( ruleLiteralRule ) )
-            // InternalMachineLearningLanguage.g:7622:2: ( ruleLiteralRule )
+            // InternalMachineLearningLanguage.g:7727:1: ( ( ruleLiteralRule ) )
+            // InternalMachineLearningLanguage.g:7728:2: ( ruleLiteralRule )
             {
-            // InternalMachineLearningLanguage.g:7622:2: ( ruleLiteralRule )
-            // InternalMachineLearningLanguage.g:7623:3: ruleLiteralRule
+            // InternalMachineLearningLanguage.g:7728:2: ( ruleLiteralRule )
+            // InternalMachineLearningLanguage.g:7729:3: ruleLiteralRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getLiteralValueRuleAccess().getLiteralLiteralRuleParserRuleCall_0()); 
@@ -25146,23 +25490,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DataReferenceRule__DefinitionAssignment_2"
-    // InternalMachineLearningLanguage.g:7632:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
+    // InternalMachineLearningLanguage.g:7738:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
     public final void rule__DataReferenceRule__DefinitionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7636:1: ( ( ( ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:7637:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7742:1: ( ( ( ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:7743:2: ( ( ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:7637:2: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:7638:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7743:2: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:7744:3: ( ruleStringOrId )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionCrossReference_2_0()); 
             }
-            // InternalMachineLearningLanguage.g:7639:3: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:7640:4: ruleStringOrId
+            // InternalMachineLearningLanguage.g:7745:3: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:7746:4: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1()); 
@@ -25203,17 +25547,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalMachineLearningLanguage.g:7651:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7757:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7655:1: ( ( ruleXorExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7656:2: ( ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:7761:1: ( ( ruleXorExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7762:2: ( ruleXorExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7656:2: ( ruleXorExpressionRule )
-            // InternalMachineLearningLanguage.g:7657:3: ruleXorExpressionRule
+            // InternalMachineLearningLanguage.g:7762:2: ( ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:7763:3: ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
@@ -25248,17 +25592,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7666:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7772:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7670:1: ( ( ruleXorExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7671:2: ( ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:7776:1: ( ( ruleXorExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7777:2: ( ruleXorExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7671:2: ( ruleXorExpressionRule )
-            // InternalMachineLearningLanguage.g:7672:3: ruleXorExpressionRule
+            // InternalMachineLearningLanguage.g:7777:2: ( ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:7778:3: ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
@@ -25293,17 +25637,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalMachineLearningLanguage.g:7681:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7787:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7685:1: ( ( ruleAndExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7686:2: ( ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:7791:1: ( ( ruleAndExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7792:2: ( ruleAndExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7686:2: ( ruleAndExpressionRule )
-            // InternalMachineLearningLanguage.g:7687:3: ruleAndExpressionRule
+            // InternalMachineLearningLanguage.g:7792:2: ( ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:7793:3: ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
@@ -25338,17 +25682,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7696:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7802:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7700:1: ( ( ruleAndExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7701:2: ( ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:7806:1: ( ( ruleAndExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7807:2: ( ruleAndExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7701:2: ( ruleAndExpressionRule )
-            // InternalMachineLearningLanguage.g:7702:3: ruleAndExpressionRule
+            // InternalMachineLearningLanguage.g:7807:2: ( ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:7808:3: ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
@@ -25383,17 +25727,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalMachineLearningLanguage.g:7711:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7817:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7715:1: ( ( ruleNotExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7716:2: ( ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:7821:1: ( ( ruleNotExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7822:2: ( ruleNotExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7716:2: ( ruleNotExpressionRule )
-            // InternalMachineLearningLanguage.g:7717:3: ruleNotExpressionRule
+            // InternalMachineLearningLanguage.g:7822:2: ( ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:7823:3: ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
@@ -25428,17 +25772,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7726:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7832:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7730:1: ( ( ruleNotExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7731:2: ( ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:7836:1: ( ( ruleNotExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7837:2: ( ruleNotExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7731:2: ( ruleNotExpressionRule )
-            // InternalMachineLearningLanguage.g:7732:3: ruleNotExpressionRule
+            // InternalMachineLearningLanguage.g:7837:2: ( ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:7838:3: ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
@@ -25473,28 +25817,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalMachineLearningLanguage.g:7741:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalMachineLearningLanguage.g:7847:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7745:1: ( ( ( '!' ) ) )
-            // InternalMachineLearningLanguage.g:7746:2: ( ( '!' ) )
+            // InternalMachineLearningLanguage.g:7851:1: ( ( ( '!' ) ) )
+            // InternalMachineLearningLanguage.g:7852:2: ( ( '!' ) )
             {
-            // InternalMachineLearningLanguage.g:7746:2: ( ( '!' ) )
-            // InternalMachineLearningLanguage.g:7747:3: ( '!' )
+            // InternalMachineLearningLanguage.g:7852:2: ( ( '!' ) )
+            // InternalMachineLearningLanguage.g:7853:3: ( '!' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
-            // InternalMachineLearningLanguage.g:7748:3: ( '!' )
-            // InternalMachineLearningLanguage.g:7749:4: '!'
+            // InternalMachineLearningLanguage.g:7854:3: ( '!' )
+            // InternalMachineLearningLanguage.g:7855:4: '!'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
-            match(input,93,FOLLOW_2); if (state.failed) return ;
+            match(input,94,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
             }
@@ -25526,17 +25870,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalMachineLearningLanguage.g:7760:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7866:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7764:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7765:2: ( ruleComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:7870:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7871:2: ( ruleComparisonExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7765:2: ( ruleComparisonExpressionRule )
-            // InternalMachineLearningLanguage.g:7766:3: ruleComparisonExpressionRule
+            // InternalMachineLearningLanguage.g:7871:2: ( ruleComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:7872:3: ruleComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
@@ -25571,17 +25915,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalMachineLearningLanguage.g:7775:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7881:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7779:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7780:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:7885:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7886:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7780:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:7781:3: ruleAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:7886:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:7887:3: ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
@@ -25616,17 +25960,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalMachineLearningLanguage.g:7790:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7896:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7794:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7795:2: ( rulePartialComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:7900:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7901:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7795:2: ( rulePartialComparisonExpressionRule )
-            // InternalMachineLearningLanguage.g:7796:3: rulePartialComparisonExpressionRule
+            // InternalMachineLearningLanguage.g:7901:2: ( rulePartialComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:7902:3: rulePartialComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
@@ -25661,17 +26005,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalMachineLearningLanguage.g:7805:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalMachineLearningLanguage.g:7911:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7809:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalMachineLearningLanguage.g:7810:2: ( ruleComparisonOperatorRule )
+            // InternalMachineLearningLanguage.g:7915:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalMachineLearningLanguage.g:7916:2: ( ruleComparisonOperatorRule )
             {
-            // InternalMachineLearningLanguage.g:7810:2: ( ruleComparisonOperatorRule )
-            // InternalMachineLearningLanguage.g:7811:3: ruleComparisonOperatorRule
+            // InternalMachineLearningLanguage.g:7916:2: ( ruleComparisonOperatorRule )
+            // InternalMachineLearningLanguage.g:7917:3: ruleComparisonOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
@@ -25706,17 +26050,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalMachineLearningLanguage.g:7820:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7926:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7824:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7825:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:7930:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7931:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7825:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:7826:3: ruleAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:7931:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:7932:3: ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
@@ -25751,17 +26095,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalMachineLearningLanguage.g:7835:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7941:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7839:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7840:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:7945:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7946:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7840:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalMachineLearningLanguage.g:7841:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalMachineLearningLanguage.g:7946:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:7947:3: ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
@@ -25796,17 +26140,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalMachineLearningLanguage.g:7850:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalMachineLearningLanguage.g:7956:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7854:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalMachineLearningLanguage.g:7855:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalMachineLearningLanguage.g:7960:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalMachineLearningLanguage.g:7961:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalMachineLearningLanguage.g:7855:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalMachineLearningLanguage.g:7856:3: ruleAddOrSubtractOperatorRule
+            // InternalMachineLearningLanguage.g:7961:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalMachineLearningLanguage.g:7962:3: ruleAddOrSubtractOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
@@ -25841,17 +26185,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7865:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7971:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7869:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7870:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:7975:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7976:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7870:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalMachineLearningLanguage.g:7871:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalMachineLearningLanguage.g:7976:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:7977:3: ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
@@ -25886,17 +26230,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalMachineLearningLanguage.g:7880:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:7986:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7884:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7885:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:7990:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalMachineLearningLanguage.g:7991:2: ( rulePowerOfExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7885:2: ( rulePowerOfExpressionRule )
-            // InternalMachineLearningLanguage.g:7886:3: rulePowerOfExpressionRule
+            // InternalMachineLearningLanguage.g:7991:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:7992:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
@@ -25931,17 +26275,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalMachineLearningLanguage.g:7895:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalMachineLearningLanguage.g:8001:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7899:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalMachineLearningLanguage.g:7900:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalMachineLearningLanguage.g:8005:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalMachineLearningLanguage.g:8006:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalMachineLearningLanguage.g:7900:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalMachineLearningLanguage.g:7901:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalMachineLearningLanguage.g:8006:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalMachineLearningLanguage.g:8007:3: ruleMultiplyDivideModuloOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
@@ -25976,17 +26320,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7910:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8016:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7914:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7915:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:8020:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8021:2: ( rulePowerOfExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7915:2: ( rulePowerOfExpressionRule )
-            // InternalMachineLearningLanguage.g:7916:3: rulePowerOfExpressionRule
+            // InternalMachineLearningLanguage.g:8021:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:8022:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
@@ -26021,17 +26365,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalMachineLearningLanguage.g:7925:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8031:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7929:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7930:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:8035:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8036:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7930:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:7931:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:8036:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:8037:3: ruleUnaryAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
@@ -26066,17 +26410,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalMachineLearningLanguage.g:7940:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8046:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7944:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7945:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:8050:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8051:2: ( rulePowerOfExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7945:2: ( rulePowerOfExpressionRule )
-            // InternalMachineLearningLanguage.g:7946:3: rulePowerOfExpressionRule
+            // InternalMachineLearningLanguage.g:8051:2: ( rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:8052:3: rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
@@ -26111,17 +26455,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalMachineLearningLanguage.g:7955:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalMachineLearningLanguage.g:8061:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7959:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalMachineLearningLanguage.g:7960:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalMachineLearningLanguage.g:8065:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalMachineLearningLanguage.g:8066:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalMachineLearningLanguage.g:7960:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalMachineLearningLanguage.g:7961:3: ruleAddOrSubtractOperatorRule
+            // InternalMachineLearningLanguage.g:8066:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalMachineLearningLanguage.g:8067:3: ruleAddOrSubtractOperatorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
@@ -26156,17 +26500,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalMachineLearningLanguage.g:7970:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalMachineLearningLanguage.g:8076:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7974:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalMachineLearningLanguage.g:7975:2: ( ruleLiteralOrReferenceRule )
+            // InternalMachineLearningLanguage.g:8080:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalMachineLearningLanguage.g:8081:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalMachineLearningLanguage.g:7975:2: ( ruleLiteralOrReferenceRule )
-            // InternalMachineLearningLanguage.g:7976:3: ruleLiteralOrReferenceRule
+            // InternalMachineLearningLanguage.g:8081:2: ( ruleLiteralOrReferenceRule )
+            // InternalMachineLearningLanguage.g:8082:3: ruleLiteralOrReferenceRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
@@ -26201,17 +26545,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalMachineLearningLanguage.g:7985:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8091:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:7989:1: ( ( ruleExpressionRule ) )
-            // InternalMachineLearningLanguage.g:7990:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8095:1: ( ( ruleExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8096:2: ( ruleExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:7990:2: ( ruleExpressionRule )
-            // InternalMachineLearningLanguage.g:7991:3: ruleExpressionRule
+            // InternalMachineLearningLanguage.g:8096:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8097:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
@@ -26246,17 +26590,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalMachineLearningLanguage.g:8000:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalMachineLearningLanguage.g:8106:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8004:1: ( ( ruleFunctionNameRule ) )
-            // InternalMachineLearningLanguage.g:8005:2: ( ruleFunctionNameRule )
+            // InternalMachineLearningLanguage.g:8110:1: ( ( ruleFunctionNameRule ) )
+            // InternalMachineLearningLanguage.g:8111:2: ( ruleFunctionNameRule )
             {
-            // InternalMachineLearningLanguage.g:8005:2: ( ruleFunctionNameRule )
-            // InternalMachineLearningLanguage.g:8006:3: ruleFunctionNameRule
+            // InternalMachineLearningLanguage.g:8111:2: ( ruleFunctionNameRule )
+            // InternalMachineLearningLanguage.g:8112:3: ruleFunctionNameRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
@@ -26291,17 +26635,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalMachineLearningLanguage.g:8015:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8121:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8019:1: ( ( ruleExpressionRule ) )
-            // InternalMachineLearningLanguage.g:8020:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8125:1: ( ( ruleExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8126:2: ( ruleExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:8020:2: ( ruleExpressionRule )
-            // InternalMachineLearningLanguage.g:8021:3: ruleExpressionRule
+            // InternalMachineLearningLanguage.g:8126:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8127:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
@@ -26336,17 +26680,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalMachineLearningLanguage.g:8030:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8136:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8034:1: ( ( ruleExpressionRule ) )
-            // InternalMachineLearningLanguage.g:8035:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8140:1: ( ( ruleExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8141:2: ( ruleExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:8035:2: ( ruleExpressionRule )
-            // InternalMachineLearningLanguage.g:8036:3: ruleExpressionRule
+            // InternalMachineLearningLanguage.g:8141:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8142:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
@@ -26380,18 +26724,75 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalMachineLearningLanguage.g:8151:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:8155:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:8156:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalMachineLearningLanguage.g:8156:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8157:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            }
+            // InternalMachineLearningLanguage.g:8158:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8159:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalMachineLearningLanguage.g:8045:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalMachineLearningLanguage.g:8170:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8049:1: ( ( RULE_DOUBLE ) )
-            // InternalMachineLearningLanguage.g:8050:2: ( RULE_DOUBLE )
+            // InternalMachineLearningLanguage.g:8174:1: ( ( RULE_DOUBLE ) )
+            // InternalMachineLearningLanguage.g:8175:2: ( RULE_DOUBLE )
             {
-            // InternalMachineLearningLanguage.g:8050:2: ( RULE_DOUBLE )
-            // InternalMachineLearningLanguage.g:8051:3: RULE_DOUBLE
+            // InternalMachineLearningLanguage.g:8175:2: ( RULE_DOUBLE )
+            // InternalMachineLearningLanguage.g:8176:3: RULE_DOUBLE
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
@@ -26422,17 +26823,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalMachineLearningLanguage.g:8060:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalMachineLearningLanguage.g:8185:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8064:1: ( ( ruleFactorRule ) )
-            // InternalMachineLearningLanguage.g:8065:2: ( ruleFactorRule )
+            // InternalMachineLearningLanguage.g:8189:1: ( ( ruleFactorRule ) )
+            // InternalMachineLearningLanguage.g:8190:2: ( ruleFactorRule )
             {
-            // InternalMachineLearningLanguage.g:8065:2: ( ruleFactorRule )
-            // InternalMachineLearningLanguage.g:8066:3: ruleFactorRule
+            // InternalMachineLearningLanguage.g:8190:2: ( ruleFactorRule )
+            // InternalMachineLearningLanguage.g:8191:3: ruleFactorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
@@ -26467,17 +26868,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalMachineLearningLanguage.g:8075:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalMachineLearningLanguage.g:8200:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8079:1: ( ( RULE_INT ) )
-            // InternalMachineLearningLanguage.g:8080:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:8204:1: ( ( RULE_INT ) )
+            // InternalMachineLearningLanguage.g:8205:2: ( RULE_INT )
             {
-            // InternalMachineLearningLanguage.g:8080:2: ( RULE_INT )
-            // InternalMachineLearningLanguage.g:8081:3: RULE_INT
+            // InternalMachineLearningLanguage.g:8205:2: ( RULE_INT )
+            // InternalMachineLearningLanguage.g:8206:3: RULE_INT
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
@@ -26508,17 +26909,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalMachineLearningLanguage.g:8090:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalMachineLearningLanguage.g:8215:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8094:1: ( ( ruleFactorRule ) )
-            // InternalMachineLearningLanguage.g:8095:2: ( ruleFactorRule )
+            // InternalMachineLearningLanguage.g:8219:1: ( ( ruleFactorRule ) )
+            // InternalMachineLearningLanguage.g:8220:2: ( ruleFactorRule )
             {
-            // InternalMachineLearningLanguage.g:8095:2: ( ruleFactorRule )
-            // InternalMachineLearningLanguage.g:8096:3: ruleFactorRule
+            // InternalMachineLearningLanguage.g:8220:2: ( ruleFactorRule )
+            // InternalMachineLearningLanguage.g:8221:3: ruleFactorRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
@@ -26553,17 +26954,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalMachineLearningLanguage.g:8105:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalMachineLearningLanguage.g:8230:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8109:1: ( ( RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:8110:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:8234:1: ( ( RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:8235:2: ( RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:8110:2: ( RULE_STRING )
-            // InternalMachineLearningLanguage.g:8111:3: RULE_STRING
+            // InternalMachineLearningLanguage.g:8235:2: ( RULE_STRING )
+            // InternalMachineLearningLanguage.g:8236:3: RULE_STRING
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
@@ -26594,28 +26995,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalMachineLearningLanguage.g:8120:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalMachineLearningLanguage.g:8245:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8124:1: ( ( ( 'true' ) ) )
-            // InternalMachineLearningLanguage.g:8125:2: ( ( 'true' ) )
+            // InternalMachineLearningLanguage.g:8249:1: ( ( ( 'true' ) ) )
+            // InternalMachineLearningLanguage.g:8250:2: ( ( 'true' ) )
             {
-            // InternalMachineLearningLanguage.g:8125:2: ( ( 'true' ) )
-            // InternalMachineLearningLanguage.g:8126:3: ( 'true' )
+            // InternalMachineLearningLanguage.g:8250:2: ( ( 'true' ) )
+            // InternalMachineLearningLanguage.g:8251:3: ( 'true' )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
-            // InternalMachineLearningLanguage.g:8127:3: ( 'true' )
-            // InternalMachineLearningLanguage.g:8128:4: 'true'
+            // InternalMachineLearningLanguage.g:8252:3: ( 'true' )
+            // InternalMachineLearningLanguage.g:8253:4: 'true'
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
-            match(input,94,FOLLOW_2); if (state.failed) return ;
+            match(input,95,FOLLOW_2); if (state.failed) return ;
             if ( state.backtracking==0 ) {
                after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
             }
@@ -26646,18 +27047,218 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalMachineLearningLanguage.g:8264:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:8268:1: ( ( ( 'abstract' ) ) )
+            // InternalMachineLearningLanguage.g:8269:2: ( ( 'abstract' ) )
+            {
+            // InternalMachineLearningLanguage.g:8269:2: ( ( 'abstract' ) )
+            // InternalMachineLearningLanguage.g:8270:3: ( 'abstract' )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+            // InternalMachineLearningLanguage.g:8271:3: ( 'abstract' )
+            // InternalMachineLearningLanguage.g:8272:4: 'abstract'
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+            match(input,96,FOLLOW_2); if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalMachineLearningLanguage.g:8283:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:8287:1: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:8288:2: ( ruleStringOrId )
+            {
+            // InternalMachineLearningLanguage.g:8288:2: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:8289:3: ruleStringOrId
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalMachineLearningLanguage.g:8298:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:8302:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:8303:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalMachineLearningLanguage.g:8303:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8304:3: ( ruleQualifiedName )
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            }
+            // InternalMachineLearningLanguage.g:8305:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8306:4: ruleQualifiedName
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalMachineLearningLanguage.g:8317:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalMachineLearningLanguage.g:8321:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalMachineLearningLanguage.g:8322:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalMachineLearningLanguage.g:8322:2: ( ruleAttributeDefinitionRule )
+            // InternalMachineLearningLanguage.g:8323:3: ruleAttributeDefinitionRule
+            {
+            if ( state.backtracking==0 ) {
+               before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            }
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return ;
+            if ( state.backtracking==0 ) {
+               after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            }
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalMachineLearningLanguage.g:8139:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalMachineLearningLanguage.g:8332:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8143:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:8144:2: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:8336:1: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:8337:2: ( ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:8144:2: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:8145:3: ruleStringOrId
+            // InternalMachineLearningLanguage.g:8337:2: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:8338:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
@@ -26692,17 +27293,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalMachineLearningLanguage.g:8154:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalMachineLearningLanguage.g:8347:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8158:1: ( ( ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:8159:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8351:1: ( ( ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:8352:2: ( ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:8159:2: ( ruleTypeRule )
-            // InternalMachineLearningLanguage.g:8160:3: ruleTypeRule
+            // InternalMachineLearningLanguage.g:8352:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8353:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
@@ -26737,17 +27338,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalMachineLearningLanguage.g:8169:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalMachineLearningLanguage.g:8362:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8173:1: ( ( ruleExpressionRule ) )
-            // InternalMachineLearningLanguage.g:8174:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8366:1: ( ( ruleExpressionRule ) )
+            // InternalMachineLearningLanguage.g:8367:2: ( ruleExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:8174:2: ( ruleExpressionRule )
-            // InternalMachineLearningLanguage.g:8175:3: ruleExpressionRule
+            // InternalMachineLearningLanguage.g:8367:2: ( ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:8368:3: ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
@@ -26782,23 +27383,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalMachineLearningLanguage.g:8184:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalMachineLearningLanguage.g:8377:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8188:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalMachineLearningLanguage.g:8189:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8381:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:8382:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:8189:2: ( ( ruleQualifiedName ) )
-            // InternalMachineLearningLanguage.g:8190:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8382:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8383:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
             }
-            // InternalMachineLearningLanguage.g:8191:3: ( ruleQualifiedName )
-            // InternalMachineLearningLanguage.g:8192:4: ruleQualifiedName
+            // InternalMachineLearningLanguage.g:8384:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8385:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
@@ -26839,23 +27440,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalMachineLearningLanguage.g:8203:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalMachineLearningLanguage.g:8396:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8207:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalMachineLearningLanguage.g:8208:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8400:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:8401:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:8208:2: ( ( ruleQualifiedName ) )
-            // InternalMachineLearningLanguage.g:8209:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8401:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8402:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
             }
-            // InternalMachineLearningLanguage.g:8210:3: ( ruleQualifiedName )
-            // InternalMachineLearningLanguage.g:8211:4: ruleQualifiedName
+            // InternalMachineLearningLanguage.g:8403:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8404:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
@@ -26896,17 +27497,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalMachineLearningLanguage.g:8222:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalMachineLearningLanguage.g:8415:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8226:1: ( ( ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:8227:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8419:1: ( ( ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:8420:2: ( ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:8227:2: ( ruleTypeRule )
-            // InternalMachineLearningLanguage.g:8228:3: ruleTypeRule
+            // InternalMachineLearningLanguage.g:8420:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8421:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
@@ -26941,17 +27542,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalMachineLearningLanguage.g:8237:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalMachineLearningLanguage.g:8430:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8241:1: ( ( ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:8242:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8434:1: ( ( ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:8435:2: ( ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:8242:2: ( ruleTypeRule )
-            // InternalMachineLearningLanguage.g:8243:3: ruleTypeRule
+            // InternalMachineLearningLanguage.g:8435:2: ( ruleTypeRule )
+            // InternalMachineLearningLanguage.g:8436:3: ruleTypeRule
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
@@ -26986,17 +27587,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalMachineLearningLanguage.g:8252:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalMachineLearningLanguage.g:8445:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8256:1: ( ( ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:8257:2: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:8449:1: ( ( ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:8450:2: ( ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:8257:2: ( ruleStringOrId )
-            // InternalMachineLearningLanguage.g:8258:3: ruleStringOrId
+            // InternalMachineLearningLanguage.g:8450:2: ( ruleStringOrId )
+            // InternalMachineLearningLanguage.g:8451:3: ruleStringOrId
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
@@ -27031,23 +27632,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalMachineLearningLanguage.g:8267:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalMachineLearningLanguage.g:8460:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalMachineLearningLanguage.g:8271:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalMachineLearningLanguage.g:8272:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8464:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:8465:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:8272:2: ( ( ruleQualifiedName ) )
-            // InternalMachineLearningLanguage.g:8273:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8465:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:8466:3: ( ruleQualifiedName )
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
             }
-            // InternalMachineLearningLanguage.g:8274:3: ( ruleQualifiedName )
-            // InternalMachineLearningLanguage.g:8275:4: ruleQualifiedName
+            // InternalMachineLearningLanguage.g:8467:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:8468:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
                before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
@@ -27089,6 +27690,51 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     // Delegated rules
 
 
+    protected DFA4 dfa4 = new DFA4(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\137\2\135\2\uffff\1\5\2\uffff\2\135";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\76\uffff\1\4\20\uffff\1\3",
+            "\13\7\25\uffff\1\7\4\uffff\1\7\24\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\25\uffff\1\7\4\uffff\1\7\24\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\25\uffff\1\7\4\uffff\1\7\24\uffff\4\7\1\6\1\7\15\uffff\1\5",
+            "\13\7\25\uffff\1\7\4\uffff\1\7\24\uffff\4\7\1\6\1\7\15\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA4 extends DFA {
+
+        public DFA4(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 4;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1624:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -27130,30 +27776,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000030L,0x0000000000000080L});
     public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00000000000081F0L,0x0000000040000210L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x00000000000081F0L,0x0000000040000230L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x00000000000081F0L,0x0000000080000210L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x00000000000081F0L,0x0000000080000230L});
     public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0020000000000000L});
     public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
     public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
     public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000400L});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000C081F0L,0x0000000060028210L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000C081F0L,0x00000000C0004210L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000800L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000800L});
     public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000000000000000L,0x0000000000001000L});
     public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x00000000003F0000L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x00000000003F0002L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000C00000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000C00002L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000007000000L});
-    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x00000000003F0000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x00000000003F0002L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000C00000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000C00002L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000007000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
     public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
-    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
-    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
-    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000C081F0L,0x0000000060038210L});
-    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000C081F0L,0x00000000C000C210L});
+    public static final BitSet FOLLOW_61 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_62 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L});
+    public static final BitSet FOLLOW_63 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020040L});
     public static final BitSet FOLLOW_64 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L});
     public static final BitSet FOLLOW_65 = new BitSet(new long[]{0x0000000000000000L,0x000000001FD80200L});
     public static final BitSet FOLLOW_66 = new BitSet(new long[]{0x0001000000000000L,0x0000000000000100L});
@@ -27167,5 +27813,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalConte
     public static final BitSet FOLLOW_74 = new BitSet(new long[]{0x0000000000000000L,0x0000000002000000L});
     public static final BitSet FOLLOW_75 = new BitSet(new long[]{0x0000000000000000L,0x0000000004000000L});
     public static final BitSet FOLLOW_76 = new BitSet(new long[]{0x0000000000000000L,0x0000000008000000L});
+    public static final BitSet FOLLOW_77 = new BitSet(new long[]{0x0000000000000000L,0x0000000020000000L});
+    public static final BitSet FOLLOW_78 = new BitSet(new long[]{0x0000000000000002L,0x0000000020000000L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/MachineLearningLanguage.xtextbin b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/MachineLearningLanguage.xtextbin
index 9f99285f9c8abc1c9ea6528fc1f3ea16c6923061..1a605409dd1e4117eb1aa6183f7cf1065b029c06 100644
GIT binary patch
delta 5762
zcmZu#XJAxS8s*N+n@NEb5=a6eG!v?fVqK)XcQ3NCi*!W5!X%l%=wv3&yihDVqGCmt
z^;xj&uGq1nsH~u(Ywy?<8@jB$U|m*m-E;1HFOz`tBbj;kob#RUyX~7fC$^z+{ZEEC
zaKq2W&!xE@hP6U;5A;^)RMw8A?3wYFcqX1|iqC9M#)H-wA{a2|1+6m!!EV9IXml@_
z2w7)|5~H{|-jYZq>_j>h4vdRfD@D0so$Zm&A-PwcJh1~S=7z0vMGwQ=D7wC^^F$;N
zm|z60^F`PQ94D*`5T!>Zv1qY9tu3C3rJ8k|RV1(SxYmUv4F~BWC)T^7=+79mR*TZW
zKxcjL+DbR0zj&rD4urY|`#alv*Oej%M;J!Px<r&2)}_wdy+>7E#<0VMurBAbH36er
zumRxy&e*Dg$}2b+#o(13yviROP@ZmXPo~4x)f}&<D`#s}---@@fA{@eLw`rCrTI0G
zxfZz<rror%;ot}q@H&p2?I(7<C}Cp7P3hLQSSFE0l{M-HW_Y91v%0?UCNHm>9kaS#
ztrHQH;g$|vJDt(>x|M|6P?9RuA*JgHfLov2J)Jw8o2zTP--)_Jto2OuE@x}?kg~gx
zT5$Y0nBKsL_c)Q7p{4gS-|={MAD?Y>#@7ri{Rf{BcR!zPa#A&e%QlldkPjc=!v~$U
zHT9(r5jYmlw(!}*&TBRMOnrpFu>kUA{S#@FWZN4LU)Gk1XS4nqdz2+Q-NpESt;hTl
zKMskIHFct}o^V$5sUGws(HReCJ>|omChX{GGllgGVFRBfEa}6Z^I^}^5K%7>WxYsL
zi-$57nk{D1%$O%zH(Ixur<-fcv#r(UD)VCVddoJ~S*KYm%x&iT<_>F$HODHp64q9y
zyl?f;m%LKH%>7Xwjm}=)7Voq-Le?vo#RBV9XGY&%x!2&JFxHs0GqENcMR^^c4I2z$
zy@C1|saR`VPw|`dwi$@GXr5bW8=wX8Wp+H(oE6sFKo@1(vDz3<Q{Lfjeb;v*!q$7#
z(0kH)ALPI(Vz9N{TZ1v%&LkS!?YOs6KLFPH5NAlWvwv+xsk@5)<%#WZhS&Bx;orz3
zY<<+l=EuIxPZ(f~us-E56VjGGqw42SEu>3V^b1e)OV%sm)(d<0E3DCC>uVBrI(OAp
z=DzW8-xAj&8l45hsYTQQ`a8Wdz84jS^@EQ?v3`V$2#O0Jr`7ro<#r){_sJ<cZ{fcl
z<tIuPMWfyzbbr>myP=!2e(_Nd`X7Wti4>*`AAW_Z>;~16Ny&69uPcSikOAs;k48I&
zMMwszEJIM1h7S`$h9Mkop$w&Egwh3&E^{93S3afCLl#l6BpQ|JbTS@GxkZr0TCzJO
zd-y<Tlt8ke(M4*}Qi_&21L}HBDfe(aJ;5mn8^>_c6RgmJl@#pd10mR(f=L&t1*<4n
z?X0M)$klkbK3>XJCKFrk$@SH8wahTa$3phQ>L`pS<E`<O?Jhi72Q4fSt=pfv1CV|B
zWPOh{#XIIq4)g*IVxUsa8E?ALE(G-*j9`Y`hu-UbD7-fydSSv-6LN?san=s0hz`YG
zk;7b^^|A=d;RvnwiX7pc7IGx0fm4Ot*X86!krVC2+0W-_^ZV2MXqfMDR65a|H-3QU
z=0F-Rjz;}acs@uM=wNz2#77As4@F>O2}HE+@2ERQbk7AU@<(T0{xFX?mhw1$x?&Jy
zoDMRcK_>WE1Thh$INos<>rfU$Nv1F{X2<d|6nVLMK{?UO!5@bF;aYwY<$v$VPlWst
z%%K@76y{4#_6{=n2Mh(rj1%&YSPiAR--sm>*_hvU$SJJrG2|QxXy7oHKX@uXoQ4n9
zht}t^Ob)Pi$}!e1*-aM6(NfB4In5a}ur@c{wPD^1cQfFwK+Xg+gx*HTS)Gq3IU9kv
z_T(Hs_Rn5<6yxLUm2(+!sE|kd*5?6NjJq4BH1>_Rg6Fep3sAL^=^V*%NFR0b7}tqB
zmSw|vpvO53XUFNf9pA;zLf=oUi=Rf%59=VC{N>q9b0dX}@8K!Oo<g>`rpQ=C;4mQ<
z^FNCz6EKU`LGKDXe^<GtPjF3J=fLENFd3Ff5W`J`3)$MmaEgYvLNT2;JOk0&Jje1R
zQ1x7A00=LMCENAIAhQH;iiKQY-f3<$H=940yUm^EXV!dkiwK9LEkXg=9uVC^qns^9
ze`n*Mp5Y~Yw$yoX(80N7cx%oN8jZ1RTtp&rIajTJYPgA<j6|dzl&7HjA#6N<6nUMh
zi+>s`hh@>J<&}TpCeM+%ET|8L)9I9#s9fQ$f{;8zgmb)2<(a>InaZ=kkt?|(EdQEy
zEwPuTCHB%GEQpR_csduJ40+yfcsie+F7Q0<z+tsYpyTHX74kyAz!!BbFuP{C8WxI<
zV$t33?3x+=VumlkQN$sHX5VbcOGvqt6n%)hl*>HI<sL;3iBL|i(RQ!kzQ5APz|U1&
zWDA76+TSvNg|CR7cyGJ>&2=WE-$%=9$iYfpyC?Ko4+`Duh&fg-nCtO0Aa8J{)>jqY
z=!L$?N!3^7Zic6jTt`p0_ygeH3a)z=$=iOTytlKwcM!iMDDOm`M$c%JC)~t%wkeZn
z<GF;QuSZy2bC&%sI>Uu_H~()y&B}3;=6IEMD)&8}hkIE&Tv^^_>sS3gc=4}Qc1v<2
zBWz=id`aDVdxzisOrK|;kSpbCd8ynWZ{RN3#2v92yCghpvF)sE7+&`PpDYcAnwyhC
zK8O$bT~Z<+a-MH!DBMC{n}YITXLmzG?h#!ybm#nTVzg(yj!?2OmyaQ}f;m}l{XFgw
zpFl$4a5Rbmtez*ez*BG-0$a$ZkylZowJn{o=ggd}GkXSF)_j<MmU(zNJ*PwRIu1Y2
zST8u6hV(0Z(TlOw**>IS?j>j!OI*-6b~EwjM3bHj`3geh&+Auxb#~WAYpg9R<m*60
z5~;R!zt4Dsv-~E-AHXbQKHmb%-9y{_BlT^%!$N$=C+B?jyJWxDiT%FM7IHgSK|3wv
z2cQ+C+wFYN4@qMe?FZfA(<HiS{Vi91<OThBFZL(G1pU)aboSHk8kC=d7H-e7)0JPa
zk|T^rGPb<qR{9c9`IU3nut8;CQvvh6lhf8W8g(WNtDcRC`v%1|<hK;kOd-F6hkRYX
zhlHNB9{@3yChWyR{^*7(YH3gDx$rhM8*RDEd286nLN?co_LEaGd}NLdb&=c+fkK}m
z<S$*q{EtQYm8=K#k*m7-St<cu0VcGKX{rEdo##{q!BnAqeU#C`47=sc1yuwZm{e7;
zC%cgBqE75$pDk2(kT|ER2UuO^RF#lc+KE=?(^R=Pr>dtHvm&<_y^?fx*WQv)y?we+
zRpd`FLaG{kx8SM<Z#%UdLiKTHpwlz`D}w3^9l0`6j-D==XiC`0<tmnRHjbziwN6{K
zD%TI=st)_PWR@MXbqlVKc-5a~HU-rHE)QHv9m67|2J#mbHHg%~p!S4hvSZw(@8i+y
zNiW0iL!BXzXut{xsv)d|(S$J`2x=&kUMGYa#!Be}L9qo_BY2ihN@w;6GSUmOFN5GH
z?TkQ-QHW8XqR<Mpq%%V8$6$Uxr`VYf$RXHh0D_5>PzPW<jGvzt>25?F$jApFa?wma
zbMrdb3wa1b;<D63h;=AR5>)KU6}s|3xk|UE*zx6=Y{^+rw&XOc5eq#C6xfl6)p%yU
zK&T1ylC@(QTUW+}u(=avEt=&LlmLYAtzQo-e|RG4`a)EP)5|31;eGq$*n%_k5e$tV
z>)bER-o@i*fKJ>n6x(pdXBXb}JDFkwZq0#*BmD)fdv9!_X?ugGdtjkvh#KD$Zz?qt
z5sYLy-6qs5y#!~|XdOo8V1y}Y7~5?%7p3eq-96&>nERu>oaQm73UtwXpit5I$f!sy
zfNFtvO$c=itl}4vOeVbu%bmp=s*dI6JI>XUTSZtMkJ$P^RSRjhC6jIyD(37L?KOg3
zH%~vMJMIan7(4C|ezO!R&Pc8C806zZwdmv)F^$2%v(I*uQ;81733!KDP7{A3-s_o7
z!eU8lx;dVllt{)q)@!R5nbpxR`Ivk`ekFIQxvEZ$PzR|oYLZH!Vihu(ZaPudYZ|{(
zyDK;C6|9W~!&kyQh!~XXB)tGK=#x~|$HKTxkB#v~+#&7EsqYfz#0gu<MBE8Oj)7oE
F{2yG^@J;{#

delta 5656
zcmZu#XJ8c77Uu5k>}Inmgd`*;0Zae`F|eXyK|^-#jrdRuQi1~NbCOKLJ~z8@cZ2eT
zH~Lht#Kzd34ZC7TtYGiGS1eeuVeevj-??)qyFu~;cITe&JKs6y-gD3F+V&OZEx+k(
z=e1k(EyYuVx@H{5N_FGEO!GzOYlh93aXbs?fyHLL&tf@$#tAIw^ECr-BG!F}F=M&2
zYIynN6|7K?_A5i<Br<A%(aEex&rkMRDKnEyr32cIO+n)nm>Q?DVqdLuKt)a2?7q0A
z8U4!hX+HlDZIrWr#mHjjH%@1|?l;b0Lv`a!XIjO?;<LzU1JtdgXO44U#h8kg*y32H
z6)?`GwFuVEp|x|d)@Ywc&&Im4jPoHTB*i2;m6rbvl6`?E`@(I=zKBfE2mQr=r@4gI
zmV42!Vnq~vxFhMrDvJV_QoNTr%PPl)E>}@r;ap!icI1_e5`WbI9a0qVAwgFY;2P(v
z%9^5U6<{@`rQ9j0Dl0=;u0vXa#`P5D4L*H{R*Qx5x_wiYnXyuH7nzBGaU%lPrZz$D
zO=Na6nbnb*)4yF&*)5cosaRY?i?`BZH7!=}b7Y?x4;X7{oxr!z`t7tng4VZdOIWVO
z9mHQtCU=s_T~0yO*y6hhwl|)wqi5@#Xw{h3d&qEa7}B3{FM=&f_qFeHbZ^Q^r(?;4
zjQBpv-?6TZ_pfokSB(ci;Wt`anDL;qxvH}6A+k;>JL6%`>=80Mc;;+oJW6J@kC9p2
zGke@Kdx8X!)stk!o^qyESJYo-ToXMudVX}dacZ<bx-xpDk%_K0mPI#2H%31)W*BWo
z*oYZVJO8P!3_YW2@~pF}y3&3QMa(mvr;<18A+tT5Ntqp)fYyvcz5rJPj}ZNf_^xM`
z^jge#35n1XW{)M~f0?ANhs7(Tl1|sFFwL`$&RE#0%y<pf`RP8Kqq#s!$m^^`H{M`-
zxd--H7BJo<k~=A0V*}8>W0>)l+KFZ+lZv(XWh}Mr--fC2j&o$qh|s$#nvKqRH6!fz
z5KX{%e~`EjJaHcq>l9{uM9UP06!I}~ZDIw!5NUHy^Cyb*Q=c|O3q~Tef_?iL_HEes
zoB&?{P&@~!65UzYX6N^s0=qC0$u0o(l{_Y2Q-AtK@qURIzlEA0vJD0q^LIr1J!lK2
zCo);i9~9(Al9C^Zs73JpBzb=(-d{W;@Y=tE*dI$|B<pX)x&^F7)8a`phxc~{`Ga^1
zB9Vb*F#jo;{{k}~;+ZkV8HfX2L_^fv2WqZ?dMHmO<Cd9lMcZhH-0#A;PV7aINR9>b
z^8oSlAo1sUh9C@qKd;^8k{<HOLzq0wh@mr>@qx7P0);D74zdO|D#eSWhhp+D)U$+#
z67mptxul0-<e`+(W292%k}Q9jLY1rZ3@n3uxFoNjY?y>%yb?PqWW}u>E0M9?J<7ME
z%x@wuj8~DHYPczxo=9iRM2D62RHHnNAWy|q;H(9ljf69ukD^Gn_bkC!3-6(rGG)9D
z0tz~<u2>@GtQ!@cFdC<ek8$k{94<Z<3gqG9JE%s&>p|gL%J?|vmQm&QctSMfAa?W+
zGJ-~mU;-j2oR^GsX4Owrnj)k=9Eo_VP`;B)(<D;9vuDK^-vw^<#UPQqyAtnYR$%)|
zvpqFSzncQ?PV^;_$Y2{d*+V+nlblTPY~f@tI0;(=O<KCzn_M+f2rXvD%=(y0ID5Xv
zn^g?nGU%g{-XMCe=$k<=D27h35HbDn7S;IpK3LMGG%-F6B`HQdGBGnAOPd*WSMYr)
zuZIxkA29Xp<>Kw>^ko^o81ERHc$ilkU+~Gs_r?~k@d><%m-77}y<%ElqJyYfWUc9w
z>{xt%S6%dWh@Jt_dHetn`mrS#Z_Vv@d?x(UzT^keW3PqVd=}|K59hN<$vDR6cp=S&
zVYt^!q1)pWs_orI*_;PSMF)B-u9AaXCH!E@CK}7YGL+4i>0B^K&qArE9gYvl6~qr!
zdMH2qFmKcTlf*SLe)zUDnXV=Rw3FR<#yjYL$}ykk^o|}L=wyB$x19dbyM?>xW4DhD
z(Z@SyjUMG}9zD!nglEwOn%-`vEf&n<G1@NPiFD)p7t?&aQ{zV<K0kK6w~FxMGQ1v=
z=AOlYq9^EdB?-AmljpIQq#g<OVY4u?#JXZuXRFy`yY~-I!7{o~3xP8&IWulDc%PSt
z#T3^>#*fO$65~g^CG+zow0sQX|K9cm%8w!UOR0K>cePS<w#JvK@cu*Lp?m}D&|*W2
z&X3(je8*9IG<{Qi8_{o$_jK_SAVnUC6M=IFa=Lf<a+0tD67uKKkS>#J^OKbOlgWJ^
z`iUIi{rnVMy*fXYF#Uv){n#zYX$o?>g2*MPJwvKJlg{p0o(W@oC8cH|<Bppvjh_u&
zLHVMPw&jG+&vB(Oey*2pIfrB0(Fm?=T~ivs5e03q3yAno`SC(}dJ$EZddY07%Su^j
z`mWxKm6%IN@6bpj$HeZS%WD;c`}w6L{4&oL{Fj5@Z94plZIs|jD#2A`-=*=Z!L1K-
zxm&DsM=I7!dl7}X2GZ!5OP$w}&KTpX>Hq7f3zw*iG+PsXz0z<4>BR+=YXP-4LW_5&
z%EI169yYihAp2%Yi|TT6Zl@;4_)@-t_w(!cMK}ckKVL(K@m3wDG2ouY*80M_we+xC
z^LKW}8NUr*vPZLs-;VUwIycwX6uW7?gJiDJ_?^zR^*h*i$sFG8ZhyTmttLmljv`$T
zXkJ@d)#Dxoych8W0+9$75Y~N?;C_hr1I_pY2s1y{)0<3X+GbCefj$T>V*z4$C?~{+
zrORgTHm0nrj`;|=eiW`N=k%pg$!@&tY~95lQ&Jvx`p1p1pMZoge-h+jylr&GWaDT2
zDJU7}+x%%y#51tdd(7T6<Iln(7)$i_Wt8jZXm31E<ZH1vunS%QO6~&wqPN9gq9Cxv
zU-rPZhkk|7ujZg%^U#dH4wRNjGX4f&dC9&^*6EuB+mHi$%Y*T^J*V#|r|<p^y^%!$
ze=i6Az6WRg1Hb}(X&RmRhm`Og^<dmwGH^M41XKR8^U3(S&?aKQw)n&u)=<~>DN?HQ
z&j>E<8UGxfv)TLtKv~kwFwu{SWfn31rRyNSOI^Jxr(cneuTjo==fQ?LwFzm!CvV?6
z>lzyE@8B(;e-EmV2WI?-K@NYUB>hCF+uV!cXD>?r3vhWTXs-<OSHK3<^fy9o$;r>}
z1IRzz^rD;p2@WdiUt6KY5TFIiq6JO!ZeI`@KvYxV2Wn7Fg-)<Q4lL-wM4qatpfMgk
zMZWzvc$nZcx~qLC3OzUz7}@F7(JzXDcT+Eh;$zO_!9<B$i=1b&4GTHPFAbJp<cr5T
zVww07VaA<~#xhpwut^nlW$+`)QLLgl8Js(s(`DBX!%55<O;k8*8cPc*>Gv8zle?&L
zUTCZcRjcJ1=bOd~dj#sKiIE6P?=a(WY64;uMX;JNu|0(?`<$pHf;xCBnU+j#<#4oO
z97Ej(-89#N`Ndec$P+t&%ionuF;P#>)R49?D8_+#dpH{p11*+dq5<oHl$q$3FSCM%
zcF_pW`LpSn8{-7!aw56Johp~$D}rb>u@gZiIqy#x9-=XwlCjImiNojZ3MBzCnW9?A
z#BSsVFD9vsjCyx~qTfKs9wdbJ%APRr<85CqPw|#%4tMWFLF2b*a^e%KLNsxcpJwNb
zi8VIO*t#&3BMu(#RmweSLI7#B!I>Pg@w1$uA)B@s&DdKR(|AqBOvv$C-p6#|i0Q!S
z@no`>iTz}c*29P=V>yMB!ZrJoxN=y{fE9%yAqUXYR%ceE%ATntA4oYY#Z>Dy<bmQM
zowE=}zM$zjPqk|%=0G5R_)zU$=4LLPfi{<pKh6ST9=yntCk`TsU8!Ub69)rWh@WEc
z0+Hx$F?Y_G5<H)x!<8czxTi%I3rVmE!Qv3|++&$=XEAXo?R)z$il7SiG&j3(iNgmF
zCO)C4NwTMbSr)Pbo{M^tomPBWEN*%42clDXro_lUzMenIKjvSHR#7hMM5CA_nuLX|
zSIXnbjw57dW@Zmsmr7taB@l0NStGJR`WDG;5X00X<cN*^fgeW15u~x*>ZZ*er<kgH
SC?={E#u=|xh|#C{+5Z8O_Re1b

diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.g b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.g
index 920e63e8..efc209f1 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.g
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.g
@@ -1103,7 +1103,7 @@ ruleInstanceRule returns [EObject current=null]
 				{
 					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
 				}
-				ruleQualifiedNameRule
+				ruleQualifiedName
 				{
 					afterParserOrEnumRuleCall();
 				}
@@ -1443,52 +1443,6 @@ ruleDataReferenceRule returns [EObject current=null]
 	)
 ;
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule returns [String current=null]:
-	{ newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); }
-	iv_ruleQualifiedNameRule=ruleQualifiedNameRule
-	{ $current=$iv_ruleQualifiedNameRule.current.getText(); }
-	EOF;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		{
-			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-		}
-		this_StringOrId_0=ruleStringOrId
-		{
-			$current.merge(this_StringOrId_0);
-		}
-		{
-			afterParserOrEnumRuleCall();
-		}
-		(
-			kw='.'
-			{
-				$current.merge(kw);
-				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-			}
-			{
-				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-			}
-			this_StringOrId_2=ruleStringOrId
-			{
-				$current.merge(this_StringOrId_2);
-			}
-			{
-				afterParserOrEnumRuleCall();
-			}
-		)*
-	)
-;
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getExpressionRuleRule()); }
@@ -2364,6 +2318,34 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		/* */
+	}
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
@@ -2373,15 +2355,18 @@ ruleValueReferenceRule returns [EObject current=null]
 				/* */
 			}
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -2678,6 +2663,114 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						/* */
+					}
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.tokens b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.tokens
index 6adf7854..9ad0db0f 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguage.tokens
@@ -1,82 +1,84 @@
-'!'=46
-'!='=67
-'%'=74
-'('=48
-')'=49
-'*'=72
-'+'=70
+'!'=45
+'!='=69
+'%'=76
+'('=47
+')'=48
+'*'=74
+'+'=72
 ','=19
-'-'=71
-'.'=42
-'/'=73
-':'=53
+'-'=73
+'.'=65
+'/'=75
+':'=54
 ':='=40
 ';'=16
-'<'=68
-'<='=69
-'='=66
-'>'=65
-'>='=64
-'AND'=45
-'E'=77
-'G'=80
-'M'=81
-'OR'=43
-'P'=78
-'T'=79
-'XOR'=44
-'Y'=75
-'Z'=76
+'<'=70
+'<='=71
+'='=68
+'>'=67
+'>='=66
+'AND'=44
+'E'=79
+'G'=82
+'M'=83
+'OR'=42
+'P'=80
+'T'=81
+'XOR'=43
+'Y'=77
+'Z'=78
 '['=36
-'\u00B5'=88
+'\u00B5'=90
 ']'=37
-'^'=47
-'a'=92
+'^'=46
+'a'=94
+'abstract'=51
 'and'=29
-'array'=63
-'boolean'=61
-'c'=86
-'d'=85
-'da'=84
+'array'=64
+'boolean'=62
+'c'=88
+'d'=87
+'da'=86
 'data'=41
 'end'=31
-'expression'=58
-'f'=91
-'false'=52
-'float'=60
+'expression'=59
+'extends'=53
+'f'=93
+'false'=50
+'float'=61
 'for'=33
 'from'=28
 'function'=24
-'h'=83
+'h'=85
 'in'=34
-'instance'=55
-'int'=59
-'k'=82
+'instance'=56
+'int'=60
+'k'=84
 'layer'=22
-'literal'=54
+'literal'=55
 'loop'=35
-'m'=87
+'m'=89
 'mapping'=25
 'maps'=18
 'measure'=30
-'n'=89
-'p'=90
+'n'=91
+'p'=92
 'parameters'=26
 'predict'=27
 'prediction'=17
 'store'=32
-'string'=57
+'string'=58
 'to'=20
-'true'=51
+'true'=49
+'type'=52
 'use'=15
 'using'=21
-'value'=50
-'void'=62
+'void'=63
 'with'=23
-'y'=94
-'z'=93
+'y'=96
+'z'=95
 '{'=38
-'|'=56
+'|'=57
 '}'=39
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
@@ -169,3 +171,5 @@ T__91=91
 T__92=92
 T__93=93
 T__94=94
+T__95=95
+T__96=96
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageLexer.java b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageLexer.java
index 00198921..72da7905 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageLexer.java
@@ -68,6 +68,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int T__95=95;
+    public static final int T__96=96;
     public static final int T__26=26;
     public static final int T__27=27;
     public static final int T__28=28;
@@ -684,10 +686,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:38:7: ( '.' )
-            // InternalMachineLearningLanguage.g:38:9: '.'
+            // InternalMachineLearningLanguage.g:38:7: ( 'OR' )
+            // InternalMachineLearningLanguage.g:38:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -704,10 +707,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:39:7: ( 'OR' )
-            // InternalMachineLearningLanguage.g:39:9: 'OR'
+            // InternalMachineLearningLanguage.g:39:7: ( 'XOR' )
+            // InternalMachineLearningLanguage.g:39:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -725,10 +728,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:40:7: ( 'XOR' )
-            // InternalMachineLearningLanguage.g:40:9: 'XOR'
+            // InternalMachineLearningLanguage.g:40:7: ( 'AND' )
+            // InternalMachineLearningLanguage.g:40:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -746,11 +749,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:41:7: ( 'AND' )
-            // InternalMachineLearningLanguage.g:41:9: 'AND'
+            // InternalMachineLearningLanguage.g:41:7: ( '!' )
+            // InternalMachineLearningLanguage.g:41:9: '!'
             {
-            match("AND"); 
-
+            match('!'); 
 
             }
 
@@ -767,10 +769,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:42:7: ( '!' )
-            // InternalMachineLearningLanguage.g:42:9: '!'
+            // InternalMachineLearningLanguage.g:42:7: ( '^' )
+            // InternalMachineLearningLanguage.g:42:9: '^'
             {
-            match('!'); 
+            match('^'); 
 
             }
 
@@ -787,10 +789,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:43:7: ( '^' )
-            // InternalMachineLearningLanguage.g:43:9: '^'
+            // InternalMachineLearningLanguage.g:43:7: ( '(' )
+            // InternalMachineLearningLanguage.g:43:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -807,10 +809,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:44:7: ( '(' )
-            // InternalMachineLearningLanguage.g:44:9: '('
+            // InternalMachineLearningLanguage.g:44:7: ( ')' )
+            // InternalMachineLearningLanguage.g:44:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -827,10 +829,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:45:7: ( ')' )
-            // InternalMachineLearningLanguage.g:45:9: ')'
+            // InternalMachineLearningLanguage.g:45:7: ( 'true' )
+            // InternalMachineLearningLanguage.g:45:9: 'true'
             {
-            match(')'); 
+            match("true"); 
+
 
             }
 
@@ -847,10 +850,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:46:7: ( 'value' )
-            // InternalMachineLearningLanguage.g:46:9: 'value'
+            // InternalMachineLearningLanguage.g:46:7: ( 'false' )
+            // InternalMachineLearningLanguage.g:46:9: 'false'
             {
-            match("value"); 
+            match("false"); 
 
 
             }
@@ -868,10 +871,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:47:7: ( 'true' )
-            // InternalMachineLearningLanguage.g:47:9: 'true'
+            // InternalMachineLearningLanguage.g:47:7: ( 'abstract' )
+            // InternalMachineLearningLanguage.g:47:9: 'abstract'
             {
-            match("true"); 
+            match("abstract"); 
 
 
             }
@@ -889,10 +892,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:48:7: ( 'false' )
-            // InternalMachineLearningLanguage.g:48:9: 'false'
+            // InternalMachineLearningLanguage.g:48:7: ( 'type' )
+            // InternalMachineLearningLanguage.g:48:9: 'type'
             {
-            match("false"); 
+            match("type"); 
 
 
             }
@@ -910,10 +913,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:49:7: ( ':' )
-            // InternalMachineLearningLanguage.g:49:9: ':'
+            // InternalMachineLearningLanguage.g:49:7: ( 'extends' )
+            // InternalMachineLearningLanguage.g:49:9: 'extends'
             {
-            match(':'); 
+            match("extends"); 
+
 
             }
 
@@ -930,11 +934,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:50:7: ( 'literal' )
-            // InternalMachineLearningLanguage.g:50:9: 'literal'
+            // InternalMachineLearningLanguage.g:50:7: ( ':' )
+            // InternalMachineLearningLanguage.g:50:9: ':'
             {
-            match("literal"); 
-
+            match(':'); 
 
             }
 
@@ -951,10 +954,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:51:7: ( 'instance' )
-            // InternalMachineLearningLanguage.g:51:9: 'instance'
+            // InternalMachineLearningLanguage.g:51:7: ( 'literal' )
+            // InternalMachineLearningLanguage.g:51:9: 'literal'
             {
-            match("instance"); 
+            match("literal"); 
 
 
             }
@@ -972,10 +975,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:52:7: ( '|' )
-            // InternalMachineLearningLanguage.g:52:9: '|'
+            // InternalMachineLearningLanguage.g:52:7: ( 'instance' )
+            // InternalMachineLearningLanguage.g:52:9: 'instance'
             {
-            match('|'); 
+            match("instance"); 
+
 
             }
 
@@ -992,11 +996,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:53:7: ( 'string' )
-            // InternalMachineLearningLanguage.g:53:9: 'string'
+            // InternalMachineLearningLanguage.g:53:7: ( '|' )
+            // InternalMachineLearningLanguage.g:53:9: '|'
             {
-            match("string"); 
-
+            match('|'); 
 
             }
 
@@ -1013,10 +1016,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:54:7: ( 'expression' )
-            // InternalMachineLearningLanguage.g:54:9: 'expression'
+            // InternalMachineLearningLanguage.g:54:7: ( 'string' )
+            // InternalMachineLearningLanguage.g:54:9: 'string'
             {
-            match("expression"); 
+            match("string"); 
 
 
             }
@@ -1034,10 +1037,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:55:7: ( 'int' )
-            // InternalMachineLearningLanguage.g:55:9: 'int'
+            // InternalMachineLearningLanguage.g:55:7: ( 'expression' )
+            // InternalMachineLearningLanguage.g:55:9: 'expression'
             {
-            match("int"); 
+            match("expression"); 
 
 
             }
@@ -1055,10 +1058,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:56:7: ( 'float' )
-            // InternalMachineLearningLanguage.g:56:9: 'float'
+            // InternalMachineLearningLanguage.g:56:7: ( 'int' )
+            // InternalMachineLearningLanguage.g:56:9: 'int'
             {
-            match("float"); 
+            match("int"); 
 
 
             }
@@ -1076,10 +1079,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:57:7: ( 'boolean' )
-            // InternalMachineLearningLanguage.g:57:9: 'boolean'
+            // InternalMachineLearningLanguage.g:57:7: ( 'float' )
+            // InternalMachineLearningLanguage.g:57:9: 'float'
             {
-            match("boolean"); 
+            match("float"); 
 
 
             }
@@ -1097,10 +1100,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:58:7: ( 'void' )
-            // InternalMachineLearningLanguage.g:58:9: 'void'
+            // InternalMachineLearningLanguage.g:58:7: ( 'boolean' )
+            // InternalMachineLearningLanguage.g:58:9: 'boolean'
             {
-            match("void"); 
+            match("boolean"); 
 
 
             }
@@ -1118,10 +1121,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:59:7: ( 'array' )
-            // InternalMachineLearningLanguage.g:59:9: 'array'
+            // InternalMachineLearningLanguage.g:59:7: ( 'void' )
+            // InternalMachineLearningLanguage.g:59:9: 'void'
             {
-            match("array"); 
+            match("void"); 
 
 
             }
@@ -1139,10 +1142,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:60:7: ( '>=' )
-            // InternalMachineLearningLanguage.g:60:9: '>='
+            // InternalMachineLearningLanguage.g:60:7: ( 'array' )
+            // InternalMachineLearningLanguage.g:60:9: 'array'
             {
-            match(">="); 
+            match("array"); 
 
 
             }
@@ -1160,10 +1163,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:61:7: ( '>' )
-            // InternalMachineLearningLanguage.g:61:9: '>'
+            // InternalMachineLearningLanguage.g:61:7: ( '.' )
+            // InternalMachineLearningLanguage.g:61:9: '.'
             {
-            match('>'); 
+            match('.'); 
 
             }
 
@@ -1180,10 +1183,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:62:7: ( '=' )
-            // InternalMachineLearningLanguage.g:62:9: '='
+            // InternalMachineLearningLanguage.g:62:7: ( '>=' )
+            // InternalMachineLearningLanguage.g:62:9: '>='
             {
-            match('='); 
+            match(">="); 
+
 
             }
 
@@ -1200,11 +1204,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:63:7: ( '!=' )
-            // InternalMachineLearningLanguage.g:63:9: '!='
+            // InternalMachineLearningLanguage.g:63:7: ( '>' )
+            // InternalMachineLearningLanguage.g:63:9: '>'
             {
-            match("!="); 
-
+            match('>'); 
 
             }
 
@@ -1221,10 +1224,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:64:7: ( '<' )
-            // InternalMachineLearningLanguage.g:64:9: '<'
+            // InternalMachineLearningLanguage.g:64:7: ( '=' )
+            // InternalMachineLearningLanguage.g:64:9: '='
             {
-            match('<'); 
+            match('='); 
 
             }
 
@@ -1241,10 +1244,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:65:7: ( '<=' )
-            // InternalMachineLearningLanguage.g:65:9: '<='
+            // InternalMachineLearningLanguage.g:65:7: ( '!=' )
+            // InternalMachineLearningLanguage.g:65:9: '!='
             {
-            match("<="); 
+            match("!="); 
 
 
             }
@@ -1262,10 +1265,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:66:7: ( '+' )
-            // InternalMachineLearningLanguage.g:66:9: '+'
+            // InternalMachineLearningLanguage.g:66:7: ( '<' )
+            // InternalMachineLearningLanguage.g:66:9: '<'
             {
-            match('+'); 
+            match('<'); 
 
             }
 
@@ -1282,10 +1285,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:67:7: ( '-' )
-            // InternalMachineLearningLanguage.g:67:9: '-'
+            // InternalMachineLearningLanguage.g:67:7: ( '<=' )
+            // InternalMachineLearningLanguage.g:67:9: '<='
             {
-            match('-'); 
+            match("<="); 
+
 
             }
 
@@ -1302,10 +1306,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:68:7: ( '*' )
-            // InternalMachineLearningLanguage.g:68:9: '*'
+            // InternalMachineLearningLanguage.g:68:7: ( '+' )
+            // InternalMachineLearningLanguage.g:68:9: '+'
             {
-            match('*'); 
+            match('+'); 
 
             }
 
@@ -1322,10 +1326,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:69:7: ( '/' )
-            // InternalMachineLearningLanguage.g:69:9: '/'
+            // InternalMachineLearningLanguage.g:69:7: ( '-' )
+            // InternalMachineLearningLanguage.g:69:9: '-'
             {
-            match('/'); 
+            match('-'); 
 
             }
 
@@ -1342,10 +1346,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:70:7: ( '%' )
-            // InternalMachineLearningLanguage.g:70:9: '%'
+            // InternalMachineLearningLanguage.g:70:7: ( '*' )
+            // InternalMachineLearningLanguage.g:70:9: '*'
             {
-            match('%'); 
+            match('*'); 
 
             }
 
@@ -1362,10 +1366,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:71:7: ( 'Y' )
-            // InternalMachineLearningLanguage.g:71:9: 'Y'
+            // InternalMachineLearningLanguage.g:71:7: ( '/' )
+            // InternalMachineLearningLanguage.g:71:9: '/'
             {
-            match('Y'); 
+            match('/'); 
 
             }
 
@@ -1382,10 +1386,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:72:7: ( 'Z' )
-            // InternalMachineLearningLanguage.g:72:9: 'Z'
+            // InternalMachineLearningLanguage.g:72:7: ( '%' )
+            // InternalMachineLearningLanguage.g:72:9: '%'
             {
-            match('Z'); 
+            match('%'); 
 
             }
 
@@ -1402,10 +1406,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:73:7: ( 'E' )
-            // InternalMachineLearningLanguage.g:73:9: 'E'
+            // InternalMachineLearningLanguage.g:73:7: ( 'Y' )
+            // InternalMachineLearningLanguage.g:73:9: 'Y'
             {
-            match('E'); 
+            match('Y'); 
 
             }
 
@@ -1422,10 +1426,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:74:7: ( 'P' )
-            // InternalMachineLearningLanguage.g:74:9: 'P'
+            // InternalMachineLearningLanguage.g:74:7: ( 'Z' )
+            // InternalMachineLearningLanguage.g:74:9: 'Z'
             {
-            match('P'); 
+            match('Z'); 
 
             }
 
@@ -1442,10 +1446,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:75:7: ( 'T' )
-            // InternalMachineLearningLanguage.g:75:9: 'T'
+            // InternalMachineLearningLanguage.g:75:7: ( 'E' )
+            // InternalMachineLearningLanguage.g:75:9: 'E'
             {
-            match('T'); 
+            match('E'); 
 
             }
 
@@ -1462,10 +1466,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:76:7: ( 'G' )
-            // InternalMachineLearningLanguage.g:76:9: 'G'
+            // InternalMachineLearningLanguage.g:76:7: ( 'P' )
+            // InternalMachineLearningLanguage.g:76:9: 'P'
             {
-            match('G'); 
+            match('P'); 
 
             }
 
@@ -1482,10 +1486,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:77:7: ( 'M' )
-            // InternalMachineLearningLanguage.g:77:9: 'M'
+            // InternalMachineLearningLanguage.g:77:7: ( 'T' )
+            // InternalMachineLearningLanguage.g:77:9: 'T'
             {
-            match('M'); 
+            match('T'); 
 
             }
 
@@ -1502,10 +1506,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:78:7: ( 'k' )
-            // InternalMachineLearningLanguage.g:78:9: 'k'
+            // InternalMachineLearningLanguage.g:78:7: ( 'G' )
+            // InternalMachineLearningLanguage.g:78:9: 'G'
             {
-            match('k'); 
+            match('G'); 
 
             }
 
@@ -1522,10 +1526,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__83;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:79:7: ( 'h' )
-            // InternalMachineLearningLanguage.g:79:9: 'h'
+            // InternalMachineLearningLanguage.g:79:7: ( 'M' )
+            // InternalMachineLearningLanguage.g:79:9: 'M'
             {
-            match('h'); 
+            match('M'); 
 
             }
 
@@ -1542,11 +1546,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__84;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:80:7: ( 'da' )
-            // InternalMachineLearningLanguage.g:80:9: 'da'
+            // InternalMachineLearningLanguage.g:80:7: ( 'k' )
+            // InternalMachineLearningLanguage.g:80:9: 'k'
             {
-            match("da"); 
-
+            match('k'); 
 
             }
 
@@ -1563,10 +1566,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__85;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:81:7: ( 'd' )
-            // InternalMachineLearningLanguage.g:81:9: 'd'
+            // InternalMachineLearningLanguage.g:81:7: ( 'h' )
+            // InternalMachineLearningLanguage.g:81:9: 'h'
             {
-            match('d'); 
+            match('h'); 
 
             }
 
@@ -1583,10 +1586,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__86;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:82:7: ( 'c' )
-            // InternalMachineLearningLanguage.g:82:9: 'c'
+            // InternalMachineLearningLanguage.g:82:7: ( 'da' )
+            // InternalMachineLearningLanguage.g:82:9: 'da'
             {
-            match('c'); 
+            match("da"); 
+
 
             }
 
@@ -1603,10 +1607,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__87;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:83:7: ( 'm' )
-            // InternalMachineLearningLanguage.g:83:9: 'm'
+            // InternalMachineLearningLanguage.g:83:7: ( 'd' )
+            // InternalMachineLearningLanguage.g:83:9: 'd'
             {
-            match('m'); 
+            match('d'); 
 
             }
 
@@ -1623,10 +1627,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__88;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:84:7: ( '\\u00B5' )
-            // InternalMachineLearningLanguage.g:84:9: '\\u00B5'
+            // InternalMachineLearningLanguage.g:84:7: ( 'c' )
+            // InternalMachineLearningLanguage.g:84:9: 'c'
             {
-            match('\u00B5'); 
+            match('c'); 
 
             }
 
@@ -1643,10 +1647,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__89;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:85:7: ( 'n' )
-            // InternalMachineLearningLanguage.g:85:9: 'n'
+            // InternalMachineLearningLanguage.g:85:7: ( 'm' )
+            // InternalMachineLearningLanguage.g:85:9: 'm'
             {
-            match('n'); 
+            match('m'); 
 
             }
 
@@ -1663,10 +1667,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__90;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:86:7: ( 'p' )
-            // InternalMachineLearningLanguage.g:86:9: 'p'
+            // InternalMachineLearningLanguage.g:86:7: ( '\\u00B5' )
+            // InternalMachineLearningLanguage.g:86:9: '\\u00B5'
             {
-            match('p'); 
+            match('\u00B5'); 
 
             }
 
@@ -1683,10 +1687,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__91;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:87:7: ( 'f' )
-            // InternalMachineLearningLanguage.g:87:9: 'f'
+            // InternalMachineLearningLanguage.g:87:7: ( 'n' )
+            // InternalMachineLearningLanguage.g:87:9: 'n'
             {
-            match('f'); 
+            match('n'); 
 
             }
 
@@ -1703,10 +1707,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__92;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:88:7: ( 'a' )
-            // InternalMachineLearningLanguage.g:88:9: 'a'
+            // InternalMachineLearningLanguage.g:88:7: ( 'p' )
+            // InternalMachineLearningLanguage.g:88:9: 'p'
             {
-            match('a'); 
+            match('p'); 
 
             }
 
@@ -1723,10 +1727,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__93;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:89:7: ( 'z' )
-            // InternalMachineLearningLanguage.g:89:9: 'z'
+            // InternalMachineLearningLanguage.g:89:7: ( 'f' )
+            // InternalMachineLearningLanguage.g:89:9: 'f'
             {
-            match('z'); 
+            match('f'); 
 
             }
 
@@ -1743,10 +1747,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = T__94;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:90:7: ( 'y' )
-            // InternalMachineLearningLanguage.g:90:9: 'y'
+            // InternalMachineLearningLanguage.g:90:7: ( 'a' )
+            // InternalMachineLearningLanguage.g:90:9: 'a'
             {
-            match('y'); 
+            match('a'); 
 
             }
 
@@ -1758,11 +1762,51 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__94"
 
+    // $ANTLR start "T__95"
+    public final void mT__95() throws RecognitionException {
+        try {
+            int _type = T__95;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalMachineLearningLanguage.g:91:7: ( 'z' )
+            // InternalMachineLearningLanguage.g:91:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__95"
+
+    // $ANTLR start "T__96"
+    public final void mT__96() throws RecognitionException {
+        try {
+            int _type = T__96;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalMachineLearningLanguage.g:92:7: ( 'y' )
+            // InternalMachineLearningLanguage.g:92:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__96"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:3757:21: ( '0' .. '9' )
-            // InternalMachineLearningLanguage.g:3757:23: '0' .. '9'
+            // InternalMachineLearningLanguage.g:3850:21: ( '0' .. '9' )
+            // InternalMachineLearningLanguage.g:3850:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1777,11 +1821,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalMachineLearningLanguage.g:3759:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalMachineLearningLanguage.g:3759:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:3852:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalMachineLearningLanguage.g:3852:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalMachineLearningLanguage.g:3759:30: ( '+' | '-' )?
+            // InternalMachineLearningLanguage.g:3852:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1807,7 +1851,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
             }
 
-            // InternalMachineLearningLanguage.g:3759:41: ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:3852:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1821,7 +1865,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3759:41: RULE_DIGIT
+            	    // InternalMachineLearningLanguage.g:3852:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1851,10 +1895,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3761:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalMachineLearningLanguage.g:3761:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:3854:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalMachineLearningLanguage.g:3854:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalMachineLearningLanguage.g:3761:12: ( '-' )?
+            // InternalMachineLearningLanguage.g:3854:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1863,7 +1907,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3761:12: '-'
+                    // InternalMachineLearningLanguage.g:3854:12: '-'
                     {
                     match('-'); 
 
@@ -1872,7 +1916,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
             }
 
-            // InternalMachineLearningLanguage.g:3761:17: ( RULE_DIGIT )+
+            // InternalMachineLearningLanguage.g:3854:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1886,7 +1930,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3761:17: RULE_DIGIT
+            	    // InternalMachineLearningLanguage.g:3854:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1918,15 +1962,15 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3763:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalMachineLearningLanguage.g:3763:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalMachineLearningLanguage.g:3856:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalMachineLearningLanguage.g:3856:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalMachineLearningLanguage.g:3763:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalMachineLearningLanguage.g:3856:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3763:16: RULE_INT RULE_EXPONENT
+                    // InternalMachineLearningLanguage.g:3856:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1934,11 +1978,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3763:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalMachineLearningLanguage.g:3856:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalMachineLearningLanguage.g:3763:52: ( RULE_DIGIT )*
+                    // InternalMachineLearningLanguage.g:3856:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1951,7 +1995,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalMachineLearningLanguage.g:3763:52: RULE_DIGIT
+                    	    // InternalMachineLearningLanguage.g:3856:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1963,7 +2007,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalMachineLearningLanguage.g:3763:64: ( RULE_EXPONENT )?
+                    // InternalMachineLearningLanguage.g:3856:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1972,7 +2016,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalMachineLearningLanguage.g:3763:64: RULE_EXPONENT
+                            // InternalMachineLearningLanguage.g:3856:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -2003,11 +2047,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3765:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalMachineLearningLanguage.g:3765:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalMachineLearningLanguage.g:3858:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalMachineLearningLanguage.g:3858:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalMachineLearningLanguage.g:3765:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalMachineLearningLanguage.g:3858:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -2023,7 +2067,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3765:20: '\\\\' .
+            	    // InternalMachineLearningLanguage.g:3858:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2031,7 +2075,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalMachineLearningLanguage.g:3765:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalMachineLearningLanguage.g:3858:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2068,11 +2112,11 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3767:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalMachineLearningLanguage.g:3767:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalMachineLearningLanguage.g:3860:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalMachineLearningLanguage.g:3860:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalMachineLearningLanguage.g:3767:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalMachineLearningLanguage.g:3860:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -2088,7 +2132,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3767:24: '\\\\' .
+            	    // InternalMachineLearningLanguage.g:3860:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -2096,7 +2140,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalMachineLearningLanguage.g:3767:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalMachineLearningLanguage.g:3860:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -2133,10 +2177,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3769:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalMachineLearningLanguage.g:3769:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalMachineLearningLanguage.g:3862:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalMachineLearningLanguage.g:3862:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalMachineLearningLanguage.g:3769:11: ( '^' )?
+            // InternalMachineLearningLanguage.g:3862:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -2145,7 +2189,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3769:11: '^'
+                    // InternalMachineLearningLanguage.g:3862:11: '^'
                     {
                     match('^'); 
 
@@ -2163,7 +2207,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalMachineLearningLanguage.g:3769:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalMachineLearningLanguage.g:3862:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -2212,12 +2256,12 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3771:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalMachineLearningLanguage.g:3771:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalMachineLearningLanguage.g:3864:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalMachineLearningLanguage.g:3864:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalMachineLearningLanguage.g:3771:24: ( options {greedy=false; } : . )*
+            // InternalMachineLearningLanguage.g:3864:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -2242,7 +2286,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3771:52: .
+            	    // InternalMachineLearningLanguage.g:3864:52: .
             	    {
             	    matchAny(); 
 
@@ -2272,12 +2316,12 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3773:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalMachineLearningLanguage.g:3773:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalMachineLearningLanguage.g:3866:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalMachineLearningLanguage.g:3866:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalMachineLearningLanguage.g:3773:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalMachineLearningLanguage.g:3866:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2290,7 +2334,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3773:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalMachineLearningLanguage.g:3866: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();
@@ -2310,7 +2354,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalMachineLearningLanguage.g:3773:40: ( ( '\\r' )? '\\n' )?
+            // InternalMachineLearningLanguage.g:3866:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2319,9 +2363,9 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3773:41: ( '\\r' )? '\\n'
+                    // InternalMachineLearningLanguage.g:3866:41: ( '\\r' )? '\\n'
                     {
-                    // InternalMachineLearningLanguage.g:3773:41: ( '\\r' )?
+                    // InternalMachineLearningLanguage.g:3866:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2330,7 +2374,7 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalMachineLearningLanguage.g:3773:41: '\\r'
+                            // InternalMachineLearningLanguage.g:3866:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2362,10 +2406,10 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3775:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalMachineLearningLanguage.g:3775:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalMachineLearningLanguage.g:3868:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalMachineLearningLanguage.g:3868:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalMachineLearningLanguage.g:3775:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalMachineLearningLanguage.g:3868:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2419,8 +2463,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalMachineLearningLanguage.g:3777:16: ( . )
-            // InternalMachineLearningLanguage.g:3777:18: .
+            // InternalMachineLearningLanguage.g:3870:16: ( . )
+            // InternalMachineLearningLanguage.g:3870:18: .
             {
             matchAny(); 
 
@@ -2435,8 +2479,8 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalMachineLearningLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=89;
+        // InternalMachineLearningLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=91;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -3000,63 +3044,77 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
                 }
                 break;
             case 81 :
-                // InternalMachineLearningLanguage.g:1:490: RULE_INT
+                // InternalMachineLearningLanguage.g:1:490: T__95
                 {
-                mRULE_INT(); 
+                mT__95(); 
 
                 }
                 break;
             case 82 :
-                // InternalMachineLearningLanguage.g:1:499: RULE_DOUBLE
+                // InternalMachineLearningLanguage.g:1:496: T__96
                 {
-                mRULE_DOUBLE(); 
+                mT__96(); 
 
                 }
                 break;
             case 83 :
-                // InternalMachineLearningLanguage.g:1:511: RULE_STRING
+                // InternalMachineLearningLanguage.g:1:502: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 84 :
-                // InternalMachineLearningLanguage.g:1:523: RULE_QUOTED_ID
+                // InternalMachineLearningLanguage.g:1:511: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 85 :
-                // InternalMachineLearningLanguage.g:1:538: RULE_ID
+                // InternalMachineLearningLanguage.g:1:523: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 86 :
-                // InternalMachineLearningLanguage.g:1:546: RULE_ML_COMMENT
+                // InternalMachineLearningLanguage.g:1:535: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 87 :
-                // InternalMachineLearningLanguage.g:1:562: RULE_SL_COMMENT
+                // InternalMachineLearningLanguage.g:1:550: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 88 :
-                // InternalMachineLearningLanguage.g:1:578: RULE_WS
+                // InternalMachineLearningLanguage.g:1:558: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 89 :
-                // InternalMachineLearningLanguage.g:1:586: RULE_ANY_OTHER
+                // InternalMachineLearningLanguage.g:1:574: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 90 :
+                // InternalMachineLearningLanguage.g:1:590: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 91 :
+                // InternalMachineLearningLanguage.g:1:598: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -3120,60 +3178,60 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "3763:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "3856:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\74\1\uffff\1\100\1\103\1\uffff\3\74\1\120\1\123\3\74\4\uffff\1\135\1\137\1\uffff\3\74\1\145\1\146\2\uffff\1\74\1\uffff\1\74\1\156\1\uffff\1\161\1\uffff\1\164\1\uffff\1\170\1\uffff\1\172\1\173\1\174\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\1\u0083\1\uffff\1\u0085\1\u0086\1\u0087\1\u0088\2\72\3\uffff\1\74\2\uffff\2\74\1\uffff\2\74\2\uffff\1\u0093\12\74\1\uffff\2\74\1\uffff\3\74\1\u00a6\6\uffff\1\u00a8\2\uffff\1\u00a9\2\74\5\uffff\2\74\1\uffff\1\74\6\uffff\1\u0088\31\uffff\1\u00af\5\74\1\uffff\7\74\1\u00bd\2\74\1\u00c0\1\74\1\u00c2\4\74\1\u00c7\1\uffff\1\74\2\uffff\1\u00c9\1\u00ca\3\74\1\uffff\3\74\1\u00d1\2\74\1\u00d4\1\74\1\u00d6\1\74\1\u00d8\1\74\1\u00da\1\uffff\2\74\1\uffff\1\74\1\uffff\4\74\1\uffff\1\u00e2\2\uffff\1\74\1\u00e4\1\74\1\u00e6\2\74\1\uffff\2\74\1\uffff\1\u00eb\1\uffff\1\74\1\uffff\1\74\1\uffff\1\u00ee\1\u00ef\1\u00f0\1\74\1\u00f2\2\74\1\uffff\1\u00f5\1\uffff\1\74\1\uffff\4\74\1\uffff\2\74\3\uffff\1\74\1\uffff\1\u00fe\1\74\1\uffff\1\74\1\u0102\1\74\1\u0104\1\u0105\1\u0106\2\74\1\uffff\1\74\1\u010a\1\74\1\uffff\1\74\3\uffff\1\u010d\1\74\1\u010f\1\uffff\2\74\1\uffff\1\74\1\uffff\1\u0113\1\u0114\1\u0115\3\uffff";
+        "\1\uffff\1\74\1\uffff\1\100\1\103\1\uffff\3\74\1\121\1\125\3\74\4\uffff\1\137\1\141\3\74\1\146\1\147\3\uffff\2\74\1\uffff\1\157\1\uffff\1\162\1\uffff\1\164\1\uffff\1\171\1\uffff\1\173\1\174\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\1\u0083\1\u0084\1\uffff\1\u0086\1\u0087\1\u0088\1\u0089\2\72\3\uffff\1\74\2\uffff\2\74\1\uffff\2\74\2\uffff\1\u0094\13\74\1\uffff\3\74\1\uffff\3\74\1\u00aa\6\uffff\1\u00ac\1\uffff\1\u00ad\2\74\6\uffff\2\74\10\uffff\1\u0089\30\uffff\1\u00b2\5\74\1\uffff\10\74\1\u00c1\2\74\1\u00c4\2\74\1\u00c7\5\74\1\u00cd\1\uffff\1\74\2\uffff\1\u00cf\1\u00d0\2\74\1\uffff\3\74\1\u00d6\2\74\1\u00d9\1\u00da\1\74\1\u00dc\1\74\1\u00de\1\74\1\u00e0\1\uffff\2\74\1\uffff\2\74\1\uffff\5\74\1\uffff\1\u00ea\2\uffff\1\74\1\u00ec\1\u00ed\2\74\1\uffff\2\74\2\uffff\1\u00f2\1\uffff\1\74\1\uffff\1\74\1\uffff\1\u00f5\1\u00f6\1\74\1\u00f8\2\74\1\u00fb\2\74\1\uffff\1\74\2\uffff\4\74\1\uffff\2\74\2\uffff\1\74\1\uffff\2\74\1\uffff\1\u0108\2\74\1\u010c\1\74\1\u010e\1\u010f\1\u0110\2\74\1\u0113\1\74\1\uffff\1\74\1\u0116\1\74\1\uffff\1\74\3\uffff\1\u0119\1\u011a\1\uffff\1\74\1\u011c\1\uffff\2\74\2\uffff\1\74\1\uffff\1\u0120\1\u0121\1\u0122\3\uffff";
     static final String DFA17_eofS =
-        "\u0116\uffff";
+        "\u0123\uffff";
     static final String DFA17_minS =
-        "\1\0\1\163\1\uffff\2\60\1\uffff\1\157\1\141\1\151\2\60\1\156\1\164\1\156\4\uffff\1\75\1\60\1\uffff\1\122\1\117\1\116\1\75\1\101\2\uffff\1\141\1\uffff\1\157\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\145\2\uffff\1\145\1\162\1\uffff\1\160\1\141\2\uffff\1\60\1\165\1\171\1\157\2\164\1\156\1\157\1\162\1\154\1\157\1\uffff\1\144\1\162\1\uffff\1\144\1\160\1\157\1\60\6\uffff\1\60\2\uffff\1\60\1\122\1\104\5\uffff\1\154\1\151\1\uffff\1\157\6\uffff\1\56\31\uffff\1\60\1\156\1\144\1\141\1\160\1\163\1\uffff\2\145\1\160\1\145\1\150\1\143\1\155\1\60\1\163\1\141\1\60\1\141\1\60\2\162\1\151\1\164\1\60\1\uffff\1\141\2\uffff\2\60\1\165\1\144\1\154\1\uffff\1\147\1\151\1\155\1\60\1\151\1\165\1\60\1\162\1\60\1\162\1\60\1\164\1\60\1\uffff\1\145\1\164\1\uffff\1\171\1\uffff\2\145\1\156\1\141\1\uffff\1\60\2\uffff\1\145\1\60\1\145\1\60\1\143\1\145\1\uffff\1\156\1\162\1\uffff\1\60\1\uffff\1\141\1\uffff\1\151\1\uffff\3\60\1\163\1\60\1\147\1\156\1\uffff\1\60\1\uffff\1\141\1\uffff\2\164\1\147\1\145\1\uffff\1\154\1\157\3\uffff\1\163\1\uffff\1\60\1\143\1\uffff\1\156\1\60\1\145\3\60\1\156\1\151\1\uffff\1\145\1\60\1\157\1\uffff\1\162\3\uffff\1\60\1\157\1\60\1\uffff\1\156\1\163\1\uffff\1\156\1\uffff\3\60\3\uffff";
+        "\1\0\1\163\1\uffff\2\60\1\uffff\1\157\1\141\1\151\2\60\1\156\1\164\1\156\4\uffff\1\75\1\60\1\122\1\117\1\116\1\75\1\101\3\uffff\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\12\60\1\uffff\3\60\1\56\2\0\3\uffff\1\145\2\uffff\1\145\1\162\1\uffff\1\160\1\141\2\uffff\1\60\1\165\1\160\1\171\1\157\2\164\1\156\1\157\1\162\1\154\1\157\1\uffff\1\144\1\163\1\162\1\uffff\1\144\1\160\1\157\1\60\6\uffff\1\60\1\uffff\1\60\1\122\1\104\6\uffff\1\157\1\151\10\uffff\1\56\30\uffff\1\60\1\156\1\144\1\141\1\160\1\163\1\uffff\3\145\1\160\1\145\1\150\1\143\1\155\1\60\1\163\1\141\1\60\1\164\1\141\1\60\1\145\2\162\1\151\1\164\1\60\1\uffff\1\141\2\uffff\2\60\1\154\1\144\1\uffff\1\147\1\151\1\155\1\60\1\151\1\165\2\60\1\162\1\60\1\162\1\60\1\164\1\60\1\uffff\1\145\1\164\1\uffff\1\162\1\171\1\uffff\1\156\2\145\1\156\1\141\1\uffff\1\60\2\uffff\1\145\2\60\1\143\1\145\1\uffff\1\156\1\162\2\uffff\1\60\1\uffff\1\141\1\uffff\1\151\1\uffff\2\60\1\141\1\60\1\144\1\163\1\60\1\147\1\156\1\uffff\1\141\2\uffff\2\164\1\147\1\145\1\uffff\1\154\1\157\2\uffff\1\143\1\uffff\2\163\1\uffff\1\60\1\143\1\156\1\60\1\145\3\60\1\156\1\164\1\60\1\151\1\uffff\1\145\1\60\1\157\1\uffff\1\162\3\uffff\2\60\1\uffff\1\157\1\60\1\uffff\1\156\1\163\2\uffff\1\156\1\uffff\3\60\3\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\163\1\uffff\2\172\1\uffff\1\162\1\157\1\151\2\172\1\170\1\164\1\156\4\uffff\1\75\1\172\1\uffff\1\122\1\117\1\116\1\75\1\172\2\uffff\1\157\1\uffff\1\157\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\151\2\uffff\1\145\1\162\1\uffff\1\160\1\141\2\uffff\1\172\1\165\1\171\1\157\2\164\1\156\1\157\1\162\1\154\1\157\1\uffff\1\144\1\162\1\uffff\1\144\1\160\1\162\1\172\6\uffff\1\172\2\uffff\1\172\1\122\1\104\5\uffff\1\154\1\151\1\uffff\1\157\6\uffff\1\145\31\uffff\1\172\1\156\1\144\1\141\2\163\1\uffff\2\145\1\160\1\145\1\150\1\143\1\155\1\172\1\163\1\141\1\172\1\141\1\172\2\162\1\151\1\164\1\172\1\uffff\1\141\2\uffff\2\172\1\165\1\144\1\154\1\uffff\1\147\1\151\1\155\1\172\1\151\1\165\1\172\1\162\1\172\1\162\1\172\1\164\1\172\1\uffff\1\145\1\164\1\uffff\1\171\1\uffff\2\145\1\156\1\141\1\uffff\1\172\2\uffff\1\145\1\172\1\145\1\172\1\143\1\145\1\uffff\1\156\1\162\1\uffff\1\172\1\uffff\1\141\1\uffff\1\151\1\uffff\3\172\1\163\1\172\1\147\1\156\1\uffff\1\172\1\uffff\1\141\1\uffff\2\164\1\147\1\145\1\uffff\1\154\1\157\3\uffff\1\163\1\uffff\1\172\1\143\1\uffff\1\156\1\172\1\145\3\172\1\156\1\151\1\uffff\1\145\1\172\1\157\1\uffff\1\162\3\uffff\1\172\1\157\1\172\1\uffff\1\156\1\163\1\uffff\1\156\1\uffff\3\172\3\uffff";
+        "\1\uffff\1\163\1\uffff\2\172\1\uffff\1\171\1\157\1\151\2\172\1\170\1\164\1\156\4\uffff\1\75\1\172\1\122\1\117\1\116\1\75\1\172\3\uffff\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\12\172\1\uffff\3\172\1\145\2\uffff\3\uffff\1\151\2\uffff\1\145\1\162\1\uffff\1\160\1\141\2\uffff\1\172\1\165\1\160\1\171\1\157\2\164\1\156\1\157\1\162\1\154\1\157\1\uffff\1\144\1\163\1\162\1\uffff\1\144\1\164\1\162\1\172\6\uffff\1\172\1\uffff\1\172\1\122\1\104\6\uffff\1\157\1\151\10\uffff\1\145\30\uffff\1\172\1\156\1\144\1\141\2\163\1\uffff\3\145\1\160\1\145\1\150\1\143\1\155\1\172\1\163\1\141\1\172\1\164\1\141\1\172\1\145\2\162\1\151\1\164\1\172\1\uffff\1\141\2\uffff\2\172\1\154\1\144\1\uffff\1\147\1\151\1\155\1\172\1\151\1\165\2\172\1\162\1\172\1\162\1\172\1\164\1\172\1\uffff\1\145\1\164\1\uffff\1\162\1\171\1\uffff\1\156\2\145\1\156\1\141\1\uffff\1\172\2\uffff\1\145\2\172\1\143\1\145\1\uffff\1\156\1\162\2\uffff\1\172\1\uffff\1\141\1\uffff\1\151\1\uffff\2\172\1\141\1\172\1\144\1\163\1\172\1\147\1\156\1\uffff\1\141\2\uffff\2\164\1\147\1\145\1\uffff\1\154\1\157\2\uffff\1\143\1\uffff\2\163\1\uffff\1\172\1\143\1\156\1\172\1\145\3\172\1\156\1\164\1\172\1\151\1\uffff\1\145\1\172\1\157\1\uffff\1\162\3\uffff\2\172\1\uffff\1\157\1\172\1\uffff\1\156\1\163\2\uffff\1\156\1\uffff\3\172\3\uffff";
     static final String DFA17_acceptS =
-        "\2\uffff\1\2\2\uffff\1\5\10\uffff\1\26\1\27\1\30\1\31\2\uffff\1\34\5\uffff\1\42\1\43\1\uffff\1\52\2\uffff\1\64\1\uffff\1\70\1\uffff\1\72\1\uffff\1\74\12\uffff\1\112\6\uffff\1\125\1\130\1\131\1\uffff\1\125\1\2\2\uffff\1\114\2\uffff\1\111\1\5\13\uffff\1\115\2\uffff\1\116\4\uffff\1\26\1\27\1\30\1\31\1\32\1\47\1\uffff\1\107\1\34\3\uffff\1\65\1\40\1\41\1\42\1\43\2\uffff\1\52\1\uffff\1\62\1\63\1\64\1\67\1\66\1\70\1\uffff\1\71\1\72\1\126\1\127\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\110\1\112\1\113\1\117\1\120\1\121\1\122\1\123\1\124\1\130\6\uffff\1\6\22\uffff\1\24\1\uffff\1\106\1\35\5\uffff\1\1\15\uffff\1\23\2\uffff\1\17\1\uffff\1\21\4\uffff\1\55\1\uffff\1\36\1\37\6\uffff\1\4\2\uffff\1\45\1\uffff\1\25\1\uffff\1\11\1\uffff\1\16\7\uffff\1\33\1\uffff\1\60\1\uffff\1\7\4\uffff\1\10\2\uffff\1\46\1\56\1\61\1\uffff\1\22\2\uffff\1\44\10\uffff\1\53\3\uffff\1\15\1\uffff\1\13\1\20\1\50\3\uffff\1\57\2\uffff\1\12\1\uffff\1\51\3\uffff\1\3\1\14\1\54";
+        "\2\uffff\1\2\2\uffff\1\5\10\uffff\1\26\1\27\1\30\1\31\7\uffff\1\41\1\42\1\53\2\uffff\1\63\1\uffff\1\66\1\uffff\1\72\1\uffff\1\74\1\uffff\1\76\12\uffff\1\114\6\uffff\1\127\1\132\1\133\1\uffff\1\127\1\2\2\uffff\1\116\2\uffff\1\113\1\5\14\uffff\1\117\3\uffff\1\120\4\uffff\1\26\1\27\1\30\1\31\1\32\1\50\1\uffff\1\111\3\uffff\1\67\1\37\1\40\1\41\1\42\1\53\2\uffff\1\63\1\64\1\65\1\66\1\71\1\70\1\72\1\73\1\uffff\1\74\1\130\1\131\1\75\1\76\1\77\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107\1\112\1\114\1\115\1\121\1\122\1\123\1\124\1\125\1\126\1\132\6\uffff\1\6\25\uffff\1\24\1\uffff\1\110\1\34\4\uffff\1\1\16\uffff\1\23\2\uffff\1\17\2\uffff\1\21\5\uffff\1\56\1\uffff\1\35\1\36\5\uffff\1\4\2\uffff\1\43\1\46\1\uffff\1\25\1\uffff\1\11\1\uffff\1\16\11\uffff\1\33\1\uffff\1\61\1\7\4\uffff\1\10\2\uffff\1\44\1\57\1\uffff\1\62\2\uffff\1\22\14\uffff\1\54\3\uffff\1\15\1\uffff\1\13\1\20\1\51\2\uffff\1\47\2\uffff\1\60\2\uffff\1\12\1\45\1\uffff\1\52\3\uffff\1\3\1\14\1\55";
     static final String DFA17_specialS =
-        "\1\2\65\uffff\1\1\1\0\u00de\uffff}>";
+        "\1\1\65\uffff\1\0\1\2\u00eb\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\72\2\71\2\72\1\71\22\72\1\71\1\30\1\66\2\72\1\46\1\72\1\67\1\32\1\33\1\44\1\42\1\5\1\43\1\24\1\45\12\65\1\22\1\2\1\41\1\40\1\37\2\72\1\27\3\70\1\51\1\70\1\54\5\70\1\55\1\70\1\25\1\52\3\70\1\53\3\70\1\26\1\47\1\50\1\16\1\72\1\17\1\31\1\70\1\72\1\12\1\36\1\60\1\23\1\13\1\11\1\70\1\57\1\15\1\70\1\56\1\7\1\4\1\62\1\70\1\3\2\70\1\14\1\6\1\1\1\34\1\10\1\70\1\64\1\63\1\20\1\35\1\21\67\72\1\61\uff4a\72",
+            "\11\72\2\71\2\72\1\71\22\72\1\71\1\27\1\66\2\72\1\46\1\72\1\67\1\31\1\32\1\44\1\42\1\5\1\43\1\36\1\45\12\65\1\22\1\2\1\41\1\40\1\37\2\72\1\26\3\70\1\51\1\70\1\54\5\70\1\55\1\70\1\24\1\52\3\70\1\53\3\70\1\25\1\47\1\50\1\16\1\72\1\17\1\30\1\70\1\72\1\12\1\34\1\60\1\23\1\13\1\11\1\70\1\57\1\15\1\70\1\56\1\7\1\4\1\62\1\70\1\3\2\70\1\14\1\6\1\1\1\35\1\10\1\70\1\64\1\63\1\20\1\33\1\21\67\72\1\61\uff4a\72",
             "\1\73",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\77\20\74\1\76\10\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\101\3\74\1\102\25\74",
             "",
-            "\1\105\2\uffff\1\106",
-            "\1\107\7\uffff\1\111\5\uffff\1\110",
-            "\1\112",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\116\12\74\1\117\2\74\1\115\2\74\1\114\2\74\1\113\5\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\15\74\1\121\3\74\1\122\10\74",
-            "\1\124\11\uffff\1\125",
-            "\1\126",
-            "\1\127",
-            "",
+            "\1\105\2\uffff\1\106\6\uffff\1\107",
+            "\1\110\7\uffff\1\112\5\uffff\1\111",
+            "\1\113",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\117\12\74\1\120\2\74\1\116\2\74\1\115\2\74\1\114\5\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\74\1\123\13\74\1\122\3\74\1\124\10\74",
+            "\1\126\11\uffff\1\127",
+            "\1\130",
+            "\1\131",
             "",
             "",
             "",
-            "\1\134",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\136\31\74",
             "",
-            "\1\141",
+            "\1\136",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\140\31\74",
             "\1\142",
             "\1\143",
             "\1\144",
+            "\1\145",
             "\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
-            "\1\151\15\uffff\1\152",
             "",
+            "\1\153",
             "\1\154",
-            "\1\155",
             "",
-            "\1\160",
+            "\1\156",
             "",
-            "\12\163",
+            "\1\161",
             "",
-            "\1\166\4\uffff\1\167",
+            "\12\165",
+            "",
+            "\1\167\4\uffff\1\170",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
@@ -3189,24 +3247,23 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0089\1\uffff\12\163\53\uffff\1\u0089",
-            "\0\u008a",
+            "\1\u008a\1\uffff\12\165\53\uffff\1\u008a",
             "\0\u008b",
+            "\0\u008c",
             "",
             "",
             "",
-            "\1\u008d\3\uffff\1\u008e",
+            "\1\u008e\3\uffff\1\u008f",
             "",
             "",
-            "\1\u008f",
             "\1\u0090",
-            "",
             "\1\u0091",
+            "",
             "\1\u0092",
+            "\1\u0093",
             "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0094",
             "\1\u0095",
             "\1\u0096",
             "\1\u0097",
@@ -3216,44 +3273,46 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "\1\u009b",
             "\1\u009c",
             "\1\u009d",
-            "",
             "\1\u009e",
             "\1\u009f",
             "",
             "\1\u00a0",
             "\1\u00a1",
-            "\1\u00a2\2\uffff\1\u00a3",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\22\74\1\u00a4\1\u00a5\6\74",
+            "\1\u00a2",
             "",
+            "\1\u00a3",
+            "\1\u00a5\3\uffff\1\u00a4",
+            "\1\u00a6\2\uffff\1\u00a7",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\22\74\1\u00a8\1\u00a9\6\74",
             "",
             "",
             "",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u00a7\6\74",
             "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u00ab\6\74",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00aa",
-            "\1\u00ab",
+            "\1\u00ae",
+            "\1\u00af",
             "",
             "",
             "",
             "",
             "",
-            "\1\u00ac",
-            "\1\u00ad",
             "",
-            "\1\u00ae",
+            "\1\u00b0",
+            "\1\u00b1",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0089\1\uffff\12\163\53\uffff\1\u0089",
             "",
             "",
+            "\1\u008a\1\uffff\12\165\53\uffff\1\u008a",
+            "",
             "",
             "",
             "",
@@ -3278,135 +3337,147 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00b0",
-            "\1\u00b1",
-            "\1\u00b2",
-            "\1\u00b4\2\uffff\1\u00b3",
+            "\1\u00b3",
+            "\1\u00b4",
             "\1\u00b5",
-            "",
-            "\1\u00b6",
-            "\1\u00b7",
+            "\1\u00b7\2\uffff\1\u00b6",
             "\1\u00b8",
+            "",
             "\1\u00b9",
             "\1\u00ba",
             "\1\u00bb",
             "\1\u00bc",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00bd",
             "\1\u00be",
             "\1\u00bf",
+            "\1\u00c0",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00c1",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c2",
             "\1\u00c3",
-            "\1\u00c4",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00c5",
             "\1\u00c6",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
             "\1\u00c8",
-            "",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00c9",
+            "\1\u00ca",
             "\1\u00cb",
             "\1\u00cc",
-            "\1\u00cd",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "\1\u00ce",
-            "\1\u00cf",
-            "\1\u00d0",
+            "",
+            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d1",
             "\1\u00d2",
+            "",
             "\1\u00d3",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d4",
             "\1\u00d5",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00d7",
+            "\1\u00d8",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00d9",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
             "\1\u00db",
-            "\1\u00dc",
-            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00dd",
-            "",
-            "\1\u00de",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00df",
-            "\1\u00e0",
-            "\1\u00e1",
-            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
+            "\1\u00e1",
+            "\1\u00e2",
             "",
             "\1\u00e3",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00e4",
+            "",
             "\1\u00e5",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00e6",
             "\1\u00e7",
             "\1\u00e8",
-            "",
             "\1\u00e9",
-            "\1\u00ea",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "\1\u00ec",
             "",
-            "\1\u00ed",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00eb",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00ee",
+            "\1\u00ef",
+            "",
+            "\1\u00f0",
             "\1\u00f1",
+            "",
+            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
             "\1\u00f3",
+            "",
             "\1\u00f4",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\1\u00f6",
-            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00f7",
-            "\1\u00f8",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00f9",
             "\1\u00fa",
-            "",
-            "\1\u00fb",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00fc",
+            "\1\u00fd",
             "",
+            "\1\u00fe",
             "",
             "",
-            "\1\u00fd",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00ff",
-            "",
             "\1\u0100",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\10\74\1\u0101\21\74",
+            "\1\u0101",
+            "\1\u0102",
+            "",
             "\1\u0103",
+            "\1\u0104",
+            "",
+            "",
+            "\1\u0105",
+            "",
+            "\1\u0106",
+            "\1\u0107",
+            "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0109",
+            "\1\u010a",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\10\74\1\u010b\21\74",
+            "\1\u010d",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0107",
-            "\1\u0108",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0111",
+            "\1\u0112",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u0114",
             "",
-            "\1\u0109",
+            "\1\u0115",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u010b",
+            "\1\u0117",
             "",
-            "\1\u010c",
+            "\1\u0118",
             "",
             "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u010e",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "\1\u0110",
-            "\1\u0111",
+            "\1\u011b",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
-            "\1\u0112",
+            "\1\u011d",
+            "\1\u011e",
+            "",
+            "",
+            "\1\u011f",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
@@ -3446,33 +3517,23 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_55 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 139;}
-
-                        else s = 58;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
                         int LA17_54 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 138;}
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 139;}
 
                         else s = 58;
 
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
+                    case 1 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -3514,27 +3575,27 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='d') ) {s = 19;}
 
-                        else if ( (LA17_0=='.') ) {s = 20;}
+                        else if ( (LA17_0=='O') ) {s = 20;}
 
-                        else if ( (LA17_0=='O') ) {s = 21;}
+                        else if ( (LA17_0=='X') ) {s = 21;}
 
-                        else if ( (LA17_0=='X') ) {s = 22;}
+                        else if ( (LA17_0=='A') ) {s = 22;}
 
-                        else if ( (LA17_0=='A') ) {s = 23;}
+                        else if ( (LA17_0=='!') ) {s = 23;}
 
-                        else if ( (LA17_0=='!') ) {s = 24;}
+                        else if ( (LA17_0=='^') ) {s = 24;}
 
-                        else if ( (LA17_0=='^') ) {s = 25;}
+                        else if ( (LA17_0=='(') ) {s = 25;}
 
-                        else if ( (LA17_0=='(') ) {s = 26;}
+                        else if ( (LA17_0==')') ) {s = 26;}
 
-                        else if ( (LA17_0==')') ) {s = 27;}
+                        else if ( (LA17_0=='|') ) {s = 27;}
 
-                        else if ( (LA17_0=='v') ) {s = 28;}
+                        else if ( (LA17_0=='b') ) {s = 28;}
 
-                        else if ( (LA17_0=='|') ) {s = 29;}
+                        else if ( (LA17_0=='v') ) {s = 29;}
 
-                        else if ( (LA17_0=='b') ) {s = 30;}
+                        else if ( (LA17_0=='.') ) {s = 30;}
 
                         else if ( (LA17_0=='>') ) {s = 31;}
 
@@ -3592,6 +3653,16 @@ public class InternalMachineLearningLanguageLexer extends Lexer {
 
                         else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||LA17_0=='\\'||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 58;}
 
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
+                        int LA17_55 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_55>='\u0000' && LA17_55<='\uFFFF')) ) {s = 140;}
+
+                        else s = 58;
+
                         if ( s>=0 ) return s;
                         break;
             }
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageParser.java b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageParser.java
index 640cfba0..3697a746 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/parser/antlr/internal/InternalMachineLearningLanguageParser.java
@@ -23,7 +23,7 @@ import java.util.HashMap;
 @SuppressWarnings("all")
 public class InternalMachineLearningLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_DOUBLE", "RULE_QUOTED_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'use'", "';'", "'prediction'", "'maps'", "','", "'to'", "'using'", "'layer'", "'with'", "'function'", "'mapping'", "'parameters'", "'predict'", "'from'", "'and'", "'measure'", "'end'", "'store'", "'for'", "'in'", "'loop'", "'['", "']'", "'{'", "'}'", "':='", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'value'", "'true'", "'false'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_STRING", "RULE_ID", "RULE_INT", "RULE_DOUBLE", "RULE_QUOTED_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'use'", "';'", "'prediction'", "'maps'", "','", "'to'", "'using'", "'layer'", "'with'", "'function'", "'mapping'", "'parameters'", "'predict'", "'from'", "'and'", "'measure'", "'end'", "'store'", "'for'", "'in'", "'loop'", "'['", "']'", "'{'", "'}'", "':='", "'data'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "'literal'", "'instance'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__59=59;
@@ -81,6 +81,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
     public static final int T__16=16;
     public static final int T__17=17;
     public static final int T__18=18;
+    public static final int T__95=95;
+    public static final int T__96=96;
     public static final int T__26=26;
     public static final int T__27=27;
     public static final int T__28=28;
@@ -3028,7 +3030,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleInstanceRule"
-    // InternalMachineLearningLanguage.g:1085:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
+    // InternalMachineLearningLanguage.g:1085:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
     public final EObject ruleInstanceRule() throws RecognitionException {
         EObject current = null;
 
@@ -3041,17 +3043,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1091:2: ( ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
-            // InternalMachineLearningLanguage.g:1092:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalMachineLearningLanguage.g:1091:2: ( ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
+            // InternalMachineLearningLanguage.g:1092:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
             {
-            // InternalMachineLearningLanguage.g:1092:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
-            // InternalMachineLearningLanguage.g:1093:3: ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
+            // InternalMachineLearningLanguage.g:1092:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalMachineLearningLanguage.g:1093:3: ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
             {
-            // InternalMachineLearningLanguage.g:1093:3: ( ( ruleQualifiedNameRule ) )
-            // InternalMachineLearningLanguage.g:1094:4: ( ruleQualifiedNameRule )
+            // InternalMachineLearningLanguage.g:1093:3: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:1094:4: ( ruleQualifiedName )
             {
-            // InternalMachineLearningLanguage.g:1094:4: ( ruleQualifiedNameRule )
-            // InternalMachineLearningLanguage.g:1095:5: ruleQualifiedNameRule
+            // InternalMachineLearningLanguage.g:1094:4: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:1095:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -3071,7 +3073,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
               				
             }
             pushFollow(FOLLOW_35);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
             if (state.failed) return current;
@@ -3445,8 +3447,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             case RULE_STRING:
             case RULE_INT:
             case RULE_DOUBLE:
-            case 51:
-            case 52:
+            case 49:
+            case 50:
                 {
                 alt20=4;
                 }
@@ -3683,7 +3685,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             int alt22=2;
             int LA22_0 = input.LA(1);
 
-            if ( ((LA22_0>=RULE_STRING && LA22_0<=RULE_QUOTED_ID)||LA22_0==36||LA22_0==41||(LA22_0>=51 && LA22_0<=52)) ) {
+            if ( ((LA22_0>=RULE_STRING && LA22_0<=RULE_QUOTED_ID)||LA22_0==36||LA22_0==41||(LA22_0>=49 && LA22_0<=50)) ) {
                 alt22=1;
             }
             switch (alt22) {
@@ -4081,164 +4083,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalMachineLearningLanguage.g:1447:1: entryRuleQualifiedNameRule returns [String current=null] : iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF ;
-    public final String entryRuleQualifiedNameRule() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleQualifiedNameRule = null;
-
-
-        try {
-            // InternalMachineLearningLanguage.g:1447:57: (iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF )
-            // InternalMachineLearningLanguage.g:1448:2: iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF
-            {
-            if ( state.backtracking==0 ) {
-               newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); 
-            }
-            pushFollow(FOLLOW_1);
-            iv_ruleQualifiedNameRule=ruleQualifiedNameRule();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-               current =iv_ruleQualifiedNameRule.getText(); 
-            }
-            match(input,EOF,FOLLOW_2); if (state.failed) return current;
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalMachineLearningLanguage.g:1454:1: ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
-    public final AntlrDatatypeRuleToken ruleQualifiedNameRule() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-        AntlrDatatypeRuleToken this_StringOrId_0 = null;
-
-        AntlrDatatypeRuleToken this_StringOrId_2 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalMachineLearningLanguage.g:1460:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalMachineLearningLanguage.g:1461:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            {
-            // InternalMachineLearningLanguage.g:1461:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalMachineLearningLanguage.g:1462:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            {
-            if ( state.backtracking==0 ) {
-
-              			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-              		
-            }
-            pushFollow(FOLLOW_40);
-            this_StringOrId_0=ruleStringOrId();
-
-            state._fsp--;
-            if (state.failed) return current;
-            if ( state.backtracking==0 ) {
-
-              			current.merge(this_StringOrId_0);
-              		
-            }
-            if ( state.backtracking==0 ) {
-
-              			afterParserOrEnumRuleCall();
-              		
-            }
-            // InternalMachineLearningLanguage.g:1472:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop23:
-            do {
-                int alt23=2;
-                int LA23_0 = input.LA(1);
-
-                if ( (LA23_0==42) ) {
-                    alt23=1;
-                }
-
-
-                switch (alt23) {
-            	case 1 :
-            	    // InternalMachineLearningLanguage.g:1473:4: kw= '.' this_StringOrId_2= ruleStringOrId
-            	    {
-            	    kw=(Token)match(input,42,FOLLOW_9); if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      				current.merge(kw);
-            	      				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-            	      			
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-            	      			
-            	    }
-            	    pushFollow(FOLLOW_40);
-            	    this_StringOrId_2=ruleStringOrId();
-
-            	    state._fsp--;
-            	    if (state.failed) return current;
-            	    if ( state.backtracking==0 ) {
-
-            	      				current.merge(this_StringOrId_2);
-            	      			
-            	    }
-            	    if ( state.backtracking==0 ) {
-
-            	      				afterParserOrEnumRuleCall();
-            	      			
-            	    }
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop23;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-            if ( state.backtracking==0 ) {
-
-              	leaveRule();
-
-            }
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalMachineLearningLanguage.g:1493:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1447:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4246,8 +4092,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1493:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1494:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1447:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1448:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getExpressionRuleRule()); 
@@ -4278,7 +4124,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalMachineLearningLanguage.g:1500:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalMachineLearningLanguage.g:1454:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4289,8 +4135,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1506:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalMachineLearningLanguage.g:1507:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalMachineLearningLanguage.g:1460:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalMachineLearningLanguage.g:1461:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -4335,7 +4181,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalMachineLearningLanguage.g:1521:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1475:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4343,8 +4189,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1521:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1522:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1475:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1476:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
@@ -4375,7 +4221,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalMachineLearningLanguage.g:1528:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:1482:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4389,24 +4235,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1534:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalMachineLearningLanguage.g:1535:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1488:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalMachineLearningLanguage.g:1489:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:1535:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalMachineLearningLanguage.g:1536:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalMachineLearningLanguage.g:1489:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1490:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalMachineLearningLanguage.g:1536:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1537:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:1490:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1491:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1537:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalMachineLearningLanguage.g:1538:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalMachineLearningLanguage.g:1491:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalMachineLearningLanguage.g:1492:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_41);
+            pushFollow(FOLLOW_40);
             lv_subExpressions_0_0=ruleXorExpressionRule();
 
             state._fsp--;
@@ -4430,39 +4276,39 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1555:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
-            loop24:
+            // InternalMachineLearningLanguage.g:1509:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            loop23:
             do {
-                int alt24=2;
-                int LA24_0 = input.LA(1);
+                int alt23=2;
+                int LA23_0 = input.LA(1);
 
-                if ( (LA24_0==43) ) {
-                    alt24=1;
+                if ( (LA23_0==42) ) {
+                    alt23=1;
                 }
 
 
-                switch (alt24) {
+                switch (alt23) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1556:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1510:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,43,FOLLOW_42); if (state.failed) return current;
+            	    otherlv_1=(Token)match(input,42,FOLLOW_41); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	      			
             	    }
-            	    // InternalMachineLearningLanguage.g:1560:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalMachineLearningLanguage.g:1561:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1514:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1515:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1561:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalMachineLearningLanguage.g:1562:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalMachineLearningLanguage.g:1515:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1516:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_41);
+            	    pushFollow(FOLLOW_40);
             	    lv_subExpressions_2_0=ruleXorExpressionRule();
 
             	    state._fsp--;
@@ -4491,7 +4337,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop24;
+            	    break loop23;
                 }
             } while (true);
 
@@ -4520,7 +4366,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalMachineLearningLanguage.g:1584:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1538:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4528,8 +4374,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1584:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1585:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1538:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1539:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
@@ -4560,7 +4406,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalMachineLearningLanguage.g:1591:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:1545:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4574,24 +4420,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1597:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalMachineLearningLanguage.g:1598:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1551:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalMachineLearningLanguage.g:1552:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:1598:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalMachineLearningLanguage.g:1599:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalMachineLearningLanguage.g:1552:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1553:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalMachineLearningLanguage.g:1599:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1600:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:1553:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1554:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1600:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalMachineLearningLanguage.g:1601:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalMachineLearningLanguage.g:1554:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalMachineLearningLanguage.g:1555:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_43);
+            pushFollow(FOLLOW_42);
             lv_subExpressions_0_0=ruleAndExpressionRule();
 
             state._fsp--;
@@ -4615,39 +4461,39 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1618:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
-            loop25:
+            // InternalMachineLearningLanguage.g:1572:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            loop24:
             do {
-                int alt25=2;
-                int LA25_0 = input.LA(1);
+                int alt24=2;
+                int LA24_0 = input.LA(1);
 
-                if ( (LA25_0==44) ) {
-                    alt25=1;
+                if ( (LA24_0==43) ) {
+                    alt24=1;
                 }
 
 
-                switch (alt25) {
+                switch (alt24) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1619:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1573:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,44,FOLLOW_42); if (state.failed) return current;
+            	    otherlv_1=(Token)match(input,43,FOLLOW_41); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	      			
             	    }
-            	    // InternalMachineLearningLanguage.g:1623:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalMachineLearningLanguage.g:1624:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1577:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1578:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1624:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalMachineLearningLanguage.g:1625:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalMachineLearningLanguage.g:1578:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1579:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_43);
+            	    pushFollow(FOLLOW_42);
             	    lv_subExpressions_2_0=ruleAndExpressionRule();
 
             	    state._fsp--;
@@ -4676,7 +4522,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop25;
+            	    break loop24;
                 }
             } while (true);
 
@@ -4705,7 +4551,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalMachineLearningLanguage.g:1647:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1601:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4713,8 +4559,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1647:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1648:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1601:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1602:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
@@ -4745,7 +4591,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalMachineLearningLanguage.g:1654:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:1608:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4759,24 +4605,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1660:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalMachineLearningLanguage.g:1661:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1614:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalMachineLearningLanguage.g:1615:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:1661:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalMachineLearningLanguage.g:1662:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalMachineLearningLanguage.g:1615:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1616:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalMachineLearningLanguage.g:1662:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1663:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:1616:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1617:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1663:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalMachineLearningLanguage.g:1664:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalMachineLearningLanguage.g:1617:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalMachineLearningLanguage.g:1618:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_44);
+            pushFollow(FOLLOW_43);
             lv_subExpressions_0_0=ruleNotExpressionRule();
 
             state._fsp--;
@@ -4800,39 +4646,39 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1681:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
-            loop26:
+            // InternalMachineLearningLanguage.g:1635:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            loop25:
             do {
-                int alt26=2;
-                int LA26_0 = input.LA(1);
+                int alt25=2;
+                int LA25_0 = input.LA(1);
 
-                if ( (LA26_0==45) ) {
-                    alt26=1;
+                if ( (LA25_0==44) ) {
+                    alt25=1;
                 }
 
 
-                switch (alt26) {
+                switch (alt25) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1682:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1636:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,45,FOLLOW_42); if (state.failed) return current;
+            	    otherlv_1=(Token)match(input,44,FOLLOW_41); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	      			
             	    }
-            	    // InternalMachineLearningLanguage.g:1686:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalMachineLearningLanguage.g:1687:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1640:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1641:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1687:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalMachineLearningLanguage.g:1688:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalMachineLearningLanguage.g:1641:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1642:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_44);
+            	    pushFollow(FOLLOW_43);
             	    lv_subExpressions_2_0=ruleNotExpressionRule();
 
             	    state._fsp--;
@@ -4861,7 +4707,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop26;
+            	    break loop25;
                 }
             } while (true);
 
@@ -4890,7 +4736,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalMachineLearningLanguage.g:1710:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1664:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4898,8 +4744,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1710:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1711:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1664:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1665:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
@@ -4930,7 +4776,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalMachineLearningLanguage.g:1717:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalMachineLearningLanguage.g:1671:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -4942,27 +4788,27 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1723:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalMachineLearningLanguage.g:1724:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalMachineLearningLanguage.g:1677:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalMachineLearningLanguage.g:1678:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalMachineLearningLanguage.g:1724:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalMachineLearningLanguage.g:1725:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1678:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalMachineLearningLanguage.g:1679:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalMachineLearningLanguage.g:1725:3: ( (lv_negated_0_0= '!' ) )?
-            int alt27=2;
-            int LA27_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:1679:3: ( (lv_negated_0_0= '!' ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( (LA27_0==46) ) {
-                alt27=1;
+            if ( (LA26_0==45) ) {
+                alt26=1;
             }
-            switch (alt27) {
+            switch (alt26) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:1726:4: (lv_negated_0_0= '!' )
+                    // InternalMachineLearningLanguage.g:1680:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalMachineLearningLanguage.g:1726:4: (lv_negated_0_0= '!' )
-                    // InternalMachineLearningLanguage.g:1727:5: lv_negated_0_0= '!'
+                    // InternalMachineLearningLanguage.g:1680:4: (lv_negated_0_0= '!' )
+                    // InternalMachineLearningLanguage.g:1681:5: lv_negated_0_0= '!'
                     {
-                    lv_negated_0_0=(Token)match(input,46,FOLLOW_42); if (state.failed) return current;
+                    lv_negated_0_0=(Token)match(input,45,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       					newLeafNode(lv_negated_0_0, grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0());
@@ -4985,11 +4831,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1739:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1740:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:1693:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1694:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1740:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalMachineLearningLanguage.g:1741:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalMachineLearningLanguage.g:1694:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalMachineLearningLanguage.g:1695:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -5045,7 +4891,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:1762:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1716:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5053,8 +4899,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1762:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1763:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1716:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1717:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
@@ -5085,7 +4931,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:1769:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalMachineLearningLanguage.g:1723:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5098,24 +4944,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1775:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalMachineLearningLanguage.g:1776:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalMachineLearningLanguage.g:1729:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalMachineLearningLanguage.g:1730:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalMachineLearningLanguage.g:1776:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalMachineLearningLanguage.g:1777:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalMachineLearningLanguage.g:1730:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalMachineLearningLanguage.g:1731:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalMachineLearningLanguage.g:1777:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1778:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:1731:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1732:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1778:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:1779:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:1732:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:1733:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_45);
+            pushFollow(FOLLOW_44);
             lv_leftOperand_0_0=ruleAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -5139,30 +4985,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1796:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
-            loop28:
+            // InternalMachineLearningLanguage.g:1750:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            loop27:
             do {
-                int alt28=2;
-                int LA28_0 = input.LA(1);
+                int alt27=2;
+                int LA27_0 = input.LA(1);
 
-                if ( ((LA28_0>=64 && LA28_0<=69)) ) {
-                    alt28=1;
+                if ( ((LA27_0>=66 && LA27_0<=71)) ) {
+                    alt27=1;
                 }
 
 
-                switch (alt28) {
+                switch (alt27) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1797:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1751:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1797:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalMachineLearningLanguage.g:1798:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalMachineLearningLanguage.g:1751:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1752:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_45);
+            	    pushFollow(FOLLOW_44);
             	    lv_comparison_1_0=rulePartialComparisonExpressionRule();
 
             	    state._fsp--;
@@ -5188,7 +5034,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop28;
+            	    break loop27;
                 }
             } while (true);
 
@@ -5217,7 +5063,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:1819:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1773:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5225,8 +5071,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1819:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1820:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1773:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1774:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
@@ -5257,7 +5103,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalMachineLearningLanguage.g:1826:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalMachineLearningLanguage.g:1780:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5270,24 +5116,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1832:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalMachineLearningLanguage.g:1833:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalMachineLearningLanguage.g:1786:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalMachineLearningLanguage.g:1787:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalMachineLearningLanguage.g:1833:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalMachineLearningLanguage.g:1834:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1787:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalMachineLearningLanguage.g:1788:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalMachineLearningLanguage.g:1834:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalMachineLearningLanguage.g:1835:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalMachineLearningLanguage.g:1788:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalMachineLearningLanguage.g:1789:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalMachineLearningLanguage.g:1835:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalMachineLearningLanguage.g:1836:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalMachineLearningLanguage.g:1789:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalMachineLearningLanguage.g:1790:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_42);
+            pushFollow(FOLLOW_41);
             lv_operator_0_0=ruleComparisonOperatorRule();
 
             state._fsp--;
@@ -5311,11 +5157,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1853:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1854:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:1807:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1808:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1854:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:1855:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:1808:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:1809:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
@@ -5371,7 +5217,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:1876:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1830:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5379,8 +5225,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1876:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1877:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1830:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1831:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
@@ -5411,7 +5257,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:1883:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:1837:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5426,24 +5272,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1889:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalMachineLearningLanguage.g:1890:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1843:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalMachineLearningLanguage.g:1844:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:1890:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalMachineLearningLanguage.g:1891:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalMachineLearningLanguage.g:1844:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1845:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalMachineLearningLanguage.g:1891:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1892:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:1845:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1846:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1892:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalMachineLearningLanguage.g:1893:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalMachineLearningLanguage.g:1846:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalMachineLearningLanguage.g:1847:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_46);
+            pushFollow(FOLLOW_45);
             lv_leftOperand_0_0=ruleMultiplyDivideModuloExpressionRule();
 
             state._fsp--;
@@ -5467,33 +5313,33 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1910:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
-            loop29:
+            // InternalMachineLearningLanguage.g:1864:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            loop28:
             do {
-                int alt29=2;
-                int LA29_0 = input.LA(1);
+                int alt28=2;
+                int LA28_0 = input.LA(1);
 
-                if ( ((LA29_0>=70 && LA29_0<=71)) ) {
-                    alt29=1;
+                if ( ((LA28_0>=72 && LA28_0<=73)) ) {
+                    alt28=1;
                 }
 
 
-                switch (alt29) {
+                switch (alt28) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1911:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1865:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalMachineLearningLanguage.g:1911:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalMachineLearningLanguage.g:1912:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalMachineLearningLanguage.g:1865:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalMachineLearningLanguage.g:1866:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1912:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalMachineLearningLanguage.g:1913:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalMachineLearningLanguage.g:1866:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalMachineLearningLanguage.g:1867:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_41);
             	    lv_operators_1_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -5517,18 +5363,18 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             	    }
 
-            	    // InternalMachineLearningLanguage.g:1930:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalMachineLearningLanguage.g:1931:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1884:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1885:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1931:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalMachineLearningLanguage.g:1932:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalMachineLearningLanguage.g:1885:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1886:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_46);
+            	    pushFollow(FOLLOW_45);
             	    lv_operands_2_0=ruleMultiplyDivideModuloExpressionRule();
 
             	    state._fsp--;
@@ -5557,7 +5403,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop29;
+            	    break loop28;
                 }
             } while (true);
 
@@ -5586,7 +5432,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalMachineLearningLanguage.g:1954:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1908:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5594,8 +5440,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:1954:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:1955:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1908:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1909:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
@@ -5626,7 +5472,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalMachineLearningLanguage.g:1961:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:1915:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5641,24 +5487,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:1967:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalMachineLearningLanguage.g:1968:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1921:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalMachineLearningLanguage.g:1922:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:1968:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalMachineLearningLanguage.g:1969:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalMachineLearningLanguage.g:1922:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalMachineLearningLanguage.g:1923:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalMachineLearningLanguage.g:1969:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalMachineLearningLanguage.g:1970:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:1923:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalMachineLearningLanguage.g:1924:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:1970:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalMachineLearningLanguage.g:1971:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalMachineLearningLanguage.g:1924:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalMachineLearningLanguage.g:1925:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_47);
+            pushFollow(FOLLOW_46);
             lv_leftOperand_0_0=rulePowerOfExpressionRule();
 
             state._fsp--;
@@ -5682,33 +5528,33 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:1988:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
-            loop30:
+            // InternalMachineLearningLanguage.g:1942:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            loop29:
             do {
-                int alt30=2;
-                int LA30_0 = input.LA(1);
+                int alt29=2;
+                int LA29_0 = input.LA(1);
 
-                if ( ((LA30_0>=72 && LA30_0<=74)) ) {
-                    alt30=1;
+                if ( ((LA29_0>=74 && LA29_0<=76)) ) {
+                    alt29=1;
                 }
 
 
-                switch (alt30) {
+                switch (alt29) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:1989:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1943:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalMachineLearningLanguage.g:1989:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalMachineLearningLanguage.g:1990:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalMachineLearningLanguage.g:1943:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalMachineLearningLanguage.g:1944:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:1990:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalMachineLearningLanguage.g:1991:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalMachineLearningLanguage.g:1944:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalMachineLearningLanguage.g:1945:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_41);
             	    lv_operators_1_0=ruleMultiplyDivideModuloOperatorRule();
 
             	    state._fsp--;
@@ -5732,18 +5578,18 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             	    }
 
-            	    // InternalMachineLearningLanguage.g:2008:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalMachineLearningLanguage.g:2009:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1962:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalMachineLearningLanguage.g:1963:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:2009:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalMachineLearningLanguage.g:2010:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalMachineLearningLanguage.g:1963:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalMachineLearningLanguage.g:1964:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_47);
+            	    pushFollow(FOLLOW_46);
             	    lv_operands_2_0=rulePowerOfExpressionRule();
 
             	    state._fsp--;
@@ -5772,7 +5618,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop30;
+            	    break loop29;
                 }
             } while (true);
 
@@ -5801,7 +5647,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalMachineLearningLanguage.g:2032:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:1986:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5809,8 +5655,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2032:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:2033:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalMachineLearningLanguage.g:1986:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:1987:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
@@ -5841,7 +5687,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalMachineLearningLanguage.g:2039:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalMachineLearningLanguage.g:1993:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5855,24 +5701,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2045:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalMachineLearningLanguage.g:2046:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalMachineLearningLanguage.g:1999:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalMachineLearningLanguage.g:2000:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalMachineLearningLanguage.g:2046:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalMachineLearningLanguage.g:2047:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalMachineLearningLanguage.g:2000:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalMachineLearningLanguage.g:2001:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalMachineLearningLanguage.g:2047:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalMachineLearningLanguage.g:2048:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:2001:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalMachineLearningLanguage.g:2002:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:2048:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalMachineLearningLanguage.g:2049:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalMachineLearningLanguage.g:2002:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalMachineLearningLanguage.g:2003:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_48);
+            pushFollow(FOLLOW_47);
             lv_leftOperand_0_0=ruleUnaryAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -5896,28 +5742,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2066:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2020:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            if ( (LA31_0==47) ) {
-                alt31=1;
+            if ( (LA30_0==46) ) {
+                alt30=1;
             }
-            switch (alt31) {
+            switch (alt30) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2067:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalMachineLearningLanguage.g:2021:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
-                    otherlv_1=(Token)match(input,47,FOLLOW_42); if (state.failed) return current;
+                    otherlv_1=(Token)match(input,46,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                       			
                     }
-                    // InternalMachineLearningLanguage.g:2071:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalMachineLearningLanguage.g:2072:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalMachineLearningLanguage.g:2025:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalMachineLearningLanguage.g:2026:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalMachineLearningLanguage.g:2072:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalMachineLearningLanguage.g:2073:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalMachineLearningLanguage.g:2026:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalMachineLearningLanguage.g:2027:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -5979,7 +5825,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:2095:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalMachineLearningLanguage.g:2049:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5987,8 +5833,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2095:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalMachineLearningLanguage.g:2096:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalMachineLearningLanguage.g:2049:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalMachineLearningLanguage.g:2050:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
@@ -6019,7 +5865,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalMachineLearningLanguage.g:2102:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalMachineLearningLanguage.g:2056:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -6032,36 +5878,36 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2108:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalMachineLearningLanguage.g:2109:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalMachineLearningLanguage.g:2062:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalMachineLearningLanguage.g:2063:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalMachineLearningLanguage.g:2109:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalMachineLearningLanguage.g:2110:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalMachineLearningLanguage.g:2063:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalMachineLearningLanguage.g:2064:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalMachineLearningLanguage.g:2110:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
-            loop32:
+            // InternalMachineLearningLanguage.g:2064:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            loop31:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
+                int alt31=2;
+                int LA31_0 = input.LA(1);
 
-                if ( ((LA32_0>=70 && LA32_0<=71)) ) {
-                    alt32=1;
+                if ( ((LA31_0>=72 && LA31_0<=73)) ) {
+                    alt31=1;
                 }
 
 
-                switch (alt32) {
+                switch (alt31) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2111:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalMachineLearningLanguage.g:2065:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalMachineLearningLanguage.g:2111:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalMachineLearningLanguage.g:2112:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalMachineLearningLanguage.g:2065:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalMachineLearningLanguage.g:2066:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
             	    if ( state.backtracking==0 ) {
 
             	      					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0());
             	      				
             	    }
-            	    pushFollow(FOLLOW_42);
+            	    pushFollow(FOLLOW_41);
             	    lv_operators_0_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -6087,15 +5933,15 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop31;
                 }
             } while (true);
 
-            // InternalMachineLearningLanguage.g:2129:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalMachineLearningLanguage.g:2130:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalMachineLearningLanguage.g:2083:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalMachineLearningLanguage.g:2084:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalMachineLearningLanguage.g:2130:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalMachineLearningLanguage.g:2131:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalMachineLearningLanguage.g:2084:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalMachineLearningLanguage.g:2085:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
             if ( state.backtracking==0 ) {
 
@@ -6151,7 +5997,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalMachineLearningLanguage.g:2152:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalMachineLearningLanguage.g:2106:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -6159,8 +6005,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2152:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalMachineLearningLanguage.g:2153:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalMachineLearningLanguage.g:2106:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:2107:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
@@ -6191,7 +6037,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalMachineLearningLanguage.g:2159:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalMachineLearningLanguage.g:2113:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -6208,48 +6054,15 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2165:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalMachineLearningLanguage.g:2166:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalMachineLearningLanguage.g:2119:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalMachineLearningLanguage.g:2120:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalMachineLearningLanguage.g:2166:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
-            int alt33=4;
-            switch ( input.LA(1) ) {
-            case RULE_ID:
-            case RULE_QUOTED_ID:
-                {
-                alt33=1;
-                }
-                break;
-            case RULE_STRING:
-            case RULE_INT:
-            case RULE_DOUBLE:
-            case 51:
-            case 52:
-                {
-                alt33=2;
-                }
-                break;
-            case 48:
-                {
-                alt33=3;
-                }
-                break;
-            case 50:
-                {
-                alt33=4;
-                }
-                break;
-            default:
-                if (state.backtracking>0) {state.failed=true; return current;}
-                NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt33) {
+            // InternalMachineLearningLanguage.g:2120:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            int alt32=4;
+            alt32 = dfa32.predict(input);
+            switch (alt32) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2167:3: this_CallRule_0= ruleCallRule
+                    // InternalMachineLearningLanguage.g:2121:3: this_CallRule_0= ruleCallRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6276,7 +6089,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:2179:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalMachineLearningLanguage.g:2133:3: this_LiteralRule_1= ruleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6303,7 +6116,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:2191:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalMachineLearningLanguage.g:2145:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6330,7 +6143,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:2203:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalMachineLearningLanguage.g:2157:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6381,7 +6194,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalMachineLearningLanguage.g:2218:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalMachineLearningLanguage.g:2172:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -6389,8 +6202,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2218:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalMachineLearningLanguage.g:2219:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalMachineLearningLanguage.g:2172:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalMachineLearningLanguage.g:2173:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
@@ -6421,7 +6234,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalMachineLearningLanguage.g:2225:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalMachineLearningLanguage.g:2179:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -6434,30 +6247,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2231:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalMachineLearningLanguage.g:2232:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalMachineLearningLanguage.g:2185:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalMachineLearningLanguage.g:2186:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalMachineLearningLanguage.g:2232:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalMachineLearningLanguage.g:2233:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalMachineLearningLanguage.g:2186:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalMachineLearningLanguage.g:2187:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,48,FOLLOW_42); if (state.failed) return current;
+            otherlv_0=(Token)match(input,47,FOLLOW_41); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
               		
             }
-            // InternalMachineLearningLanguage.g:2237:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalMachineLearningLanguage.g:2238:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:2191:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalMachineLearningLanguage.g:2192:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalMachineLearningLanguage.g:2238:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalMachineLearningLanguage.g:2239:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalMachineLearningLanguage.g:2192:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalMachineLearningLanguage.g:2193:5: lv_subExpression_1_0= ruleExpressionRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0());
               				
             }
-            pushFollow(FOLLOW_49);
+            pushFollow(FOLLOW_48);
             lv_subExpression_1_0=ruleExpressionRule();
 
             state._fsp--;
@@ -6481,7 +6294,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_2=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+            otherlv_2=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_2, grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2());
@@ -6512,7 +6325,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalMachineLearningLanguage.g:2264:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalMachineLearningLanguage.g:2218:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -6520,8 +6333,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2264:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalMachineLearningLanguage.g:2265:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalMachineLearningLanguage.g:2218:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalMachineLearningLanguage.g:2219:2: iv_ruleCallRule= ruleCallRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getCallRuleRule()); 
@@ -6552,7 +6365,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalMachineLearningLanguage.g:2271:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalMachineLearningLanguage.g:2225:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -6570,24 +6383,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2277:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalMachineLearningLanguage.g:2278:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalMachineLearningLanguage.g:2231:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalMachineLearningLanguage.g:2232:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalMachineLearningLanguage.g:2278:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalMachineLearningLanguage.g:2279:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalMachineLearningLanguage.g:2232:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalMachineLearningLanguage.g:2233:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalMachineLearningLanguage.g:2279:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalMachineLearningLanguage.g:2280:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalMachineLearningLanguage.g:2233:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalMachineLearningLanguage.g:2234:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalMachineLearningLanguage.g:2280:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalMachineLearningLanguage.g:2281:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalMachineLearningLanguage.g:2234:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalMachineLearningLanguage.g:2235:5: lv_function_0_0= ruleFunctionNameRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_50);
+            pushFollow(FOLLOW_49);
             lv_function_0_0=ruleFunctionNameRule();
 
             state._fsp--;
@@ -6611,35 +6424,35 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,48,FOLLOW_51); if (state.failed) return current;
+            otherlv_1=(Token)match(input,47,FOLLOW_50); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
               		
             }
-            // InternalMachineLearningLanguage.g:2302:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2256:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
 
-            if ( ((LA35_0>=RULE_STRING && LA35_0<=RULE_QUOTED_ID)||LA35_0==46||LA35_0==48||(LA35_0>=50 && LA35_0<=52)||(LA35_0>=70 && LA35_0<=71)) ) {
-                alt35=1;
+            if ( ((LA34_0>=RULE_STRING && LA34_0<=RULE_QUOTED_ID)||LA34_0==45||LA34_0==47||(LA34_0>=49 && LA34_0<=50)||(LA34_0>=72 && LA34_0<=73)) ) {
+                alt34=1;
             }
-            switch (alt35) {
+            switch (alt34) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2303:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalMachineLearningLanguage.g:2257:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalMachineLearningLanguage.g:2303:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalMachineLearningLanguage.g:2304:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalMachineLearningLanguage.g:2257:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalMachineLearningLanguage.g:2258:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalMachineLearningLanguage.g:2304:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalMachineLearningLanguage.g:2305:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalMachineLearningLanguage.g:2258:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalMachineLearningLanguage.g:2259:6: lv_parameters_2_0= ruleExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
                       						newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0());
                       					
                     }
-                    pushFollow(FOLLOW_52);
+                    pushFollow(FOLLOW_51);
                     lv_parameters_2_0=ruleExpressionRule();
 
                     state._fsp--;
@@ -6663,39 +6476,39 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
                     }
 
-                    // InternalMachineLearningLanguage.g:2322:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
-                    loop34:
+                    // InternalMachineLearningLanguage.g:2276:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    loop33:
                     do {
-                        int alt34=2;
-                        int LA34_0 = input.LA(1);
+                        int alt33=2;
+                        int LA33_0 = input.LA(1);
 
-                        if ( (LA34_0==19) ) {
-                            alt34=1;
+                        if ( (LA33_0==19) ) {
+                            alt33=1;
                         }
 
 
-                        switch (alt34) {
+                        switch (alt33) {
                     	case 1 :
-                    	    // InternalMachineLearningLanguage.g:2323:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalMachineLearningLanguage.g:2277:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,19,FOLLOW_42); if (state.failed) return current;
+                    	    otherlv_3=(Token)match(input,19,FOLLOW_41); if (state.failed) return current;
                     	    if ( state.backtracking==0 ) {
 
                     	      					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	      				
                     	    }
-                    	    // InternalMachineLearningLanguage.g:2327:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalMachineLearningLanguage.g:2328:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalMachineLearningLanguage.g:2281:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalMachineLearningLanguage.g:2282:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalMachineLearningLanguage.g:2328:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalMachineLearningLanguage.g:2329:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalMachineLearningLanguage.g:2282:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalMachineLearningLanguage.g:2283:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
                     	    if ( state.backtracking==0 ) {
 
                     	      							newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0());
                     	      						
                     	    }
-                    	    pushFollow(FOLLOW_52);
+                    	    pushFollow(FOLLOW_51);
                     	    lv_parameters_4_0=ruleExpressionRule();
 
                     	    state._fsp--;
@@ -6724,7 +6537,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     	    break;
 
                     	default :
-                    	    break loop34;
+                    	    break loop33;
                         }
                     } while (true);
 
@@ -6734,7 +6547,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_5=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
+            otherlv_5=(Token)match(input,48,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_5, grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3());
@@ -6765,7 +6578,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalMachineLearningLanguage.g:2356:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
+    // InternalMachineLearningLanguage.g:2310:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
     public final EObject entryRuleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -6773,8 +6586,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2356:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
-            // InternalMachineLearningLanguage.g:2357:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
+            // InternalMachineLearningLanguage.g:2310:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:2311:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getValueReferenceRuleRule()); 
@@ -6805,24 +6618,119 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalMachineLearningLanguage.g:2363:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalMachineLearningLanguage.g:2317:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalMachineLearningLanguage.g:2323:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalMachineLearningLanguage.g:2324:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
+            {
+            if ( state.backtracking==0 ) {
+
+              		/* */
+              	
+            }
+            if ( state.backtracking==0 ) {
+
+              		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+              	
+            }
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              		current = this_ConstantReferenceRule_0;
+              		afterParserOrEnumRuleCall();
+              	
+            }
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalMachineLearningLanguage.g:2338:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantReferenceRule = null;
+
+
+        try {
+            // InternalMachineLearningLanguage.g:2338:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalMachineLearningLanguage.g:2339:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleConstantReferenceRule; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalMachineLearningLanguage.g:2345:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
 
 
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2369:2: ( ( () otherlv_1= 'value' ) )
-            // InternalMachineLearningLanguage.g:2370:2: ( () otherlv_1= 'value' )
+            // InternalMachineLearningLanguage.g:2351:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:2352:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:2370:2: ( () otherlv_1= 'value' )
-            // InternalMachineLearningLanguage.g:2371:3: () otherlv_1= 'value'
+            // InternalMachineLearningLanguage.g:2352:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:2353:3: ( ruleQualifiedName )
             {
-            // InternalMachineLearningLanguage.g:2371:3: ()
-            // InternalMachineLearningLanguage.g:2372:4: 
+            // InternalMachineLearningLanguage.g:2353:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:2354:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -6831,21 +6739,30 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             }
             if ( state.backtracking==0 ) {
 
-              				current = forceCreateModelElement(
-              					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-              					current);
+              				if (current==null) {
+              					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+              				}
               			
             }
+            if ( state.backtracking==0 ) {
 
+              				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+              			
             }
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
 
-            otherlv_1=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
+            state._fsp--;
+            if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
-              			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-              		
+              				afterParserOrEnumRuleCall();
+              			
+            }
+
             }
 
+
             }
 
 
@@ -6866,11 +6783,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         }
         return current;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
-    // InternalMachineLearningLanguage.g:2389:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2374:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
     public final EObject entryRuleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6878,8 +6795,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2389:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2390:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2374:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2375:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralRuleRule()); 
@@ -6910,7 +6827,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalMachineLearningLanguage.g:2396:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalMachineLearningLanguage.g:2381:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -6925,40 +6842,40 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2402:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalMachineLearningLanguage.g:2403:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalMachineLearningLanguage.g:2387:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalMachineLearningLanguage.g:2388:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalMachineLearningLanguage.g:2403:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
-            int alt36=3;
+            // InternalMachineLearningLanguage.g:2388:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            int alt35=3;
             switch ( input.LA(1) ) {
             case RULE_INT:
             case RULE_DOUBLE:
                 {
-                alt36=1;
+                alt35=1;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt36=2;
+                alt35=2;
                 }
                 break;
-            case 51:
-            case 52:
+            case 49:
+            case 50:
                 {
-                alt36=3;
+                alt35=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt35) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2404:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalMachineLearningLanguage.g:2389:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -6985,7 +6902,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:2416:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalMachineLearningLanguage.g:2401:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7012,7 +6929,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:2428:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalMachineLearningLanguage.g:2413:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7063,7 +6980,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalMachineLearningLanguage.g:2443:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2428:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7071,8 +6988,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2443:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2444:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2428:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2429:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
@@ -7103,7 +7020,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalMachineLearningLanguage.g:2450:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalMachineLearningLanguage.g:2435:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7116,29 +7033,29 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2456:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalMachineLearningLanguage.g:2457:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalMachineLearningLanguage.g:2441:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalMachineLearningLanguage.g:2442:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalMachineLearningLanguage.g:2457:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
-            int alt37=2;
-            int LA37_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2442:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            int alt36=2;
+            int LA36_0 = input.LA(1);
 
-            if ( (LA37_0==RULE_DOUBLE) ) {
-                alt37=1;
+            if ( (LA36_0==RULE_DOUBLE) ) {
+                alt36=1;
             }
-            else if ( (LA37_0==RULE_INT) ) {
-                alt37=2;
+            else if ( (LA36_0==RULE_INT) ) {
+                alt36=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
-            switch (alt37) {
+            switch (alt36) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2458:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalMachineLearningLanguage.g:2443:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7165,7 +7082,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:2470:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalMachineLearningLanguage.g:2455:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7216,7 +7133,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalMachineLearningLanguage.g:2485:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2470:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7224,8 +7141,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2485:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2486:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2470:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2471:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
@@ -7256,7 +7173,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalMachineLearningLanguage.g:2492:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalMachineLearningLanguage.g:2477:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7268,19 +7185,19 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2498:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalMachineLearningLanguage.g:2499:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalMachineLearningLanguage.g:2483:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalMachineLearningLanguage.g:2484:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalMachineLearningLanguage.g:2499:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalMachineLearningLanguage.g:2500:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalMachineLearningLanguage.g:2484:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalMachineLearningLanguage.g:2485:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalMachineLearningLanguage.g:2500:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalMachineLearningLanguage.g:2501:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalMachineLearningLanguage.g:2485:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalMachineLearningLanguage.g:2486:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalMachineLearningLanguage.g:2501:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalMachineLearningLanguage.g:2502:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalMachineLearningLanguage.g:2486:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalMachineLearningLanguage.g:2487:5: lv_literal_0_0= RULE_DOUBLE
             {
-            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_53); if (state.failed) return current;
+            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_52); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_literal_0_0, grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0());
@@ -7304,19 +7221,19 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2518:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt38=2;
-            int LA38_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2503:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( ((LA38_0>=75 && LA38_0<=94)) ) {
-                alt38=1;
+            if ( ((LA37_0>=77 && LA37_0<=96)) ) {
+                alt37=1;
             }
-            switch (alt38) {
+            switch (alt37) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2519:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalMachineLearningLanguage.g:2504:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalMachineLearningLanguage.g:2519:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalMachineLearningLanguage.g:2520:5: lv_factor_1_0= ruleFactorRule
+                    // InternalMachineLearningLanguage.g:2504:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalMachineLearningLanguage.g:2505:5: lv_factor_1_0= ruleFactorRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7375,7 +7292,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalMachineLearningLanguage.g:2541:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2526:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7383,8 +7300,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2541:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2542:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2526:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2527:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
@@ -7415,7 +7332,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalMachineLearningLanguage.g:2548:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalMachineLearningLanguage.g:2533:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7427,19 +7344,19 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2554:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalMachineLearningLanguage.g:2555:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalMachineLearningLanguage.g:2539:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalMachineLearningLanguage.g:2540:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalMachineLearningLanguage.g:2555:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalMachineLearningLanguage.g:2556:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalMachineLearningLanguage.g:2540:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalMachineLearningLanguage.g:2541:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalMachineLearningLanguage.g:2556:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalMachineLearningLanguage.g:2557:4: (lv_literal_0_0= RULE_INT )
+            // InternalMachineLearningLanguage.g:2541:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalMachineLearningLanguage.g:2542:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalMachineLearningLanguage.g:2557:4: (lv_literal_0_0= RULE_INT )
-            // InternalMachineLearningLanguage.g:2558:5: lv_literal_0_0= RULE_INT
+            // InternalMachineLearningLanguage.g:2542:4: (lv_literal_0_0= RULE_INT )
+            // InternalMachineLearningLanguage.g:2543:5: lv_literal_0_0= RULE_INT
             {
-            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_53); if (state.failed) return current;
+            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_52); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               					newLeafNode(lv_literal_0_0, grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0());
@@ -7463,19 +7380,19 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2574:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt39=2;
-            int LA39_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2559:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt38=2;
+            int LA38_0 = input.LA(1);
 
-            if ( ((LA39_0>=75 && LA39_0<=94)) ) {
-                alt39=1;
+            if ( ((LA38_0>=77 && LA38_0<=96)) ) {
+                alt38=1;
             }
-            switch (alt39) {
+            switch (alt38) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2575:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalMachineLearningLanguage.g:2560:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalMachineLearningLanguage.g:2575:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalMachineLearningLanguage.g:2576:5: lv_factor_1_0= ruleFactorRule
+                    // InternalMachineLearningLanguage.g:2560:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalMachineLearningLanguage.g:2561:5: lv_factor_1_0= ruleFactorRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -7534,7 +7451,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalMachineLearningLanguage.g:2597:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2582:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7542,8 +7459,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2597:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2598:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2582:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2583:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
@@ -7574,7 +7491,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalMachineLearningLanguage.g:2604:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalMachineLearningLanguage.g:2589:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7584,14 +7501,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2610:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalMachineLearningLanguage.g:2611:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:2595:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalMachineLearningLanguage.g:2596:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalMachineLearningLanguage.g:2611:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalMachineLearningLanguage.g:2612:3: (lv_value_0_0= RULE_STRING )
+            // InternalMachineLearningLanguage.g:2596:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalMachineLearningLanguage.g:2597:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalMachineLearningLanguage.g:2612:3: (lv_value_0_0= RULE_STRING )
-            // InternalMachineLearningLanguage.g:2613:4: lv_value_0_0= RULE_STRING
+            // InternalMachineLearningLanguage.g:2597:3: (lv_value_0_0= RULE_STRING )
+            // InternalMachineLearningLanguage.g:2598:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
@@ -7639,7 +7556,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalMachineLearningLanguage.g:2632:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalMachineLearningLanguage.g:2617:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7647,8 +7564,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2632:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalMachineLearningLanguage.g:2633:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalMachineLearningLanguage.g:2617:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalMachineLearningLanguage.g:2618:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
@@ -7679,7 +7596,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalMachineLearningLanguage.g:2639:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalMachineLearningLanguage.g:2624:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -7690,14 +7607,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2645:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalMachineLearningLanguage.g:2646:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalMachineLearningLanguage.g:2630:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalMachineLearningLanguage.g:2631:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalMachineLearningLanguage.g:2646:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalMachineLearningLanguage.g:2647:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalMachineLearningLanguage.g:2631:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalMachineLearningLanguage.g:2632:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalMachineLearningLanguage.g:2647:3: ()
-            // InternalMachineLearningLanguage.g:2648:4: 
+            // InternalMachineLearningLanguage.g:2632:3: ()
+            // InternalMachineLearningLanguage.g:2633:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -7714,34 +7631,34 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2657:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
-            int alt40=2;
-            int LA40_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2642:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            int alt39=2;
+            int LA39_0 = input.LA(1);
 
-            if ( (LA40_0==51) ) {
-                alt40=1;
+            if ( (LA39_0==49) ) {
+                alt39=1;
             }
-            else if ( (LA40_0==52) ) {
-                alt40=2;
+            else if ( (LA39_0==50) ) {
+                alt39=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 40, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
-            switch (alt40) {
+            switch (alt39) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2658:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalMachineLearningLanguage.g:2643:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalMachineLearningLanguage.g:2658:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalMachineLearningLanguage.g:2659:5: (lv_value_1_0= 'true' )
+                    // InternalMachineLearningLanguage.g:2643:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalMachineLearningLanguage.g:2644:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalMachineLearningLanguage.g:2659:5: (lv_value_1_0= 'true' )
-                    // InternalMachineLearningLanguage.g:2660:6: lv_value_1_0= 'true'
+                    // InternalMachineLearningLanguage.g:2644:5: (lv_value_1_0= 'true' )
+                    // InternalMachineLearningLanguage.g:2645:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,51,FOLLOW_2); if (state.failed) return current;
+                    lv_value_1_0=(Token)match(input,49,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
@@ -7765,9 +7682,9 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:2673:4: otherlv_2= 'false'
+                    // InternalMachineLearningLanguage.g:2658:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,52,FOLLOW_2); if (state.failed) return current;
+                    otherlv_2=(Token)match(input,50,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
@@ -7803,8 +7720,302 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalMachineLearningLanguage.g:2667:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTypeDefinitionRule = null;
+
+
+        try {
+            // InternalMachineLearningLanguage.g:2667:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalMachineLearningLanguage.g:2668:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            {
+            if ( state.backtracking==0 ) {
+               newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
+            }
+            pushFollow(FOLLOW_1);
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+               current =iv_ruleTypeDefinitionRule; 
+            }
+            match(input,EOF,FOLLOW_2); if (state.failed) return current;
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalMachineLearningLanguage.g:2674:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_abstract_0_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_attributes_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalMachineLearningLanguage.g:2680:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalMachineLearningLanguage.g:2681:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            {
+            // InternalMachineLearningLanguage.g:2681:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalMachineLearningLanguage.g:2682:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            {
+            // InternalMachineLearningLanguage.g:2682:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt40=2;
+            int LA40_0 = input.LA(1);
+
+            if ( (LA40_0==51) ) {
+                alt40=1;
+            }
+            switch (alt40) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:2683:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalMachineLearningLanguage.g:2683:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalMachineLearningLanguage.g:2684:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,51,FOLLOW_53); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                      				
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      					if (current==null) {
+                      						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                      					}
+                      					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                      				
+                    }
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,52,FOLLOW_9); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+              		
+            }
+            // InternalMachineLearningLanguage.g:2700:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:2701:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalMachineLearningLanguage.g:2701:4: (lv_name_2_0= ruleStringOrId )
+            // InternalMachineLearningLanguage.g:2702:5: lv_name_2_0= ruleStringOrId
+            {
+            if ( state.backtracking==0 ) {
+
+              					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+              				
+            }
+            pushFollow(FOLLOW_54);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+            if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              					if (current==null) {
+              						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+              					}
+              					set(
+              						current,
+              						"name",
+              						lv_name_2_0,
+              						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+              					afterParserOrEnumRuleCall();
+              				
+            }
+
+            }
+
+
+            }
+
+            // InternalMachineLearningLanguage.g:2719:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt41=2;
+            int LA41_0 = input.LA(1);
+
+            if ( (LA41_0==53) ) {
+                alt41=1;
+            }
+            switch (alt41) {
+                case 1 :
+                    // InternalMachineLearningLanguage.g:2720:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,53,FOLLOW_9); if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                      			
+                    }
+                    // InternalMachineLearningLanguage.g:2724:4: ( ( ruleQualifiedName ) )
+                    // InternalMachineLearningLanguage.g:2725:5: ( ruleQualifiedName )
+                    {
+                    // InternalMachineLearningLanguage.g:2725:5: ( ruleQualifiedName )
+                    // InternalMachineLearningLanguage.g:2726:6: ruleQualifiedName
+                    {
+                    if ( state.backtracking==0 ) {
+
+                      						/* */
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						if (current==null) {
+                      							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                      						}
+                      					
+                    }
+                    if ( state.backtracking==0 ) {
+
+                      						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                      					
+                    }
+                    pushFollow(FOLLOW_55);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+                    if (state.failed) return current;
+                    if ( state.backtracking==0 ) {
+
+                      						afterParserOrEnumRuleCall();
+                      					
+                    }
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,38,FOLLOW_36); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+              		
+            }
+            // InternalMachineLearningLanguage.g:2748:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop42:
+            do {
+                int alt42=2;
+                int LA42_0 = input.LA(1);
+
+                if ( (LA42_0==RULE_ID||LA42_0==RULE_QUOTED_ID) ) {
+                    alt42=1;
+                }
+
+
+                switch (alt42) {
+            	case 1 :
+            	    // InternalMachineLearningLanguage.g:2749:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalMachineLearningLanguage.g:2749:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalMachineLearningLanguage.g:2750:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+            	    if ( state.backtracking==0 ) {
+
+            	      					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	      				
+            	    }
+            	    pushFollow(FOLLOW_36);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+            	    if (state.failed) return current;
+            	    if ( state.backtracking==0 ) {
+
+            	      					if (current==null) {
+            	      						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	      					}
+            	      					add(
+            	      						current,
+            	      						"attributes",
+            	      						lv_attributes_6_0,
+            	      						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	      					afterParserOrEnumRuleCall();
+            	      				
+            	    }
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop42;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,39,FOLLOW_2); if (state.failed) return current;
+            if ( state.backtracking==0 ) {
+
+              			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+              		
+            }
+
+            }
+
+
+            }
+
+            if ( state.backtracking==0 ) {
+
+              	leaveRule();
+
+            }
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalMachineLearningLanguage.g:2682:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalMachineLearningLanguage.g:2775:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -7812,8 +8023,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2682:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalMachineLearningLanguage.g:2683:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalMachineLearningLanguage.g:2775:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalMachineLearningLanguage.g:2776:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
@@ -7844,7 +8055,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalMachineLearningLanguage.g:2689:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalMachineLearningLanguage.g:2782:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -7862,24 +8073,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2695:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalMachineLearningLanguage.g:2696:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalMachineLearningLanguage.g:2788:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalMachineLearningLanguage.g:2789:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalMachineLearningLanguage.g:2696:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalMachineLearningLanguage.g:2697:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalMachineLearningLanguage.g:2789:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalMachineLearningLanguage.g:2790:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalMachineLearningLanguage.g:2697:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:2698:4: (lv_name_0_0= ruleStringOrId )
+            // InternalMachineLearningLanguage.g:2790:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:2791:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:2698:4: (lv_name_0_0= ruleStringOrId )
-            // InternalMachineLearningLanguage.g:2699:5: lv_name_0_0= ruleStringOrId
+            // InternalMachineLearningLanguage.g:2791:4: (lv_name_0_0= ruleStringOrId )
+            // InternalMachineLearningLanguage.g:2792:5: lv_name_0_0= ruleStringOrId
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
               				
             }
-            pushFollow(FOLLOW_54);
+            pushFollow(FOLLOW_56);
             lv_name_0_0=ruleStringOrId();
 
             state._fsp--;
@@ -7903,24 +8114,24 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,53,FOLLOW_55); if (state.failed) return current;
+            otherlv_1=(Token)match(input,54,FOLLOW_57); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
               		
             }
-            // InternalMachineLearningLanguage.g:2720:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:2721:4: (lv_type_2_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:2813:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:2814:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:2721:4: (lv_type_2_0= ruleTypeRule )
-            // InternalMachineLearningLanguage.g:2722:5: lv_type_2_0= ruleTypeRule
+            // InternalMachineLearningLanguage.g:2814:4: (lv_type_2_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:2815:5: lv_type_2_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
               					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
               				
             }
-            pushFollow(FOLLOW_56);
+            pushFollow(FOLLOW_58);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -7944,28 +8155,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2739:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt41=2;
-            int LA41_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:2832:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt43=2;
+            int LA43_0 = input.LA(1);
 
-            if ( (LA41_0==40) ) {
-                alt41=1;
+            if ( (LA43_0==40) ) {
+                alt43=1;
             }
-            switch (alt41) {
+            switch (alt43) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2740:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalMachineLearningLanguage.g:2833:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,40,FOLLOW_42); if (state.failed) return current;
+                    otherlv_3=(Token)match(input,40,FOLLOW_41); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                       			
                     }
-                    // InternalMachineLearningLanguage.g:2744:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalMachineLearningLanguage.g:2745:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalMachineLearningLanguage.g:2837:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalMachineLearningLanguage.g:2838:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalMachineLearningLanguage.g:2745:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalMachineLearningLanguage.g:2746:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalMachineLearningLanguage.g:2838:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalMachineLearningLanguage.g:2839:6: lv_initialisation_4_0= ruleExpressionRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8033,7 +8244,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalMachineLearningLanguage.g:2772:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:2865:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8041,8 +8252,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2772:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalMachineLearningLanguage.g:2773:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalMachineLearningLanguage.g:2865:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalMachineLearningLanguage.g:2866:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getTypeRuleRule()); 
@@ -8073,7 +8284,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalMachineLearningLanguage.g:2779:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalMachineLearningLanguage.g:2872:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8102,73 +8313,73 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2785:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalMachineLearningLanguage.g:2786:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalMachineLearningLanguage.g:2878:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalMachineLearningLanguage.g:2879:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalMachineLearningLanguage.g:2786:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt42=10;
+            // InternalMachineLearningLanguage.g:2879:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt44=10;
             switch ( input.LA(1) ) {
-            case 57:
+            case 58:
                 {
-                alt42=1;
+                alt44=1;
                 }
                 break;
-            case 59:
+            case 60:
                 {
-                alt42=2;
+                alt44=2;
                 }
                 break;
-            case 60:
+            case 61:
                 {
-                alt42=3;
+                alt44=3;
                 }
                 break;
-            case 61:
+            case 62:
                 {
-                alt42=4;
+                alt44=4;
                 }
                 break;
-            case 54:
+            case 55:
                 {
-                alt42=5;
+                alt44=5;
                 }
                 break;
-            case 63:
+            case 64:
                 {
-                alt42=6;
+                alt44=6;
                 }
                 break;
-            case 55:
+            case 56:
                 {
-                alt42=7;
+                alt44=7;
                 }
                 break;
-            case 62:
+            case 63:
                 {
-                alt42=8;
+                alt44=8;
                 }
                 break;
-            case 58:
+            case 59:
                 {
-                alt42=9;
+                alt44=9;
                 }
                 break;
             case 41:
                 {
-                alt42=10;
+                alt44=10;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 42, 0, input);
+                    new NoViableAltException("", 44, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt42) {
+            switch (alt44) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:2787:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalMachineLearningLanguage.g:2880:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8195,7 +8406,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:2799:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalMachineLearningLanguage.g:2892:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8222,7 +8433,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:2811:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalMachineLearningLanguage.g:2904:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8249,7 +8460,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:2823:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalMachineLearningLanguage.g:2916:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8276,7 +8487,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:2835:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalMachineLearningLanguage.g:2928:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8303,7 +8514,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:2847:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalMachineLearningLanguage.g:2940:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8330,7 +8541,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 7 :
-                    // InternalMachineLearningLanguage.g:2859:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalMachineLearningLanguage.g:2952:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8357,7 +8568,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 8 :
-                    // InternalMachineLearningLanguage.g:2871:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalMachineLearningLanguage.g:2964:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8384,7 +8595,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 9 :
-                    // InternalMachineLearningLanguage.g:2883:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalMachineLearningLanguage.g:2976:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8411,7 +8622,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 10 :
-                    // InternalMachineLearningLanguage.g:2895:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalMachineLearningLanguage.g:2988:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
                     if ( state.backtracking==0 ) {
 
@@ -8462,7 +8673,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalMachineLearningLanguage.g:2910:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3003:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8470,8 +8681,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2910:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalMachineLearningLanguage.g:2911:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalMachineLearningLanguage.g:3003:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3004:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
@@ -8502,7 +8713,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalMachineLearningLanguage.g:2917:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalMachineLearningLanguage.g:3010:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8512,14 +8723,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2923:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalMachineLearningLanguage.g:2924:2: ( () otherlv_1= 'literal' )
+            // InternalMachineLearningLanguage.g:3016:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalMachineLearningLanguage.g:3017:2: ( () otherlv_1= 'literal' )
             {
-            // InternalMachineLearningLanguage.g:2924:2: ( () otherlv_1= 'literal' )
-            // InternalMachineLearningLanguage.g:2925:3: () otherlv_1= 'literal'
+            // InternalMachineLearningLanguage.g:3017:2: ( () otherlv_1= 'literal' )
+            // InternalMachineLearningLanguage.g:3018:3: () otherlv_1= 'literal'
             {
-            // InternalMachineLearningLanguage.g:2925:3: ()
-            // InternalMachineLearningLanguage.g:2926:4: 
+            // InternalMachineLearningLanguage.g:3018:3: ()
+            // InternalMachineLearningLanguage.g:3019:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -8536,7 +8747,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,54,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,55,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
@@ -8567,7 +8778,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalMachineLearningLanguage.g:2943:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3036:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8575,8 +8786,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:2943:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalMachineLearningLanguage.g:2944:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalMachineLearningLanguage.g:3036:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3037:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
@@ -8607,7 +8818,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalMachineLearningLanguage.g:2950:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalMachineLearningLanguage.g:3043:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8618,14 +8829,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:2956:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalMachineLearningLanguage.g:2957:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalMachineLearningLanguage.g:3049:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalMachineLearningLanguage.g:3050:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalMachineLearningLanguage.g:2957:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalMachineLearningLanguage.g:2958:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalMachineLearningLanguage.g:3050:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalMachineLearningLanguage.g:3051:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalMachineLearningLanguage.g:2958:3: ()
-            // InternalMachineLearningLanguage.g:2959:4: 
+            // InternalMachineLearningLanguage.g:3051:3: ()
+            // InternalMachineLearningLanguage.g:3052:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -8642,17 +8853,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,55,FOLLOW_9); if (state.failed) return current;
+            otherlv_1=(Token)match(input,56,FOLLOW_9); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
               		
             }
-            // InternalMachineLearningLanguage.g:2972:3: ( ( ruleQualifiedName ) )
-            // InternalMachineLearningLanguage.g:2973:4: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:3065:3: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:3066:4: ( ruleQualifiedName )
             {
-            // InternalMachineLearningLanguage.g:2973:4: ( ruleQualifiedName )
-            // InternalMachineLearningLanguage.g:2974:5: ruleQualifiedName
+            // InternalMachineLearningLanguage.g:3066:4: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:3067:5: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -8671,7 +8882,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
               					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
               				
             }
-            pushFollow(FOLLOW_57);
+            pushFollow(FOLLOW_59);
             ruleQualifiedName();
 
             state._fsp--;
@@ -8687,32 +8898,32 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:2991:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop43:
+            // InternalMachineLearningLanguage.g:3084:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop45:
             do {
-                int alt43=2;
-                int LA43_0 = input.LA(1);
+                int alt45=2;
+                int LA45_0 = input.LA(1);
 
-                if ( (LA43_0==56) ) {
-                    alt43=1;
+                if ( (LA45_0==57) ) {
+                    alt45=1;
                 }
 
 
-                switch (alt43) {
+                switch (alt45) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:2992:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalMachineLearningLanguage.g:3085:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,56,FOLLOW_9); if (state.failed) return current;
+            	    otherlv_3=(Token)match(input,57,FOLLOW_9); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	      			
             	    }
-            	    // InternalMachineLearningLanguage.g:2996:4: ( ( ruleQualifiedName ) )
-            	    // InternalMachineLearningLanguage.g:2997:5: ( ruleQualifiedName )
+            	    // InternalMachineLearningLanguage.g:3089:4: ( ( ruleQualifiedName ) )
+            	    // InternalMachineLearningLanguage.g:3090:5: ( ruleQualifiedName )
             	    {
-            	    // InternalMachineLearningLanguage.g:2997:5: ( ruleQualifiedName )
-            	    // InternalMachineLearningLanguage.g:2998:6: ruleQualifiedName
+            	    // InternalMachineLearningLanguage.g:3090:5: ( ruleQualifiedName )
+            	    // InternalMachineLearningLanguage.g:3091:6: ruleQualifiedName
             	    {
             	    if ( state.backtracking==0 ) {
 
@@ -8731,7 +8942,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	      						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	      					
             	    }
-            	    pushFollow(FOLLOW_57);
+            	    pushFollow(FOLLOW_59);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -8752,7 +8963,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop43;
+            	    break loop45;
                 }
             } while (true);
 
@@ -8781,7 +8992,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalMachineLearningLanguage.g:3020:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3113:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8789,8 +9000,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3020:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3021:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalMachineLearningLanguage.g:3113:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3114:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
@@ -8821,7 +9032,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalMachineLearningLanguage.g:3027:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalMachineLearningLanguage.g:3120:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8831,14 +9042,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3033:2: ( ( () otherlv_1= 'string' ) )
-            // InternalMachineLearningLanguage.g:3034:2: ( () otherlv_1= 'string' )
+            // InternalMachineLearningLanguage.g:3126:2: ( ( () otherlv_1= 'string' ) )
+            // InternalMachineLearningLanguage.g:3127:2: ( () otherlv_1= 'string' )
             {
-            // InternalMachineLearningLanguage.g:3034:2: ( () otherlv_1= 'string' )
-            // InternalMachineLearningLanguage.g:3035:3: () otherlv_1= 'string'
+            // InternalMachineLearningLanguage.g:3127:2: ( () otherlv_1= 'string' )
+            // InternalMachineLearningLanguage.g:3128:3: () otherlv_1= 'string'
             {
-            // InternalMachineLearningLanguage.g:3035:3: ()
-            // InternalMachineLearningLanguage.g:3036:4: 
+            // InternalMachineLearningLanguage.g:3128:3: ()
+            // InternalMachineLearningLanguage.g:3129:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -8855,7 +9066,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,57,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
@@ -8886,7 +9097,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalMachineLearningLanguage.g:3053:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3146:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8894,8 +9105,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3053:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3054:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalMachineLearningLanguage.g:3146:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3147:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
@@ -8926,7 +9137,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalMachineLearningLanguage.g:3060:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalMachineLearningLanguage.g:3153:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8936,14 +9147,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3066:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalMachineLearningLanguage.g:3067:2: ( () otherlv_1= 'expression' )
+            // InternalMachineLearningLanguage.g:3159:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalMachineLearningLanguage.g:3160:2: ( () otherlv_1= 'expression' )
             {
-            // InternalMachineLearningLanguage.g:3067:2: ( () otherlv_1= 'expression' )
-            // InternalMachineLearningLanguage.g:3068:3: () otherlv_1= 'expression'
+            // InternalMachineLearningLanguage.g:3160:2: ( () otherlv_1= 'expression' )
+            // InternalMachineLearningLanguage.g:3161:3: () otherlv_1= 'expression'
             {
-            // InternalMachineLearningLanguage.g:3068:3: ()
-            // InternalMachineLearningLanguage.g:3069:4: 
+            // InternalMachineLearningLanguage.g:3161:3: ()
+            // InternalMachineLearningLanguage.g:3162:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -8960,7 +9171,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,58,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
@@ -8991,7 +9202,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalMachineLearningLanguage.g:3086:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3179:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -8999,8 +9210,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3086:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3087:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalMachineLearningLanguage.g:3179:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3180:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
@@ -9031,7 +9242,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalMachineLearningLanguage.g:3093:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalMachineLearningLanguage.g:3186:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9041,14 +9252,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3099:2: ( ( () otherlv_1= 'int' ) )
-            // InternalMachineLearningLanguage.g:3100:2: ( () otherlv_1= 'int' )
+            // InternalMachineLearningLanguage.g:3192:2: ( ( () otherlv_1= 'int' ) )
+            // InternalMachineLearningLanguage.g:3193:2: ( () otherlv_1= 'int' )
             {
-            // InternalMachineLearningLanguage.g:3100:2: ( () otherlv_1= 'int' )
-            // InternalMachineLearningLanguage.g:3101:3: () otherlv_1= 'int'
+            // InternalMachineLearningLanguage.g:3193:2: ( () otherlv_1= 'int' )
+            // InternalMachineLearningLanguage.g:3194:3: () otherlv_1= 'int'
             {
-            // InternalMachineLearningLanguage.g:3101:3: ()
-            // InternalMachineLearningLanguage.g:3102:4: 
+            // InternalMachineLearningLanguage.g:3194:3: ()
+            // InternalMachineLearningLanguage.g:3195:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9065,7 +9276,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,59,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
@@ -9096,7 +9307,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalMachineLearningLanguage.g:3119:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3212:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9104,8 +9315,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3119:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3120:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalMachineLearningLanguage.g:3212:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3213:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
@@ -9136,7 +9347,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalMachineLearningLanguage.g:3126:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalMachineLearningLanguage.g:3219:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9146,14 +9357,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3132:2: ( ( () otherlv_1= 'float' ) )
-            // InternalMachineLearningLanguage.g:3133:2: ( () otherlv_1= 'float' )
+            // InternalMachineLearningLanguage.g:3225:2: ( ( () otherlv_1= 'float' ) )
+            // InternalMachineLearningLanguage.g:3226:2: ( () otherlv_1= 'float' )
             {
-            // InternalMachineLearningLanguage.g:3133:2: ( () otherlv_1= 'float' )
-            // InternalMachineLearningLanguage.g:3134:3: () otherlv_1= 'float'
+            // InternalMachineLearningLanguage.g:3226:2: ( () otherlv_1= 'float' )
+            // InternalMachineLearningLanguage.g:3227:3: () otherlv_1= 'float'
             {
-            // InternalMachineLearningLanguage.g:3134:3: ()
-            // InternalMachineLearningLanguage.g:3135:4: 
+            // InternalMachineLearningLanguage.g:3227:3: ()
+            // InternalMachineLearningLanguage.g:3228:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9170,7 +9381,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,60,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
@@ -9201,7 +9412,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalMachineLearningLanguage.g:3152:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3245:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9209,8 +9420,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3152:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3153:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalMachineLearningLanguage.g:3245:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3246:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
@@ -9241,7 +9452,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalMachineLearningLanguage.g:3159:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalMachineLearningLanguage.g:3252:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9251,14 +9462,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3165:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalMachineLearningLanguage.g:3166:2: ( () otherlv_1= 'boolean' )
+            // InternalMachineLearningLanguage.g:3258:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalMachineLearningLanguage.g:3259:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalMachineLearningLanguage.g:3166:2: ( () otherlv_1= 'boolean' )
-            // InternalMachineLearningLanguage.g:3167:3: () otherlv_1= 'boolean'
+            // InternalMachineLearningLanguage.g:3259:2: ( () otherlv_1= 'boolean' )
+            // InternalMachineLearningLanguage.g:3260:3: () otherlv_1= 'boolean'
             {
-            // InternalMachineLearningLanguage.g:3167:3: ()
-            // InternalMachineLearningLanguage.g:3168:4: 
+            // InternalMachineLearningLanguage.g:3260:3: ()
+            // InternalMachineLearningLanguage.g:3261:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9275,7 +9486,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,61,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
@@ -9306,7 +9517,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalMachineLearningLanguage.g:3185:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3278:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9314,8 +9525,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3185:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3186:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalMachineLearningLanguage.g:3278:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3279:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
@@ -9346,7 +9557,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalMachineLearningLanguage.g:3192:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalMachineLearningLanguage.g:3285:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9356,14 +9567,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3198:2: ( ( () otherlv_1= 'void' ) )
-            // InternalMachineLearningLanguage.g:3199:2: ( () otherlv_1= 'void' )
+            // InternalMachineLearningLanguage.g:3291:2: ( ( () otherlv_1= 'void' ) )
+            // InternalMachineLearningLanguage.g:3292:2: ( () otherlv_1= 'void' )
             {
-            // InternalMachineLearningLanguage.g:3199:2: ( () otherlv_1= 'void' )
-            // InternalMachineLearningLanguage.g:3200:3: () otherlv_1= 'void'
+            // InternalMachineLearningLanguage.g:3292:2: ( () otherlv_1= 'void' )
+            // InternalMachineLearningLanguage.g:3293:3: () otherlv_1= 'void'
             {
-            // InternalMachineLearningLanguage.g:3200:3: ()
-            // InternalMachineLearningLanguage.g:3201:4: 
+            // InternalMachineLearningLanguage.g:3293:3: ()
+            // InternalMachineLearningLanguage.g:3294:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9380,7 +9591,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            otherlv_1=(Token)match(input,62,FOLLOW_2); if (state.failed) return current;
+            otherlv_1=(Token)match(input,63,FOLLOW_2); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
@@ -9411,7 +9622,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalMachineLearningLanguage.g:3218:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3311:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9419,8 +9630,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3218:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3219:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalMachineLearningLanguage.g:3311:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3312:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
@@ -9451,7 +9662,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalMachineLearningLanguage.g:3225:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalMachineLearningLanguage.g:3318:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9461,14 +9672,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3231:2: ( ( () otherlv_1= 'data' ) )
-            // InternalMachineLearningLanguage.g:3232:2: ( () otherlv_1= 'data' )
+            // InternalMachineLearningLanguage.g:3324:2: ( ( () otherlv_1= 'data' ) )
+            // InternalMachineLearningLanguage.g:3325:2: ( () otherlv_1= 'data' )
             {
-            // InternalMachineLearningLanguage.g:3232:2: ( () otherlv_1= 'data' )
-            // InternalMachineLearningLanguage.g:3233:3: () otherlv_1= 'data'
+            // InternalMachineLearningLanguage.g:3325:2: ( () otherlv_1= 'data' )
+            // InternalMachineLearningLanguage.g:3326:3: () otherlv_1= 'data'
             {
-            // InternalMachineLearningLanguage.g:3233:3: ()
-            // InternalMachineLearningLanguage.g:3234:4: 
+            // InternalMachineLearningLanguage.g:3326:3: ()
+            // InternalMachineLearningLanguage.g:3327:4: 
             {
             if ( state.backtracking==0 ) {
 
@@ -9516,7 +9727,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalMachineLearningLanguage.g:3251:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalMachineLearningLanguage.g:3344:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9524,8 +9735,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3251:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalMachineLearningLanguage.g:3252:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalMachineLearningLanguage.g:3344:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalMachineLearningLanguage.g:3345:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
@@ -9556,7 +9767,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalMachineLearningLanguage.g:3258:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalMachineLearningLanguage.g:3351:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -9568,23 +9779,23 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3264:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalMachineLearningLanguage.g:3265:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalMachineLearningLanguage.g:3357:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalMachineLearningLanguage.g:3358:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalMachineLearningLanguage.g:3265:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalMachineLearningLanguage.g:3266:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:3358:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalMachineLearningLanguage.g:3359:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,63,FOLLOW_55); if (state.failed) return current;
+            otherlv_0=(Token)match(input,64,FOLLOW_57); if (state.failed) return current;
             if ( state.backtracking==0 ) {
 
               			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
               		
             }
-            // InternalMachineLearningLanguage.g:3270:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:3271:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:3363:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:3364:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:3271:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalMachineLearningLanguage.g:3272:5: lv_elements_1_0= ruleTypeRule
+            // InternalMachineLearningLanguage.g:3364:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:3365:5: lv_elements_1_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
@@ -9640,7 +9851,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalMachineLearningLanguage.g:3293:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalMachineLearningLanguage.g:3386:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -9648,8 +9859,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3293:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalMachineLearningLanguage.g:3294:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalMachineLearningLanguage.g:3386:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalMachineLearningLanguage.g:3387:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getParameterRuleRule()); 
@@ -9680,7 +9891,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalMachineLearningLanguage.g:3300:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalMachineLearningLanguage.g:3393:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -9693,17 +9904,17 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3306:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalMachineLearningLanguage.g:3307:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:3399:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalMachineLearningLanguage.g:3400:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalMachineLearningLanguage.g:3307:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalMachineLearningLanguage.g:3308:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:3400:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalMachineLearningLanguage.g:3401:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalMachineLearningLanguage.g:3308:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalMachineLearningLanguage.g:3309:4: (lv_type_0_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:3401:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalMachineLearningLanguage.g:3402:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalMachineLearningLanguage.g:3309:4: (lv_type_0_0= ruleTypeRule )
-            // InternalMachineLearningLanguage.g:3310:5: lv_type_0_0= ruleTypeRule
+            // InternalMachineLearningLanguage.g:3402:4: (lv_type_0_0= ruleTypeRule )
+            // InternalMachineLearningLanguage.g:3403:5: lv_type_0_0= ruleTypeRule
             {
             if ( state.backtracking==0 ) {
 
@@ -9734,11 +9945,11 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
             }
 
-            // InternalMachineLearningLanguage.g:3327:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalMachineLearningLanguage.g:3328:4: (lv_name_1_0= ruleStringOrId )
+            // InternalMachineLearningLanguage.g:3420:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalMachineLearningLanguage.g:3421:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalMachineLearningLanguage.g:3328:4: (lv_name_1_0= ruleStringOrId )
-            // InternalMachineLearningLanguage.g:3329:5: lv_name_1_0= ruleStringOrId
+            // InternalMachineLearningLanguage.g:3421:4: (lv_name_1_0= ruleStringOrId )
+            // InternalMachineLearningLanguage.g:3422:5: lv_name_1_0= ruleStringOrId
             {
             if ( state.backtracking==0 ) {
 
@@ -9794,7 +10005,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalMachineLearningLanguage.g:3350:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalMachineLearningLanguage.g:3443:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -9802,8 +10013,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3350:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalMachineLearningLanguage.g:3351:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalMachineLearningLanguage.g:3443:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalMachineLearningLanguage.g:3444:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
@@ -9834,7 +10045,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalMachineLearningLanguage.g:3357:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalMachineLearningLanguage.g:3450:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -9842,14 +10053,14 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3363:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalMachineLearningLanguage.g:3364:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:3456:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalMachineLearningLanguage.g:3457:2: ( ( ruleQualifiedName ) )
             {
-            // InternalMachineLearningLanguage.g:3364:2: ( ( ruleQualifiedName ) )
-            // InternalMachineLearningLanguage.g:3365:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:3457:2: ( ( ruleQualifiedName ) )
+            // InternalMachineLearningLanguage.g:3458:3: ( ruleQualifiedName )
             {
-            // InternalMachineLearningLanguage.g:3365:3: ( ruleQualifiedName )
-            // InternalMachineLearningLanguage.g:3366:4: ruleQualifiedName
+            // InternalMachineLearningLanguage.g:3458:3: ( ruleQualifiedName )
+            // InternalMachineLearningLanguage.g:3459:4: ruleQualifiedName
             {
             if ( state.backtracking==0 ) {
 
@@ -9906,7 +10117,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalMachineLearningLanguage.g:3386:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalMachineLearningLanguage.g:3479:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -9914,8 +10125,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3386:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalMachineLearningLanguage.g:3387:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalMachineLearningLanguage.g:3479:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalMachineLearningLanguage.g:3480:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getQualifiedNameRule()); 
@@ -9946,7 +10157,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalMachineLearningLanguage.g:3393:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalMachineLearningLanguage.g:3486:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -9960,18 +10171,18 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3399:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalMachineLearningLanguage.g:3400:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalMachineLearningLanguage.g:3492:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalMachineLearningLanguage.g:3493:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalMachineLearningLanguage.g:3400:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalMachineLearningLanguage.g:3401:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalMachineLearningLanguage.g:3493:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalMachineLearningLanguage.g:3494:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
             if ( state.backtracking==0 ) {
 
               			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
               		
             }
-            pushFollow(FOLLOW_40);
+            pushFollow(FOLLOW_60);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -9986,22 +10197,22 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
               			afterParserOrEnumRuleCall();
               		
             }
-            // InternalMachineLearningLanguage.g:3411:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop44:
+            // InternalMachineLearningLanguage.g:3504:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop46:
             do {
-                int alt44=2;
-                int LA44_0 = input.LA(1);
+                int alt46=2;
+                int LA46_0 = input.LA(1);
 
-                if ( (LA44_0==42) ) {
-                    alt44=1;
+                if ( (LA46_0==65) ) {
+                    alt46=1;
                 }
 
 
-                switch (alt44) {
+                switch (alt46) {
             	case 1 :
-            	    // InternalMachineLearningLanguage.g:3412:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalMachineLearningLanguage.g:3505:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,42,FOLLOW_9); if (state.failed) return current;
+            	    kw=(Token)match(input,65,FOLLOW_9); if (state.failed) return current;
             	    if ( state.backtracking==0 ) {
 
             	      				current.merge(kw);
@@ -10013,7 +10224,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	      				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	      			
             	    }
-            	    pushFollow(FOLLOW_40);
+            	    pushFollow(FOLLOW_60);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -10033,7 +10244,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
             	    break;
 
             	default :
-            	    break loop44;
+            	    break loop46;
                 }
             } while (true);
 
@@ -10062,7 +10273,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalMachineLearningLanguage.g:3432:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalMachineLearningLanguage.g:3525:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -10070,8 +10281,8 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
         try {
-            // InternalMachineLearningLanguage.g:3432:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalMachineLearningLanguage.g:3433:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalMachineLearningLanguage.g:3525:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalMachineLearningLanguage.g:3526:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
             if ( state.backtracking==0 ) {
                newCompositeNode(grammarAccess.getStringOrIdRule()); 
@@ -10102,7 +10313,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalMachineLearningLanguage.g:3439:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalMachineLearningLanguage.g:3532:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -10113,29 +10324,29 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3445:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalMachineLearningLanguage.g:3446:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalMachineLearningLanguage.g:3538:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalMachineLearningLanguage.g:3539:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalMachineLearningLanguage.g:3446:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt45=2;
-            int LA45_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:3539:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt47=2;
+            int LA47_0 = input.LA(1);
 
-            if ( (LA45_0==RULE_QUOTED_ID) ) {
-                alt45=1;
+            if ( (LA47_0==RULE_QUOTED_ID) ) {
+                alt47=1;
             }
-            else if ( (LA45_0==RULE_ID) ) {
-                alt45=2;
+            else if ( (LA47_0==RULE_ID) ) {
+                alt47=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 45, 0, input);
+                    new NoViableAltException("", 47, 0, input);
 
                 throw nvae;
             }
-            switch (alt45) {
+            switch (alt47) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3447:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalMachineLearningLanguage.g:3540:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10152,7 +10363,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3455:3: this_ID_1= RULE_ID
+                    // InternalMachineLearningLanguage.g:3548:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
@@ -10193,7 +10404,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalMachineLearningLanguage.g:3466:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalMachineLearningLanguage.g:3559:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -10208,58 +10419,58 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3472:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalMachineLearningLanguage.g:3473:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalMachineLearningLanguage.g:3565:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalMachineLearningLanguage.g:3566:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalMachineLearningLanguage.g:3473:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt46=6;
+            // InternalMachineLearningLanguage.g:3566:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt48=6;
             switch ( input.LA(1) ) {
-            case 64:
+            case 66:
                 {
-                alt46=1;
+                alt48=1;
                 }
                 break;
-            case 65:
+            case 67:
                 {
-                alt46=2;
+                alt48=2;
                 }
                 break;
-            case 66:
+            case 68:
                 {
-                alt46=3;
+                alt48=3;
                 }
                 break;
-            case 67:
+            case 69:
                 {
-                alt46=4;
+                alt48=4;
                 }
                 break;
-            case 68:
+            case 70:
                 {
-                alt46=5;
+                alt48=5;
                 }
                 break;
-            case 69:
+            case 71:
                 {
-                alt46=6;
+                alt48=6;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 46, 0, input);
+                    new NoViableAltException("", 48, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt46) {
+            switch (alt48) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3474:3: (enumLiteral_0= '>=' )
+                    // InternalMachineLearningLanguage.g:3567:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalMachineLearningLanguage.g:3474:3: (enumLiteral_0= '>=' )
-                    // InternalMachineLearningLanguage.g:3475:4: enumLiteral_0= '>='
+                    // InternalMachineLearningLanguage.g:3567:3: (enumLiteral_0= '>=' )
+                    // InternalMachineLearningLanguage.g:3568:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,64,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -10273,12 +10484,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3482:3: (enumLiteral_1= '>' )
+                    // InternalMachineLearningLanguage.g:3575:3: (enumLiteral_1= '>' )
                     {
-                    // InternalMachineLearningLanguage.g:3482:3: (enumLiteral_1= '>' )
-                    // InternalMachineLearningLanguage.g:3483:4: enumLiteral_1= '>'
+                    // InternalMachineLearningLanguage.g:3575:3: (enumLiteral_1= '>' )
+                    // InternalMachineLearningLanguage.g:3576:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,65,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -10292,12 +10503,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:3490:3: (enumLiteral_2= '=' )
+                    // InternalMachineLearningLanguage.g:3583:3: (enumLiteral_2= '=' )
                     {
-                    // InternalMachineLearningLanguage.g:3490:3: (enumLiteral_2= '=' )
-                    // InternalMachineLearningLanguage.g:3491:4: enumLiteral_2= '='
+                    // InternalMachineLearningLanguage.g:3583:3: (enumLiteral_2= '=' )
+                    // InternalMachineLearningLanguage.g:3584:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,66,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -10311,12 +10522,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:3498:3: (enumLiteral_3= '!=' )
+                    // InternalMachineLearningLanguage.g:3591:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalMachineLearningLanguage.g:3498:3: (enumLiteral_3= '!=' )
-                    // InternalMachineLearningLanguage.g:3499:4: enumLiteral_3= '!='
+                    // InternalMachineLearningLanguage.g:3591:3: (enumLiteral_3= '!=' )
+                    // InternalMachineLearningLanguage.g:3592:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,67,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -10330,12 +10541,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:3506:3: (enumLiteral_4= '<' )
+                    // InternalMachineLearningLanguage.g:3599:3: (enumLiteral_4= '<' )
                     {
-                    // InternalMachineLearningLanguage.g:3506:3: (enumLiteral_4= '<' )
-                    // InternalMachineLearningLanguage.g:3507:4: enumLiteral_4= '<'
+                    // InternalMachineLearningLanguage.g:3599:3: (enumLiteral_4= '<' )
+                    // InternalMachineLearningLanguage.g:3600:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,68,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -10349,12 +10560,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:3514:3: (enumLiteral_5= '<=' )
+                    // InternalMachineLearningLanguage.g:3607:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalMachineLearningLanguage.g:3514:3: (enumLiteral_5= '<=' )
-                    // InternalMachineLearningLanguage.g:3515:4: enumLiteral_5= '<='
+                    // InternalMachineLearningLanguage.g:3607:3: (enumLiteral_5= '<=' )
+                    // InternalMachineLearningLanguage.g:3608:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,69,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -10392,7 +10603,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalMachineLearningLanguage.g:3525:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalMachineLearningLanguage.g:3618:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -10403,34 +10614,34 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3531:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalMachineLearningLanguage.g:3532:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalMachineLearningLanguage.g:3624:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalMachineLearningLanguage.g:3625:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalMachineLearningLanguage.g:3532:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt47=2;
-            int LA47_0 = input.LA(1);
+            // InternalMachineLearningLanguage.g:3625:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt49=2;
+            int LA49_0 = input.LA(1);
 
-            if ( (LA47_0==70) ) {
-                alt47=1;
+            if ( (LA49_0==72) ) {
+                alt49=1;
             }
-            else if ( (LA47_0==71) ) {
-                alt47=2;
+            else if ( (LA49_0==73) ) {
+                alt49=2;
             }
             else {
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 47, 0, input);
+                    new NoViableAltException("", 49, 0, input);
 
                 throw nvae;
             }
-            switch (alt47) {
+            switch (alt49) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3533:3: (enumLiteral_0= '+' )
+                    // InternalMachineLearningLanguage.g:3626:3: (enumLiteral_0= '+' )
                     {
-                    // InternalMachineLearningLanguage.g:3533:3: (enumLiteral_0= '+' )
-                    // InternalMachineLearningLanguage.g:3534:4: enumLiteral_0= '+'
+                    // InternalMachineLearningLanguage.g:3626:3: (enumLiteral_0= '+' )
+                    // InternalMachineLearningLanguage.g:3627:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,70,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -10444,12 +10655,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3541:3: (enumLiteral_1= '-' )
+                    // InternalMachineLearningLanguage.g:3634:3: (enumLiteral_1= '-' )
                     {
-                    // InternalMachineLearningLanguage.g:3541:3: (enumLiteral_1= '-' )
-                    // InternalMachineLearningLanguage.g:3542:4: enumLiteral_1= '-'
+                    // InternalMachineLearningLanguage.g:3634:3: (enumLiteral_1= '-' )
+                    // InternalMachineLearningLanguage.g:3635:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,71,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -10487,7 +10698,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalMachineLearningLanguage.g:3552:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalMachineLearningLanguage.g:3645:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -10499,43 +10710,43 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3558:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalMachineLearningLanguage.g:3559:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalMachineLearningLanguage.g:3651:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalMachineLearningLanguage.g:3652:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalMachineLearningLanguage.g:3559:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt48=3;
+            // InternalMachineLearningLanguage.g:3652:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt50=3;
             switch ( input.LA(1) ) {
-            case 72:
+            case 74:
                 {
-                alt48=1;
+                alt50=1;
                 }
                 break;
-            case 73:
+            case 75:
                 {
-                alt48=2;
+                alt50=2;
                 }
                 break;
-            case 74:
+            case 76:
                 {
-                alt48=3;
+                alt50=3;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 48, 0, input);
+                    new NoViableAltException("", 50, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt48) {
+            switch (alt50) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3560:3: (enumLiteral_0= '*' )
+                    // InternalMachineLearningLanguage.g:3653:3: (enumLiteral_0= '*' )
                     {
-                    // InternalMachineLearningLanguage.g:3560:3: (enumLiteral_0= '*' )
-                    // InternalMachineLearningLanguage.g:3561:4: enumLiteral_0= '*'
+                    // InternalMachineLearningLanguage.g:3653:3: (enumLiteral_0= '*' )
+                    // InternalMachineLearningLanguage.g:3654:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,72,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -10549,12 +10760,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3568:3: (enumLiteral_1= '/' )
+                    // InternalMachineLearningLanguage.g:3661:3: (enumLiteral_1= '/' )
                     {
-                    // InternalMachineLearningLanguage.g:3568:3: (enumLiteral_1= '/' )
-                    // InternalMachineLearningLanguage.g:3569:4: enumLiteral_1= '/'
+                    // InternalMachineLearningLanguage.g:3661:3: (enumLiteral_1= '/' )
+                    // InternalMachineLearningLanguage.g:3662:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,73,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -10568,12 +10779,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:3576:3: (enumLiteral_2= '%' )
+                    // InternalMachineLearningLanguage.g:3669:3: (enumLiteral_2= '%' )
                     {
-                    // InternalMachineLearningLanguage.g:3576:3: (enumLiteral_2= '%' )
-                    // InternalMachineLearningLanguage.g:3577:4: enumLiteral_2= '%'
+                    // InternalMachineLearningLanguage.g:3669:3: (enumLiteral_2= '%' )
+                    // InternalMachineLearningLanguage.g:3670:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,74,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -10611,7 +10822,7 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalMachineLearningLanguage.g:3587:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalMachineLearningLanguage.g:3680:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -10640,128 +10851,128 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
         	enterRule();
 
         try {
-            // InternalMachineLearningLanguage.g:3593:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalMachineLearningLanguage.g:3594:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalMachineLearningLanguage.g:3686:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalMachineLearningLanguage.g:3687:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalMachineLearningLanguage.g:3594:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt49=20;
+            // InternalMachineLearningLanguage.g:3687:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt51=20;
             switch ( input.LA(1) ) {
-            case 75:
-                {
-                alt49=1;
-                }
-                break;
-            case 76:
-                {
-                alt49=2;
-                }
-                break;
             case 77:
                 {
-                alt49=3;
+                alt51=1;
                 }
                 break;
             case 78:
                 {
-                alt49=4;
+                alt51=2;
                 }
                 break;
             case 79:
                 {
-                alt49=5;
+                alt51=3;
                 }
                 break;
             case 80:
                 {
-                alt49=6;
+                alt51=4;
                 }
                 break;
             case 81:
                 {
-                alt49=7;
+                alt51=5;
                 }
                 break;
             case 82:
                 {
-                alt49=8;
+                alt51=6;
                 }
                 break;
             case 83:
                 {
-                alt49=9;
+                alt51=7;
                 }
                 break;
             case 84:
                 {
-                alt49=10;
+                alt51=8;
                 }
                 break;
             case 85:
                 {
-                alt49=11;
+                alt51=9;
                 }
                 break;
             case 86:
                 {
-                alt49=12;
+                alt51=10;
                 }
                 break;
             case 87:
                 {
-                alt49=13;
+                alt51=11;
                 }
                 break;
             case 88:
                 {
-                alt49=14;
+                alt51=12;
                 }
                 break;
             case 89:
                 {
-                alt49=15;
+                alt51=13;
                 }
                 break;
             case 90:
                 {
-                alt49=16;
+                alt51=14;
                 }
                 break;
             case 91:
                 {
-                alt49=17;
+                alt51=15;
                 }
                 break;
             case 92:
                 {
-                alt49=18;
+                alt51=16;
                 }
                 break;
             case 93:
                 {
-                alt49=19;
+                alt51=17;
                 }
                 break;
             case 94:
                 {
-                alt49=20;
+                alt51=18;
+                }
+                break;
+            case 95:
+                {
+                alt51=19;
+                }
+                break;
+            case 96:
+                {
+                alt51=20;
                 }
                 break;
             default:
                 if (state.backtracking>0) {state.failed=true; return current;}
                 NoViableAltException nvae =
-                    new NoViableAltException("", 49, 0, input);
+                    new NoViableAltException("", 51, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt49) {
+            switch (alt51) {
                 case 1 :
-                    // InternalMachineLearningLanguage.g:3595:3: (enumLiteral_0= 'Y' )
+                    // InternalMachineLearningLanguage.g:3688:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalMachineLearningLanguage.g:3595:3: (enumLiteral_0= 'Y' )
-                    // InternalMachineLearningLanguage.g:3596:4: enumLiteral_0= 'Y'
+                    // InternalMachineLearningLanguage.g:3688:3: (enumLiteral_0= 'Y' )
+                    // InternalMachineLearningLanguage.g:3689:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,75,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_0=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
@@ -10775,12 +10986,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 2 :
-                    // InternalMachineLearningLanguage.g:3603:3: (enumLiteral_1= 'Z' )
+                    // InternalMachineLearningLanguage.g:3696:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalMachineLearningLanguage.g:3603:3: (enumLiteral_1= 'Z' )
-                    // InternalMachineLearningLanguage.g:3604:4: enumLiteral_1= 'Z'
+                    // InternalMachineLearningLanguage.g:3696:3: (enumLiteral_1= 'Z' )
+                    // InternalMachineLearningLanguage.g:3697:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,76,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_1=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
@@ -10794,12 +11005,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 3 :
-                    // InternalMachineLearningLanguage.g:3611:3: (enumLiteral_2= 'E' )
+                    // InternalMachineLearningLanguage.g:3704:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalMachineLearningLanguage.g:3611:3: (enumLiteral_2= 'E' )
-                    // InternalMachineLearningLanguage.g:3612:4: enumLiteral_2= 'E'
+                    // InternalMachineLearningLanguage.g:3704:3: (enumLiteral_2= 'E' )
+                    // InternalMachineLearningLanguage.g:3705:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,77,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_2=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
@@ -10813,12 +11024,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 4 :
-                    // InternalMachineLearningLanguage.g:3619:3: (enumLiteral_3= 'P' )
+                    // InternalMachineLearningLanguage.g:3712:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalMachineLearningLanguage.g:3619:3: (enumLiteral_3= 'P' )
-                    // InternalMachineLearningLanguage.g:3620:4: enumLiteral_3= 'P'
+                    // InternalMachineLearningLanguage.g:3712:3: (enumLiteral_3= 'P' )
+                    // InternalMachineLearningLanguage.g:3713:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,78,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_3=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
@@ -10832,12 +11043,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 5 :
-                    // InternalMachineLearningLanguage.g:3627:3: (enumLiteral_4= 'T' )
+                    // InternalMachineLearningLanguage.g:3720:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalMachineLearningLanguage.g:3627:3: (enumLiteral_4= 'T' )
-                    // InternalMachineLearningLanguage.g:3628:4: enumLiteral_4= 'T'
+                    // InternalMachineLearningLanguage.g:3720:3: (enumLiteral_4= 'T' )
+                    // InternalMachineLearningLanguage.g:3721:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,79,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_4=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
@@ -10851,12 +11062,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 6 :
-                    // InternalMachineLearningLanguage.g:3635:3: (enumLiteral_5= 'G' )
+                    // InternalMachineLearningLanguage.g:3728:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalMachineLearningLanguage.g:3635:3: (enumLiteral_5= 'G' )
-                    // InternalMachineLearningLanguage.g:3636:4: enumLiteral_5= 'G'
+                    // InternalMachineLearningLanguage.g:3728:3: (enumLiteral_5= 'G' )
+                    // InternalMachineLearningLanguage.g:3729:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,80,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_5=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
@@ -10870,12 +11081,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 7 :
-                    // InternalMachineLearningLanguage.g:3643:3: (enumLiteral_6= 'M' )
+                    // InternalMachineLearningLanguage.g:3736:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalMachineLearningLanguage.g:3643:3: (enumLiteral_6= 'M' )
-                    // InternalMachineLearningLanguage.g:3644:4: enumLiteral_6= 'M'
+                    // InternalMachineLearningLanguage.g:3736:3: (enumLiteral_6= 'M' )
+                    // InternalMachineLearningLanguage.g:3737:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,81,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_6=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
@@ -10889,12 +11100,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 8 :
-                    // InternalMachineLearningLanguage.g:3651:3: (enumLiteral_7= 'k' )
+                    // InternalMachineLearningLanguage.g:3744:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalMachineLearningLanguage.g:3651:3: (enumLiteral_7= 'k' )
-                    // InternalMachineLearningLanguage.g:3652:4: enumLiteral_7= 'k'
+                    // InternalMachineLearningLanguage.g:3744:3: (enumLiteral_7= 'k' )
+                    // InternalMachineLearningLanguage.g:3745:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,82,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_7=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
@@ -10908,12 +11119,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 9 :
-                    // InternalMachineLearningLanguage.g:3659:3: (enumLiteral_8= 'h' )
+                    // InternalMachineLearningLanguage.g:3752:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalMachineLearningLanguage.g:3659:3: (enumLiteral_8= 'h' )
-                    // InternalMachineLearningLanguage.g:3660:4: enumLiteral_8= 'h'
+                    // InternalMachineLearningLanguage.g:3752:3: (enumLiteral_8= 'h' )
+                    // InternalMachineLearningLanguage.g:3753:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,83,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_8=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
@@ -10927,12 +11138,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 10 :
-                    // InternalMachineLearningLanguage.g:3667:3: (enumLiteral_9= 'da' )
+                    // InternalMachineLearningLanguage.g:3760:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalMachineLearningLanguage.g:3667:3: (enumLiteral_9= 'da' )
-                    // InternalMachineLearningLanguage.g:3668:4: enumLiteral_9= 'da'
+                    // InternalMachineLearningLanguage.g:3760:3: (enumLiteral_9= 'da' )
+                    // InternalMachineLearningLanguage.g:3761:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,84,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_9=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
@@ -10946,12 +11157,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 11 :
-                    // InternalMachineLearningLanguage.g:3675:3: (enumLiteral_10= 'd' )
+                    // InternalMachineLearningLanguage.g:3768:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalMachineLearningLanguage.g:3675:3: (enumLiteral_10= 'd' )
-                    // InternalMachineLearningLanguage.g:3676:4: enumLiteral_10= 'd'
+                    // InternalMachineLearningLanguage.g:3768:3: (enumLiteral_10= 'd' )
+                    // InternalMachineLearningLanguage.g:3769:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,85,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_10=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
@@ -10965,12 +11176,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 12 :
-                    // InternalMachineLearningLanguage.g:3683:3: (enumLiteral_11= 'c' )
+                    // InternalMachineLearningLanguage.g:3776:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalMachineLearningLanguage.g:3683:3: (enumLiteral_11= 'c' )
-                    // InternalMachineLearningLanguage.g:3684:4: enumLiteral_11= 'c'
+                    // InternalMachineLearningLanguage.g:3776:3: (enumLiteral_11= 'c' )
+                    // InternalMachineLearningLanguage.g:3777:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,86,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_11=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
@@ -10984,12 +11195,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 13 :
-                    // InternalMachineLearningLanguage.g:3691:3: (enumLiteral_12= 'm' )
+                    // InternalMachineLearningLanguage.g:3784:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalMachineLearningLanguage.g:3691:3: (enumLiteral_12= 'm' )
-                    // InternalMachineLearningLanguage.g:3692:4: enumLiteral_12= 'm'
+                    // InternalMachineLearningLanguage.g:3784:3: (enumLiteral_12= 'm' )
+                    // InternalMachineLearningLanguage.g:3785:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,87,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_12=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
@@ -11003,12 +11214,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 14 :
-                    // InternalMachineLearningLanguage.g:3699:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalMachineLearningLanguage.g:3792:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalMachineLearningLanguage.g:3699:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalMachineLearningLanguage.g:3700:4: enumLiteral_13= '\\u00B5'
+                    // InternalMachineLearningLanguage.g:3792:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalMachineLearningLanguage.g:3793:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,88,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_13=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
@@ -11022,12 +11233,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 15 :
-                    // InternalMachineLearningLanguage.g:3707:3: (enumLiteral_14= 'n' )
+                    // InternalMachineLearningLanguage.g:3800:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalMachineLearningLanguage.g:3707:3: (enumLiteral_14= 'n' )
-                    // InternalMachineLearningLanguage.g:3708:4: enumLiteral_14= 'n'
+                    // InternalMachineLearningLanguage.g:3800:3: (enumLiteral_14= 'n' )
+                    // InternalMachineLearningLanguage.g:3801:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,89,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_14=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
@@ -11041,12 +11252,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 16 :
-                    // InternalMachineLearningLanguage.g:3715:3: (enumLiteral_15= 'p' )
+                    // InternalMachineLearningLanguage.g:3808:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalMachineLearningLanguage.g:3715:3: (enumLiteral_15= 'p' )
-                    // InternalMachineLearningLanguage.g:3716:4: enumLiteral_15= 'p'
+                    // InternalMachineLearningLanguage.g:3808:3: (enumLiteral_15= 'p' )
+                    // InternalMachineLearningLanguage.g:3809:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,90,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_15=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
@@ -11060,12 +11271,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 17 :
-                    // InternalMachineLearningLanguage.g:3723:3: (enumLiteral_16= 'f' )
+                    // InternalMachineLearningLanguage.g:3816:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalMachineLearningLanguage.g:3723:3: (enumLiteral_16= 'f' )
-                    // InternalMachineLearningLanguage.g:3724:4: enumLiteral_16= 'f'
+                    // InternalMachineLearningLanguage.g:3816:3: (enumLiteral_16= 'f' )
+                    // InternalMachineLearningLanguage.g:3817:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,91,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_16=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
@@ -11079,12 +11290,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 18 :
-                    // InternalMachineLearningLanguage.g:3731:3: (enumLiteral_17= 'a' )
+                    // InternalMachineLearningLanguage.g:3824:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalMachineLearningLanguage.g:3731:3: (enumLiteral_17= 'a' )
-                    // InternalMachineLearningLanguage.g:3732:4: enumLiteral_17= 'a'
+                    // InternalMachineLearningLanguage.g:3824:3: (enumLiteral_17= 'a' )
+                    // InternalMachineLearningLanguage.g:3825:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,92,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_17=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
@@ -11098,12 +11309,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 19 :
-                    // InternalMachineLearningLanguage.g:3739:3: (enumLiteral_18= 'z' )
+                    // InternalMachineLearningLanguage.g:3832:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalMachineLearningLanguage.g:3739:3: (enumLiteral_18= 'z' )
-                    // InternalMachineLearningLanguage.g:3740:4: enumLiteral_18= 'z'
+                    // InternalMachineLearningLanguage.g:3832:3: (enumLiteral_18= 'z' )
+                    // InternalMachineLearningLanguage.g:3833:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,93,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_18=(Token)match(input,95,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
@@ -11117,12 +11328,12 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
                     }
                     break;
                 case 20 :
-                    // InternalMachineLearningLanguage.g:3747:3: (enumLiteral_19= 'y' )
+                    // InternalMachineLearningLanguage.g:3840:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalMachineLearningLanguage.g:3747:3: (enumLiteral_19= 'y' )
-                    // InternalMachineLearningLanguage.g:3748:4: enumLiteral_19= 'y'
+                    // InternalMachineLearningLanguage.g:3840:3: (enumLiteral_19= 'y' )
+                    // InternalMachineLearningLanguage.g:3841:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,94,FOLLOW_2); if (state.failed) return current;
+                    enumLiteral_19=(Token)match(input,96,FOLLOW_2); if (state.failed) return current;
                     if ( state.backtracking==0 ) {
 
                       				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
@@ -11161,6 +11372,51 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
     // Delegated rules
 
 
+    protected DFA32 dfa32 = new DFA32(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\5\2\uffff\2\20";
+    static final String dfa_4s = "\1\62\2\114\2\uffff\1\10\2\uffff\2\114";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\3\1\2\2\3\1\1\46\uffff\1\4\1\uffff\2\3",
+            "\1\7\2\uffff\1\7\26\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\2\uffff\1\7\26\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "",
+            "",
+            "\1\11\2\uffff\1\10",
+            "",
+            "",
+            "\1\7\2\uffff\1\7\26\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7",
+            "\1\7\2\uffff\1\7\26\uffff\3\7\1\uffff\1\7\1\6\1\7\20\uffff\1\5\13\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA32 extends DFA {
+
+        public DFA32(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 32;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "2120:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -11200,25 +11456,28 @@ public class InternalMachineLearningLanguageParser extends AbstractInternalAntlr
     public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000004000000002L});
     public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000008000000120L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000010000000000L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x00180210000001F0L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x00180230000001F0L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x00060210000001F0L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x00060230000001F0L});
     public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000040000000002L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0000080000000002L});
-    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x001D4210000001F0L,0x00000000000000C0L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0006A210000001F0L,0x0000000000000300L});
+    public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000080000000002L});
     public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x0000100000000002L});
-    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000200000000002L});
-    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x000000000000003FL});
-    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000C0L});
-    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000700L});
-    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0000800000000002L});
-    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0002000000000000L});
-    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0001000000000000L});
-    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x001F4210000001F0L,0x00000000000000C0L});
-    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0002000000080000L});
-    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000002L,0x000000007FFFF800L});
-    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0020000000000000L});
-    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0xFEC0020000000000L});
-    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000010000010000L});
-    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0x0100000000000002L});
+    public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0000000000000002L,0x00000000000000FCL});
+    public static final BitSet FOLLOW_45 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000300L});
+    public static final BitSet FOLLOW_46 = new BitSet(new long[]{0x0000000000000002L,0x0000000000001C00L});
+    public static final BitSet FOLLOW_47 = new BitSet(new long[]{0x0000400000000002L});
+    public static final BitSet FOLLOW_48 = new BitSet(new long[]{0x0001000000000000L});
+    public static final BitSet FOLLOW_49 = new BitSet(new long[]{0x0000800000000000L});
+    public static final BitSet FOLLOW_50 = new BitSet(new long[]{0x0007A210000001F0L,0x0000000000000300L});
+    public static final BitSet FOLLOW_51 = new BitSet(new long[]{0x0001000000080000L});
+    public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000002L,0x00000001FFFFE000L});
+    public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0010000000000000L});
+    public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0020004000000000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000004000000000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0040000000000000L});
+    public static final BitSet FOLLOW_57 = new BitSet(new long[]{0xFD80020000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_58 = new BitSet(new long[]{0x0000010000010000L});
+    public static final BitSet FOLLOW_59 = new BitSet(new long[]{0x0200000000000002L});
+    public static final BitSet FOLLOW_60 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSemanticSequencer.java
index bbab8a69..86769dc3 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -34,7 +36,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.instance.Array;
@@ -105,6 +106,12 @@ public class MachineLearningLanguageSemanticSequencer extends InstanceLanguageSe
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -168,9 +175,6 @@ public class MachineLearningLanguageSemanticSequencer extends InstanceLanguageSe
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSyntacticSequencer.java b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSyntacticSequencer.java
index 540fb0fb..13470f04 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSyntacticSequencer.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/serializer/MachineLearningLanguageSyntacticSequencer.java
@@ -58,7 +58,7 @@ public class MachineLearningLanguageSyntacticSequencer extends AbstractSyntactic
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
-	 *     definition=[TypeDefinition|QualifiedNameRule] (ambiguity) (rule end)
+	 *     definition=[TypeDefinition|QualifiedName] (ambiguity) (rule end)
 	 
 	 * </pre>
 	 */
diff --git a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/services/MachineLearningLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/services/MachineLearningLanguageGrammarAccess.java
index 6a2fff53..e914442b 100644
--- a/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/services/MachineLearningLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.mll.dsl/src-gen/de/evoal/languages/model/mll/dsl/services/MachineLearningLanguageGrammarAccess.java
@@ -984,7 +984,7 @@ public class MachineLearningLanguageGrammarAccess extends AbstractElementFinder.
 	}
 	
 	//InstanceRule returns Instance:
-	//    definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+	//    definition = [base::TypeDefinition|QualifiedName] ('{'
 	//      attributes += AttributeRule*
 	//    '}')?
 	//;
@@ -1053,16 +1053,6 @@ public class MachineLearningLanguageGrammarAccess extends AbstractElementFinder.
 		return getDataReferenceRuleAccess().getRule();
 	}
 	
-	//QualifiedNameRule:
-	//    StringOrId ('.' StringOrId)*;
-	public InstanceLanguageGrammarAccess.QualifiedNameRuleElements getQualifiedNameRuleAccess() {
-		return gaInstanceLanguage.getQualifiedNameRuleAccess();
-	}
-	
-	public ParserRule getQualifiedNameRuleRule() {
-		return getQualifiedNameRuleAccess().getRule();
-	}
-	
 	//ExpressionRule returns Expression:
 	//    OrExpressionRule
 	//;
@@ -1255,7 +1245,7 @@ public class MachineLearningLanguageGrammarAccess extends AbstractElementFinder.
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public BaseLanguageGrammarAccess.ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return gaBaseLanguage.getValueReferenceRuleAccess();
@@ -1265,6 +1255,17 @@ public class MachineLearningLanguageGrammarAccess extends AbstractElementFinder.
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -1527,6 +1528,17 @@ public class MachineLearningLanguageGrammarAccess extends AbstractElementFinder.
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/OptimisationLanguageParser.java b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/OptimisationLanguageParser.java
index 596db309..2b624539 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/OptimisationLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/OptimisationLanguageParser.java
@@ -56,8 +56,6 @@ public class OptimisationLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2(), "rule__ArrayRule__Group_2__0");
 			builder.put(grammarAccess.getArrayRuleAccess().getGroup_2_1(), "rule__ArrayRule__Group_2_1__0");
 			builder.put(grammarAccess.getDataReferenceRuleAccess().getGroup(), "rule__DataReferenceRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup(), "rule__QualifiedNameRule__Group__0");
-			builder.put(grammarAccess.getQualifiedNameRuleAccess().getGroup_1(), "rule__QualifiedNameRule__Group_1__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup(), "rule__OrExpressionRule__Group__0");
 			builder.put(grammarAccess.getOrExpressionRuleAccess().getGroup_1(), "rule__OrExpressionRule__Group_1__0");
 			builder.put(grammarAccess.getXorExpressionRuleAccess().getGroup(), "rule__XorExpressionRule__Group__0");
@@ -78,7 +76,6 @@ public class OptimisationLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getGroup(), "rule__CallRule__Group__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2(), "rule__CallRule__Group_2__0");
 			builder.put(grammarAccess.getCallRuleAccess().getGroup_2_1(), "rule__CallRule__Group_2_1__0");
-			builder.put(grammarAccess.getValueReferenceRuleAccess().getGroup(), "rule__ValueReferenceRule__Group__0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getGroup(), "rule__DoubleLiteralRule__Group__0");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getGroup(), "rule__IntegerLiteralRule__Group__0");
 			builder.put(grammarAccess.getBooleanLiteralRuleAccess().getGroup(), "rule__BooleanLiteralRule__Group__0");
@@ -100,6 +97,7 @@ public class OptimisationLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup(), "rule__FunctionDefinitionRule__Group__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4(), "rule__FunctionDefinitionRule__Group_4__0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getGroup_4_1(), "rule__FunctionDefinitionRule__Group_4_1__0");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getGroup(), "rule__ConstantDefinitionRule__Group__0");
 			builder.put(grammarAccess.getParameterRuleAccess().getGroup(), "rule__ParameterRule__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup(), "rule__QualifiedName__Group__0");
 			builder.put(grammarAccess.getQualifiedNameAccess().getGroup_1(), "rule__QualifiedName__Group_1__0");
@@ -147,6 +145,7 @@ public class OptimisationLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getCallRuleAccess().getFunctionAssignment_0(), "rule__CallRule__FunctionAssignment_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0(), "rule__CallRule__ParametersAssignment_2_0");
 			builder.put(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1(), "rule__CallRule__ParametersAssignment_2_1_1");
+			builder.put(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment(), "rule__ConstantReferenceRule__DefinitionAssignment");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0(), "rule__DoubleLiteralRule__LiteralAssignment_0");
 			builder.put(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1(), "rule__DoubleLiteralRule__FactorAssignment_1");
 			builder.put(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0(), "rule__IntegerLiteralRule__LiteralAssignment_0");
@@ -167,6 +166,9 @@ public class OptimisationLanguageParser extends AbstractContentAssistParser {
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getNameAssignment_2(), "rule__FunctionDefinitionRule__NameAssignment_2");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_0(), "rule__FunctionDefinitionRule__ParametersAssignment_4_0");
 			builder.put(grammarAccess.getFunctionDefinitionRuleAccess().getParametersAssignment_4_1_1(), "rule__FunctionDefinitionRule__ParametersAssignment_4_1_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getTypeAssignment_1(), "rule__ConstantDefinitionRule__TypeAssignment_1");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getNameAssignment_2(), "rule__ConstantDefinitionRule__NameAssignment_2");
+			builder.put(grammarAccess.getConstantDefinitionRuleAccess().getValueAssignment_4(), "rule__ConstantDefinitionRule__ValueAssignment_4");
 			builder.put(grammarAccess.getParameterRuleAccess().getTypeAssignment_0(), "rule__ParameterRule__TypeAssignment_0");
 			builder.put(grammarAccess.getParameterRuleAccess().getNameAssignment_1(), "rule__ParameterRule__NameAssignment_1");
 			builder.put(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment(), "rule__FunctionNameRule__DefinitionAssignment");
diff --git a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.g b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.g
index b4c4fc65..ab3fd22a 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.g
+++ b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.g
@@ -300,31 +300,6 @@ finally {
 	restoreStackSize(stackSize);
 }
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule
-:
-{ before(grammarAccess.getQualifiedNameRuleRule()); }
-	 ruleQualifiedNameRule
-{ after(grammarAccess.getQualifiedNameRuleRule()); } 
-	 EOF 
-;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule 
-	@init {
-		int stackSize = keepStackSize();
-	}
-	:
-	(
-		{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-		(rule__QualifiedNameRule__Group__0)
-		{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); }
-	)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule
 :
@@ -691,9 +666,34 @@ ruleValueReferenceRule
 	}
 	:
 	(
-		{ before(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
-		(rule__ValueReferenceRule__Group__0)
-		{ after(grammarAccess.getValueReferenceRuleAccess().getGroup()); }
+		{ before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+		ruleConstantReferenceRule
+		{ after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule
+:
+{ before(grammarAccess.getConstantReferenceRuleRule()); }
+	 ruleConstantReferenceRule
+{ after(grammarAccess.getConstantReferenceRuleRule()); } 
+	 EOF 
+;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
+		(rule__ConstantReferenceRule__DefinitionAssignment)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); }
 	)
 ;
 finally {
@@ -850,6 +850,31 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule
+:
+{ before(grammarAccess.getTypeDefinitionRuleRule()); }
+	 ruleTypeDefinitionRule
+{ after(grammarAccess.getTypeDefinitionRuleRule()); } 
+	 EOF 
+;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule 
+	@init {
+		int stackSize = keepStackSize();
+	}
+	:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+		(rule__TypeDefinitionRule__Group__0)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule
 :
@@ -3003,114 +3028,6 @@ finally {
 }
 
 
-rule__QualifiedNameRule__Group__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__0__Impl
-	rule__QualifiedNameRule__Group__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-	(rule__QualifiedNameRule__Group_1__0)*
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
-rule__QualifiedNameRule__Group_1__0
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__0__Impl
-	rule__QualifiedNameRule__Group_1__1
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__0__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-	'.'
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-	rule__QualifiedNameRule__Group_1__1__Impl
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-rule__QualifiedNameRule__Group_1__1__Impl
-	@init {
-		int stackSize = keepStackSize();
-	}
-:
-(
-	{ before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-	ruleStringOrId
-	{ after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); }
-)
-;
-finally {
-	restoreStackSize(stackSize);
-}
-
-
 rule__OrExpressionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
@@ -4272,53 +4189,161 @@ finally {
 }
 
 
-rule__ValueReferenceRule__Group__0
+rule__DoubleLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__0__Impl
+	rule__DoubleLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__DoubleLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__DoubleLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__DoubleLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__DoubleLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__IntegerLiteralRule__Group__0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__0__Impl
+	rule__IntegerLiteralRule__Group__1
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__0__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	(rule__IntegerLiteralRule__LiteralAssignment_0)
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__IntegerLiteralRule__Group__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__IntegerLiteralRule__Group__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	(rule__IntegerLiteralRule__FactorAssignment_1)?
+	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+
+rule__BooleanLiteralRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__0__Impl
-	rule__ValueReferenceRule__Group__1
+	rule__BooleanLiteralRule__Group__0__Impl
+	rule__BooleanLiteralRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__0__Impl
+rule__BooleanLiteralRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 	()
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); }
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1
+rule__BooleanLiteralRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__ValueReferenceRule__Group__1__Impl
+	rule__BooleanLiteralRule__Group__1__Impl
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__ValueReferenceRule__Group__1__Impl
+rule__BooleanLiteralRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
-	'value'
-	{ after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); }
+	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	(rule__BooleanLiteralRule__Alternatives_1)
+	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
 )
 ;
 finally {
@@ -4326,161 +4351,242 @@ finally {
 }
 
 
-rule__DoubleLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__0__Impl
-	rule__DoubleLiteralRule__Group__1
+	rule__TypeDefinitionRule__Group__0__Impl
+	rule__TypeDefinitionRule__Group__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__DoubleLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
+	(rule__TypeDefinitionRule__AbstractAssignment_0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__1
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__DoubleLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__2
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__DoubleLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__1__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__DoubleLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
+	'type'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__2__Impl
+	rule__TypeDefinitionRule__Group__3
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__IntegerLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__2__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__0__Impl
-	rule__IntegerLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+	(rule__TypeDefinitionRule__NameAssignment_2)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__3
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__3__Impl
+	rule__TypeDefinitionRule__Group__4
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__3__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
-	(rule__IntegerLiteralRule__LiteralAssignment_0)
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
+	(rule__TypeDefinitionRule__Group_3__0)?
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1
+rule__TypeDefinitionRule__Group__4
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__IntegerLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group__4__Impl
+	rule__TypeDefinitionRule__Group__5
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__IntegerLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group__4__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
-	(rule__IntegerLiteralRule__FactorAssignment_1)?
-	{ after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
+	'{'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__Group__5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__5__Impl
+	rule__TypeDefinitionRule__Group__6
+;
+finally {
+	restoreStackSize(stackSize);
+}
 
-rule__BooleanLiteralRule__Group__0
+rule__TypeDefinitionRule__Group__5__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__0__Impl
-	rule__BooleanLiteralRule__Group__1
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+	(rule__TypeDefinitionRule__AttributesAssignment_5)*
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); }
+)
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__0__Impl
+rule__TypeDefinitionRule__Group__6
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group__6__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group__6__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
-	()
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
+	'}'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); }
 )
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1
+
+rule__TypeDefinitionRule__Group_3__0
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
-	rule__BooleanLiteralRule__Group__1__Impl
+	rule__TypeDefinitionRule__Group_3__0__Impl
+	rule__TypeDefinitionRule__Group_3__1
 ;
 finally {
 	restoreStackSize(stackSize);
 }
 
-rule__BooleanLiteralRule__Group__1__Impl
+rule__TypeDefinitionRule__Group_3__0__Impl
 	@init {
 		int stackSize = keepStackSize();
 	}
 :
 (
-	{ before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
-	(rule__BooleanLiteralRule__Alternatives_1)
-	{ after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); }
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+	'extends'
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); }
+)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	rule__TypeDefinitionRule__Group_3__1__Impl
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__Group_3__1__Impl
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+(
+	{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
+	(rule__TypeDefinitionRule__SuperTypeAssignment_3_1)
+	{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); }
 )
 ;
 finally {
@@ -5538,9 +5644,9 @@ rule__ImportRule__ImportedNamespaceAssignment_1
 	}
 :
 	(
-		{ before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0()); }
-		ruleQualifiedNameRule
-		{ after(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0()); }
+		{ before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); }
+		ruleQualifiedName
+		{ after(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); }
 	)
 ;
 finally {
@@ -5600,9 +5706,9 @@ rule__AlgorithmInstanceRule__ProblemAssignment_2
 	(
 		{ before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemCrossReference_2_0()); }
 		(
-			{ before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameRuleParserRuleCall_2_0_1()); }
-			ruleQualifiedNameRule
-			{ after(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameRuleParserRuleCall_2_0_1()); }
+			{ before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameParserRuleCall_2_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameParserRuleCall_2_0_1()); }
 		)
 		{ after(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemCrossReference_2_0()); }
 	)
@@ -5649,9 +5755,9 @@ rule__InstanceRule__DefinitionAssignment_0
 	(
 		{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 		(
-			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
-			ruleQualifiedNameRule
-			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); }
+			{ before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); }
 		)
 		{ after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); }
 	)
@@ -6167,6 +6273,25 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__ConstantReferenceRule__DefinitionAssignment
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+		(
+			{ before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); }
+		)
+		{ after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__DoubleLiteralRule__LiteralAssignment_0
 	@init {
 		int stackSize = keepStackSize();
@@ -6261,6 +6386,74 @@ finally {
 	restoreStackSize(stackSize);
 }
 
+rule__TypeDefinitionRule__AbstractAssignment_0
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+			'abstract'
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__NameAssignment_2
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+		ruleStringOrId
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__SuperTypeAssignment_3_1
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+		(
+			{ before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+			ruleQualifiedName
+			{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); }
+		)
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
+rule__TypeDefinitionRule__AttributesAssignment_5
+	@init {
+		int stackSize = keepStackSize();
+	}
+:
+	(
+		{ before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+		ruleAttributeDefinitionRule
+		{ after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); }
+	)
+;
+finally {
+	restoreStackSize(stackSize);
+}
+
 rule__AttributeDefinitionRule__NameAssignment_0
 	@init {
 		int stackSize = keepStackSize();
diff --git a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.tokens b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.tokens
index 982c9f9f..3b113d08 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguage.tokens
@@ -1,13 +1,13 @@
-'!'=81
+'!'=82
 '!='=19
 '%'=26
-'('=68
-')'=69
+'('=67
+')'=68
 '*'=24
 '+'=22
 ','=61
 '-'=23
-'.'=63
+'.'=81
 '/'=25
 ':'=71
 ':='=52
@@ -17,21 +17,22 @@
 '='=18
 '>'=17
 '>='=16
-'AND'=66
+'AND'=65
 'E'=29
 'G'=32
 'M'=33
-'OR'=64
+'OR'=63
 'P'=30
 'T'=31
-'XOR'=65
+'XOR'=64
 'Y'=27
 'Z'=28
 '['=59
 '\u00B5'=40
 ']'=60
-'^'=67
+'^'=66
 'a'=44
+'abstract'=84
 'algorithm'=56
 'array'=80
 'as'=50
@@ -43,6 +44,7 @@
 'declare'=49
 'documenting'=51
 'expression'=75
+'extends'=70
 'f'=43
 'false'=15
 'float'=77
@@ -57,8 +59,8 @@
 'n'=41
 'p'=42
 'string'=74
-'true'=82
-'value'=70
+'true'=83
+'type'=69
 'void'=79
 'with'=55
 'y'=46
@@ -145,3 +147,5 @@ T__79=79
 T__80=80
 T__81=81
 T__82=82
+T__83=83
+T__84=84
diff --git a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageLexer.java b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageLexer.java
index a9af5945..9ea520e2 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageLexer.java
@@ -79,6 +79,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     public static final int T__80=80;
     public static final int T__81=81;
     public static final int T__82=82;
+    public static final int T__83=83;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -89,6 +90,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
+    public static final int T__84=84;
     public static final int T__41=41;
     public static final int T__42=42;
     public static final int T__43=43;
@@ -1086,10 +1088,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:59:7: ( '.' )
-            // InternalOptimisationLanguage.g:59:9: '.'
+            // InternalOptimisationLanguage.g:59:7: ( 'OR' )
+            // InternalOptimisationLanguage.g:59:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -1106,10 +1109,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:60:7: ( 'OR' )
-            // InternalOptimisationLanguage.g:60:9: 'OR'
+            // InternalOptimisationLanguage.g:60:7: ( 'XOR' )
+            // InternalOptimisationLanguage.g:60:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -1127,10 +1130,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:61:7: ( 'XOR' )
-            // InternalOptimisationLanguage.g:61:9: 'XOR'
+            // InternalOptimisationLanguage.g:61:7: ( 'AND' )
+            // InternalOptimisationLanguage.g:61:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -1148,11 +1151,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:62:7: ( 'AND' )
-            // InternalOptimisationLanguage.g:62:9: 'AND'
+            // InternalOptimisationLanguage.g:62:7: ( '^' )
+            // InternalOptimisationLanguage.g:62:9: '^'
             {
-            match("AND"); 
-
+            match('^'); 
 
             }
 
@@ -1169,10 +1171,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:63:7: ( '^' )
-            // InternalOptimisationLanguage.g:63:9: '^'
+            // InternalOptimisationLanguage.g:63:7: ( '(' )
+            // InternalOptimisationLanguage.g:63:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -1189,10 +1191,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:64:7: ( '(' )
-            // InternalOptimisationLanguage.g:64:9: '('
+            // InternalOptimisationLanguage.g:64:7: ( ')' )
+            // InternalOptimisationLanguage.g:64:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -1209,10 +1211,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:65:7: ( ')' )
-            // InternalOptimisationLanguage.g:65:9: ')'
+            // InternalOptimisationLanguage.g:65:7: ( 'type' )
+            // InternalOptimisationLanguage.g:65:9: 'type'
             {
-            match(')'); 
+            match("type"); 
+
 
             }
 
@@ -1229,10 +1232,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:66:7: ( 'value' )
-            // InternalOptimisationLanguage.g:66:9: 'value'
+            // InternalOptimisationLanguage.g:66:7: ( 'extends' )
+            // InternalOptimisationLanguage.g:66:9: 'extends'
             {
-            match("value"); 
+            match("extends"); 
 
 
             }
@@ -1458,10 +1461,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:77:7: ( '!' )
-            // InternalOptimisationLanguage.g:77:9: '!'
+            // InternalOptimisationLanguage.g:77:7: ( '.' )
+            // InternalOptimisationLanguage.g:77:9: '.'
             {
-            match('!'); 
+            match('.'); 
 
             }
 
@@ -1478,8 +1481,28 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:78:7: ( 'true' )
-            // InternalOptimisationLanguage.g:78:9: 'true'
+            // InternalOptimisationLanguage.g:78:7: ( '!' )
+            // InternalOptimisationLanguage.g:78:9: '!'
+            {
+            match('!'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__82"
+
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalOptimisationLanguage.g:79:7: ( 'true' )
+            // InternalOptimisationLanguage.g:79:9: 'true'
             {
             match("true"); 
 
@@ -1492,13 +1515,34 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         finally {
         }
     }
-    // $ANTLR end "T__82"
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalOptimisationLanguage.g:80:7: ( 'abstract' )
+            // InternalOptimisationLanguage.g:80:9: 'abstract'
+            {
+            match("abstract"); 
+
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
 
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:6411:21: ( '0' .. '9' )
-            // InternalOptimisationLanguage.g:6411:23: '0' .. '9'
+            // InternalOptimisationLanguage.g:6604:21: ( '0' .. '9' )
+            // InternalOptimisationLanguage.g:6604:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1513,11 +1557,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:6413:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalOptimisationLanguage.g:6413:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:6606:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalOptimisationLanguage.g:6606:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalOptimisationLanguage.g:6413:30: ( '+' | '-' )?
+            // InternalOptimisationLanguage.g:6606:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1543,7 +1587,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
             }
 
-            // InternalOptimisationLanguage.g:6413:41: ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:6606:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1557,7 +1601,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6413:41: RULE_DIGIT
+            	    // InternalOptimisationLanguage.g:6606:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1587,10 +1631,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6415:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalOptimisationLanguage.g:6415:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:6608:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalOptimisationLanguage.g:6608:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalOptimisationLanguage.g:6415:12: ( '-' )?
+            // InternalOptimisationLanguage.g:6608:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1599,7 +1643,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:6415:12: '-'
+                    // InternalOptimisationLanguage.g:6608:12: '-'
                     {
                     match('-'); 
 
@@ -1608,7 +1652,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
             }
 
-            // InternalOptimisationLanguage.g:6415:17: ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:6608:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1622,7 +1666,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6415:17: RULE_DIGIT
+            	    // InternalOptimisationLanguage.g:6608:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1654,15 +1698,15 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6417:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalOptimisationLanguage.g:6417:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalOptimisationLanguage.g:6610:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalOptimisationLanguage.g:6610:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalOptimisationLanguage.g:6417:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalOptimisationLanguage.g:6610:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:6417:16: RULE_INT RULE_EXPONENT
+                    // InternalOptimisationLanguage.g:6610:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1670,11 +1714,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:6417:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalOptimisationLanguage.g:6610:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalOptimisationLanguage.g:6417:52: ( RULE_DIGIT )*
+                    // InternalOptimisationLanguage.g:6610:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1687,7 +1731,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalOptimisationLanguage.g:6417:52: RULE_DIGIT
+                    	    // InternalOptimisationLanguage.g:6610:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1699,7 +1743,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalOptimisationLanguage.g:6417:64: ( RULE_EXPONENT )?
+                    // InternalOptimisationLanguage.g:6610:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1708,7 +1752,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalOptimisationLanguage.g:6417:64: RULE_EXPONENT
+                            // InternalOptimisationLanguage.g:6610:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1739,11 +1783,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6419:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalOptimisationLanguage.g:6419:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalOptimisationLanguage.g:6612:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalOptimisationLanguage.g:6612:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalOptimisationLanguage.g:6419:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalOptimisationLanguage.g:6612:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1759,7 +1803,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6419:20: '\\\\' .
+            	    // InternalOptimisationLanguage.g:6612:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1767,7 +1811,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalOptimisationLanguage.g:6419:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalOptimisationLanguage.g:6612:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1804,11 +1848,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6421:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalOptimisationLanguage.g:6421:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalOptimisationLanguage.g:6614:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalOptimisationLanguage.g:6614:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalOptimisationLanguage.g:6421:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalOptimisationLanguage.g:6614:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1824,7 +1868,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6421:24: '\\\\' .
+            	    // InternalOptimisationLanguage.g:6614:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1832,7 +1876,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalOptimisationLanguage.g:6421:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalOptimisationLanguage.g:6614:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1869,10 +1913,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6423:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalOptimisationLanguage.g:6423:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalOptimisationLanguage.g:6616:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalOptimisationLanguage.g:6616:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalOptimisationLanguage.g:6423:11: ( '^' )?
+            // InternalOptimisationLanguage.g:6616:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1881,7 +1925,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:6423:11: '^'
+                    // InternalOptimisationLanguage.g:6616:11: '^'
                     {
                     match('^'); 
 
@@ -1899,7 +1943,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalOptimisationLanguage.g:6423:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalOptimisationLanguage.g:6616:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1948,12 +1992,12 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6425:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalOptimisationLanguage.g:6425:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalOptimisationLanguage.g:6618:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalOptimisationLanguage.g:6618:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalOptimisationLanguage.g:6425:24: ( options {greedy=false; } : . )*
+            // InternalOptimisationLanguage.g:6618:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1978,7 +2022,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6425:52: .
+            	    // InternalOptimisationLanguage.g:6618:52: .
             	    {
             	    matchAny(); 
 
@@ -2008,12 +2052,12 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6427:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalOptimisationLanguage.g:6427:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalOptimisationLanguage.g:6620:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalOptimisationLanguage.g:6620:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalOptimisationLanguage.g:6427:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalOptimisationLanguage.g:6620:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2026,7 +2070,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:6427:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalOptimisationLanguage.g:6620: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();
@@ -2046,7 +2090,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalOptimisationLanguage.g:6427:40: ( ( '\\r' )? '\\n' )?
+            // InternalOptimisationLanguage.g:6620:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2055,9 +2099,9 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:6427:41: ( '\\r' )? '\\n'
+                    // InternalOptimisationLanguage.g:6620:41: ( '\\r' )? '\\n'
                     {
-                    // InternalOptimisationLanguage.g:6427:41: ( '\\r' )?
+                    // InternalOptimisationLanguage.g:6620:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2066,7 +2110,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalOptimisationLanguage.g:6427:41: '\\r'
+                            // InternalOptimisationLanguage.g:6620:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2098,10 +2142,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6429:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalOptimisationLanguage.g:6429:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOptimisationLanguage.g:6622:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalOptimisationLanguage.g:6622:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalOptimisationLanguage.g:6429:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOptimisationLanguage.g:6622:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2155,8 +2199,8 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:6431:16: ( . )
-            // InternalOptimisationLanguage.g:6431:18: .
+            // InternalOptimisationLanguage.g:6624:16: ( . )
+            // InternalOptimisationLanguage.g:6624:18: .
             {
             matchAny(); 
 
@@ -2171,8 +2215,8 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalOptimisationLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=77;
+        // InternalOptimisationLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=79;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2652,63 +2696,77 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 }
                 break;
             case 69 :
-                // InternalOptimisationLanguage.g:1:418: RULE_INT
+                // InternalOptimisationLanguage.g:1:418: T__83
                 {
-                mRULE_INT(); 
+                mT__83(); 
 
                 }
                 break;
             case 70 :
-                // InternalOptimisationLanguage.g:1:427: RULE_DOUBLE
+                // InternalOptimisationLanguage.g:1:424: T__84
                 {
-                mRULE_DOUBLE(); 
+                mT__84(); 
 
                 }
                 break;
             case 71 :
-                // InternalOptimisationLanguage.g:1:439: RULE_STRING
+                // InternalOptimisationLanguage.g:1:430: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 72 :
-                // InternalOptimisationLanguage.g:1:451: RULE_QUOTED_ID
+                // InternalOptimisationLanguage.g:1:439: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 73 :
-                // InternalOptimisationLanguage.g:1:466: RULE_ID
+                // InternalOptimisationLanguage.g:1:451: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 74 :
-                // InternalOptimisationLanguage.g:1:474: RULE_ML_COMMENT
+                // InternalOptimisationLanguage.g:1:463: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 75 :
-                // InternalOptimisationLanguage.g:1:490: RULE_SL_COMMENT
+                // InternalOptimisationLanguage.g:1:478: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 76 :
-                // InternalOptimisationLanguage.g:1:506: RULE_WS
+                // InternalOptimisationLanguage.g:1:486: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 77 :
-                // InternalOptimisationLanguage.g:1:514: RULE_ANY_OTHER
+                // InternalOptimisationLanguage.g:1:502: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 78 :
+                // InternalOptimisationLanguage.g:1:518: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 79 :
+                // InternalOptimisationLanguage.g:1:526: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2772,56 +2830,55 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "6417:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "6610:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\76\1\100\1\uffff\1\103\1\105\1\uffff\1\110\1\uffff\1\114\1\uffff\1\116\1\117\1\120\1\121\1\122\1\123\1\124\1\125\1\126\1\132\1\133\1\134\1\uffff\1\136\1\137\1\143\1\144\1\145\1\75\1\uffff\1\152\1\75\6\uffff\3\75\1\165\2\uffff\2\75\1\uffff\4\75\1\u0080\2\71\3\uffff\3\75\12\uffff\1\u0080\17\uffff\1\u0089\2\75\6\uffff\1\u008c\2\75\3\uffff\2\75\3\uffff\1\75\6\uffff\1\u0093\2\75\3\uffff\3\75\1\uffff\4\75\5\uffff\1\75\1\u009e\2\75\1\uffff\2\75\1\uffff\4\75\1\u00a7\1\75\1\uffff\1\u00a9\1\u00aa\10\75\1\uffff\1\75\1\u00b4\6\75\1\uffff\1\u00bb\2\uffff\1\75\1\u00bd\4\75\1\u00c2\1\u00c3\1\u00c4\1\uffff\3\75\1\u00c8\2\75\1\uffff\1\u00cb\1\uffff\4\75\3\uffff\3\75\1\uffff\1\u00d3\1\75\1\uffff\1\75\1\u00d6\2\75\1\u00d9\2\75\1\uffff\1\75\1\u00dd\1\uffff\1\75\1\u00df\1\uffff\2\75\1\u00e2\1\uffff\1\75\1\uffff\1\75\1\u00e5\1\uffff\2\75\1\uffff\1\u00e8\1\u00e9\2\uffff";
+        "\1\uffff\1\75\1\100\1\uffff\1\103\1\105\1\uffff\1\107\1\uffff\1\114\1\uffff\1\116\1\117\1\120\1\121\1\122\1\123\1\124\1\125\1\126\1\132\1\133\1\134\1\uffff\1\136\1\137\1\144\1\145\1\146\1\76\1\uffff\1\153\1\76\5\uffff\3\76\1\165\2\uffff\3\76\1\uffff\3\76\1\uffff\1\u0081\2\71\3\uffff\3\76\13\uffff\1\u0081\16\uffff\1\u008a\2\76\6\uffff\1\u008d\3\76\3\uffff\2\76\3\uffff\1\76\5\uffff\1\u0095\2\76\3\uffff\4\76\1\uffff\3\76\6\uffff\1\76\1\u00a1\2\76\1\uffff\2\76\1\uffff\5\76\1\u00ab\1\76\1\uffff\1\u00ad\1\u00ae\11\76\1\uffff\1\76\1\u00b9\7\76\1\uffff\1\u00c1\2\uffff\1\u00c2\1\u00c3\5\76\1\u00c9\1\u00ca\1\u00cb\1\uffff\3\76\1\u00cf\3\76\3\uffff\5\76\3\uffff\3\76\1\uffff\1\76\1\u00dc\4\76\1\u00e1\1\76\1\u00e3\3\76\1\uffff\1\76\1\u00e8\1\76\1\u00ea\1\uffff\1\u00eb\1\uffff\2\76\1\u00ee\1\u00ef\1\uffff\1\76\2\uffff\1\76\1\u00f2\2\uffff\2\76\1\uffff\1\u00f5\1\u00f6\2\uffff";
     static final String DFA17_eofS =
-        "\u00ea\uffff";
+        "\u00f7\uffff";
     static final String DFA17_minS =
-        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\155\1\uffff\1\75\1\151\6\uffff\1\122\1\117\1\116\1\101\2\uffff\1\141\1\151\1\uffff\1\164\1\170\1\157\1\162\1\56\2\0\3\uffff\1\154\1\162\1\157\12\uffff\1\56\17\uffff\1\60\2\143\6\uffff\1\60\1\147\1\162\3\uffff\1\160\1\163\3\uffff\1\164\6\uffff\1\60\1\122\1\104\3\uffff\1\154\1\151\1\164\1\uffff\1\162\1\160\1\157\1\165\5\uffff\1\163\1\60\2\141\1\uffff\1\154\1\165\1\uffff\1\157\1\141\1\157\1\164\1\60\1\150\1\uffff\2\60\1\165\1\144\1\145\1\151\1\162\1\154\2\145\1\uffff\1\164\1\60\1\141\1\155\1\162\1\171\1\162\1\141\1\uffff\1\60\2\uffff\1\145\1\60\1\162\1\156\2\145\3\60\1\uffff\1\162\1\145\1\151\1\60\1\164\1\156\1\uffff\1\60\1\uffff\1\141\1\147\1\163\1\141\3\uffff\1\145\1\156\1\164\1\uffff\1\60\1\143\1\uffff\1\154\1\60\1\163\1\156\1\60\1\164\1\150\1\uffff\1\145\1\60\1\uffff\1\151\1\60\1\uffff\1\151\1\155\1\60\1\uffff\1\157\1\uffff\1\156\1\60\1\uffff\1\156\1\147\1\uffff\2\60\2\uffff";
+        "\1\0\1\60\1\75\1\uffff\2\75\1\uffff\1\60\1\uffff\1\52\1\uffff\14\60\1\uffff\5\60\1\155\1\uffff\1\75\1\151\5\uffff\1\122\1\117\1\116\1\101\2\uffff\1\162\1\170\1\151\1\uffff\1\164\2\157\1\uffff\1\56\2\0\3\uffff\1\154\1\162\1\157\13\uffff\1\56\16\uffff\1\60\2\143\6\uffff\1\60\1\147\1\162\1\163\3\uffff\1\160\1\163\3\uffff\1\164\5\uffff\1\60\1\122\1\104\3\uffff\1\160\1\165\1\160\1\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\1\60\2\141\1\uffff\1\154\1\165\1\uffff\1\157\1\141\1\164\1\157\1\164\1\60\1\150\1\uffff\2\60\3\145\1\162\1\145\1\151\1\154\1\144\1\145\1\uffff\1\164\1\60\1\141\1\155\1\162\1\171\2\162\1\141\1\uffff\1\60\2\uffff\2\60\1\156\1\145\1\162\1\156\1\145\3\60\1\uffff\1\162\1\145\1\151\1\60\1\141\1\164\1\156\3\uffff\1\144\1\163\1\141\1\147\1\141\3\uffff\1\145\1\156\1\164\1\uffff\1\143\1\60\1\143\2\163\1\154\1\60\1\156\1\60\1\164\1\150\1\164\1\uffff\1\145\1\60\1\151\1\60\1\uffff\1\60\1\uffff\1\151\1\155\2\60\1\uffff\1\157\2\uffff\1\156\1\60\2\uffff\1\156\1\147\1\uffff\2\60\2\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\156\1\uffff\1\75\1\151\6\uffff\1\122\1\117\1\116\1\172\2\uffff\1\157\1\151\1\uffff\1\164\1\170\1\157\1\162\1\145\2\uffff\3\uffff\1\154\1\162\1\157\12\uffff\1\145\17\uffff\1\172\2\143\6\uffff\1\172\1\147\1\162\3\uffff\1\160\1\164\3\uffff\1\164\6\uffff\1\172\1\122\1\104\3\uffff\1\154\1\151\1\164\1\uffff\1\162\1\160\1\157\1\165\5\uffff\1\163\1\172\2\141\1\uffff\1\154\1\165\1\uffff\1\157\1\141\1\157\1\164\1\172\1\150\1\uffff\2\172\1\165\1\144\1\145\1\151\1\162\1\154\2\145\1\uffff\1\164\1\172\1\141\1\155\1\162\1\171\1\162\1\141\1\uffff\1\172\2\uffff\1\145\1\172\1\162\1\156\2\145\3\172\1\uffff\1\162\1\145\1\151\1\172\1\164\1\156\1\uffff\1\172\1\uffff\1\141\1\147\1\163\1\141\3\uffff\1\145\1\156\1\164\1\uffff\1\172\1\143\1\uffff\1\154\1\172\1\163\1\156\1\172\1\164\1\150\1\uffff\1\145\1\172\1\uffff\1\151\1\172\1\uffff\1\151\1\155\1\172\1\uffff\1\157\1\uffff\1\156\1\172\1\uffff\1\156\1\147\1\uffff\2\172\2\uffff";
+        "\1\uffff\1\172\1\75\1\uffff\2\75\1\uffff\1\71\1\uffff\1\57\1\uffff\14\172\1\uffff\5\172\1\156\1\uffff\1\75\1\151\5\uffff\1\122\1\117\1\116\1\172\2\uffff\1\171\1\170\1\151\1\uffff\1\164\2\157\1\uffff\1\145\2\uffff\3\uffff\1\154\1\162\1\157\13\uffff\1\145\16\uffff\1\172\2\143\6\uffff\1\172\1\147\1\162\1\163\3\uffff\1\160\1\164\3\uffff\1\164\5\uffff\1\172\1\122\1\104\3\uffff\1\160\1\165\2\164\1\uffff\1\162\1\157\1\151\6\uffff\1\163\1\172\2\141\1\uffff\1\154\1\165\1\uffff\1\157\1\141\1\164\1\157\1\164\1\172\1\150\1\uffff\2\172\3\145\1\162\1\145\1\151\1\154\1\144\1\145\1\uffff\1\164\1\172\1\141\1\155\1\162\1\171\2\162\1\141\1\uffff\1\172\2\uffff\2\172\1\156\1\145\1\162\1\156\1\145\3\172\1\uffff\1\162\1\145\1\151\1\172\1\141\1\164\1\156\3\uffff\1\144\1\163\1\141\1\147\1\141\3\uffff\1\145\1\156\1\164\1\uffff\1\143\1\172\1\143\2\163\1\154\1\172\1\156\1\172\1\164\1\150\1\164\1\uffff\1\145\1\172\1\151\1\172\1\uffff\1\172\1\uffff\1\151\1\155\2\172\1\uffff\1\157\2\uffff\1\156\1\172\2\uffff\1\156\1\147\1\uffff\2\172\2\uffff";
     static final String DFA17_acceptS =
-        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\2\uffff\1\53\1\54\1\55\1\56\1\57\1\61\4\uffff\1\66\1\67\2\uffff\1\73\7\uffff\1\111\1\114\1\115\3\uffff\1\111\1\35\1\2\1\3\1\4\1\5\1\103\1\7\1\6\1\10\1\uffff\1\11\1\12\1\112\1\113\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\3\uffff\1\27\1\30\1\31\1\32\1\33\1\34\3\uffff\1\36\1\37\1\40\2\uffff\1\42\1\46\1\71\1\uffff\1\53\1\54\1\55\1\56\1\57\1\61\3\uffff\1\65\1\66\1\67\3\uffff\1\73\4\uffff\1\105\1\106\1\107\1\110\1\114\4\uffff\1\26\2\uffff\1\44\6\uffff\1\62\12\uffff\1\50\10\uffff\1\76\1\uffff\1\63\1\64\11\uffff\1\60\6\uffff\1\51\1\uffff\1\101\4\uffff\1\104\1\1\1\77\3\uffff\1\102\2\uffff\1\70\7\uffff\1\41\2\uffff\1\74\2\uffff\1\43\3\uffff\1\72\1\uffff\1\100\2\uffff\1\47\2\uffff\1\52\2\uffff\1\75\1\45";
+        "\3\uffff\1\4\2\uffff\1\10\1\uffff\1\12\1\uffff\1\14\14\uffff\1\32\6\uffff\1\42\2\uffff\1\53\1\54\1\55\1\56\1\57\4\uffff\1\65\1\66\3\uffff\1\73\3\uffff\1\103\3\uffff\1\113\1\116\1\117\3\uffff\1\35\1\113\1\2\1\3\1\4\1\5\1\104\1\7\1\6\1\10\1\11\1\uffff\1\12\1\114\1\115\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\3\uffff\1\27\1\30\1\31\1\32\1\33\1\34\4\uffff\1\36\1\37\1\40\2\uffff\1\42\1\46\1\71\1\uffff\1\53\1\54\1\55\1\56\1\57\3\uffff\1\64\1\65\1\66\4\uffff\1\73\3\uffff\1\103\1\107\1\110\1\111\1\112\1\116\4\uffff\1\26\2\uffff\1\44\7\uffff\1\61\13\uffff\1\50\11\uffff\1\76\1\uffff\1\62\1\63\12\uffff\1\60\7\uffff\1\51\1\67\1\105\5\uffff\1\101\1\1\1\77\3\uffff\1\102\14\uffff\1\41\4\uffff\1\74\1\uffff\1\43\4\uffff\1\70\1\uffff\1\72\1\100\2\uffff\1\106\1\47\2\uffff\1\52\2\uffff\1\75\1\45";
     static final String DFA17_specialS =
-        "\1\1\64\uffff\1\2\1\0\u00b3\uffff}>";
+        "\1\1\64\uffff\1\0\1\2\u00c0\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\71\2\70\2\71\1\70\22\71\1\70\1\4\1\65\2\71\1\12\1\71\1\66\1\53\1\54\1\10\1\6\1\45\1\7\1\46\1\11\12\64\1\37\1\36\1\5\1\3\1\2\2\71\1\51\3\67\1\15\1\67\1\20\5\67\1\21\1\67\1\47\1\16\3\67\1\17\3\67\1\50\1\13\1\14\1\43\1\71\1\44\1\52\1\67\1\71\1\32\1\62\1\25\1\24\1\61\1\1\1\67\1\23\1\35\1\67\1\22\1\56\1\26\1\30\1\67\1\31\2\67\1\60\1\63\1\67\1\55\1\40\1\67\1\34\1\33\1\41\1\57\1\42\67\71\1\27\uff4a\71",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\72\12\75\1\74\2\75\1\73\13\75",
+            "\11\71\2\70\2\71\1\70\22\71\1\70\1\4\1\65\2\71\1\12\1\71\1\66\1\52\1\53\1\10\1\6\1\45\1\7\1\63\1\11\12\64\1\37\1\36\1\5\1\3\1\2\2\71\1\50\3\67\1\15\1\67\1\20\5\67\1\21\1\67\1\46\1\16\3\67\1\17\3\67\1\47\1\13\1\14\1\43\1\71\1\44\1\51\1\67\1\71\1\32\1\61\1\25\1\24\1\55\1\1\1\67\1\23\1\35\1\67\1\22\1\56\1\26\1\30\1\67\1\31\2\67\1\60\1\54\1\67\1\62\1\40\1\67\1\34\1\33\1\41\1\57\1\42\67\71\1\27\uff4a\71",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\72\12\76\1\74\2\76\1\73\13\76",
             "\1\77",
             "",
             "\1\102",
             "\1\104",
             "",
-            "\12\107",
+            "\12\110",
             "",
             "\1\112\4\uffff\1\113",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\1\127\3\75\1\130\11\75\1\131\13\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\127\3\76\1\130\11\76\1\131\13\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\13\75\1\141\5\75\1\142\1\140\7\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\146\1\147",
-            "",
-            "\1\151",
-            "\1\153",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\1\76\1\143\11\76\1\141\5\76\1\142\1\140\7\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\147\1\150",
             "",
+            "\1\152",
+            "\1\154",
             "",
             "",
             "",
@@ -2830,25 +2887,26 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "\1\162",
             "\1\163",
             "\1\164",
-            "\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "",
-            "\1\170\15\uffff\1\171",
+            "\1\171\6\uffff\1\170",
             "\1\172",
+            "\1\173",
             "",
-            "\1\174",
             "\1\175",
             "\1\176",
             "\1\177",
-            "\1\u0081\1\uffff\12\107\53\uffff\1\u0081",
-            "\0\u0082",
+            "",
+            "\1\u0082\1\uffff\12\110\53\uffff\1\u0082",
             "\0\u0083",
+            "\0\u0084",
             "",
             "",
             "",
-            "\1\u0085",
             "\1\u0086",
             "\1\u0087",
+            "\1\u0088",
             "",
             "",
             "",
@@ -2859,8 +2917,8 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u0081\1\uffff\12\107\53\uffff\1\u0081",
             "",
+            "\1\u0082\1\uffff\12\110\53\uffff\1\u0082",
             "",
             "",
             "",
@@ -2875,151 +2933,164 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\23\75\1\u0088\6\75",
-            "\1\u008a",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\23\76\1\u0089\6\76",
             "\1\u008b",
+            "\1\u008c",
             "",
             "",
             "",
             "",
             "",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u008d",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u008e",
-            "",
-            "",
-            "",
             "\1\u008f",
-            "\1\u0090\1\u0091",
-            "",
+            "\1\u0090",
             "",
             "",
-            "\1\u0092",
             "",
+            "\1\u0091",
+            "\1\u0092\1\u0093",
             "",
             "",
             "",
+            "\1\u0094",
             "",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u0094",
-            "\1\u0095",
             "",
             "",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u0096",
             "\1\u0097",
-            "\1\u0098",
             "",
+            "",
+            "",
+            "\1\u0098",
             "\1\u0099",
-            "\1\u009a",
-            "\1\u009b",
+            "\1\u009b\3\uffff\1\u009a",
             "\1\u009c",
             "",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
             "",
             "",
             "",
             "",
-            "\1\u009d",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u009f",
-            "\1\u00a0",
             "",
-            "\1\u00a1",
-            "\1\u00a2",
             "",
+            "\1\u00a0",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00a2",
             "\1\u00a3",
+            "",
             "\1\u00a4",
             "\1\u00a5",
+            "",
             "\1\u00a6",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00a7",
             "\1\u00a8",
-            "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00ab",
+            "\1\u00a9",
+            "\1\u00aa",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00ac",
-            "\1\u00ad",
-            "\1\u00ae",
+            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00af",
             "\1\u00b0",
             "\1\u00b1",
             "\1\u00b2",
-            "",
             "\1\u00b3",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00b4",
             "\1\u00b5",
             "\1\u00b6",
             "\1\u00b7",
+            "",
             "\1\u00b8",
-            "\1\u00b9",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00ba",
-            "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "",
-            "",
+            "\1\u00bb",
             "\1\u00bc",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00bd",
             "\1\u00be",
             "\1\u00bf",
             "\1\u00c0",
-            "\1\u00c1",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
             "\1\u00c7",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00c9",
-            "\1\u00ca",
-            "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00c8",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             "\1\u00cc",
             "\1\u00cd",
             "\1\u00ce",
-            "\1\u00cf",
-            "",
-            "",
-            "",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "\1\u00d0",
             "\1\u00d1",
             "\1\u00d2",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\1\u00d4",
             "",
+            "",
+            "\1\u00d3",
+            "\1\u00d4",
             "\1\u00d5",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00d6",
             "\1\u00d7",
+            "",
+            "",
+            "",
             "\1\u00d8",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00d9",
             "\1\u00da",
+            "",
             "\1\u00db",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00dd",
+            "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00e2",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00e4",
+            "\1\u00e5",
+            "\1\u00e6",
             "",
-            "\1\u00dc",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00e7",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\1\u00e9",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u00de",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u00e0",
-            "\1\u00e1",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\1\u00ec",
+            "\1\u00ed",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
-            "\1\u00e3",
+            "\1\u00f0",
             "",
-            "\1\u00e4",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
-            "\1\u00e6",
-            "\1\u00e7",
+            "\1\u00f1",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "",
+            "",
+            "\1\u00f3",
+            "\1\u00f4",
             "",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
-            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
+            "\12\76\7\uffff\32\76\4\uffff\1\76\1\uffff\32\76",
             "",
             ""
     };
@@ -3054,17 +3125,17 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_54 = input.LA(1);
+                        int LA17_53 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 131;}
+                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 131;}
 
                         else s = 57;
 
@@ -3148,21 +3219,21 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==',') ) {s = 37;}
 
-                        else if ( (LA17_0=='.') ) {s = 38;}
+                        else if ( (LA17_0=='O') ) {s = 38;}
 
-                        else if ( (LA17_0=='O') ) {s = 39;}
+                        else if ( (LA17_0=='X') ) {s = 39;}
 
-                        else if ( (LA17_0=='X') ) {s = 40;}
+                        else if ( (LA17_0=='A') ) {s = 40;}
 
-                        else if ( (LA17_0=='A') ) {s = 41;}
+                        else if ( (LA17_0=='^') ) {s = 41;}
 
-                        else if ( (LA17_0=='^') ) {s = 42;}
+                        else if ( (LA17_0=='(') ) {s = 42;}
 
-                        else if ( (LA17_0=='(') ) {s = 43;}
+                        else if ( (LA17_0==')') ) {s = 43;}
 
-                        else if ( (LA17_0==')') ) {s = 44;}
+                        else if ( (LA17_0=='t') ) {s = 44;}
 
-                        else if ( (LA17_0=='v') ) {s = 45;}
+                        else if ( (LA17_0=='e') ) {s = 45;}
 
                         else if ( (LA17_0=='l') ) {s = 46;}
 
@@ -3170,11 +3241,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         else if ( (LA17_0=='s') ) {s = 48;}
 
-                        else if ( (LA17_0=='e') ) {s = 49;}
+                        else if ( (LA17_0=='b') ) {s = 49;}
 
-                        else if ( (LA17_0=='b') ) {s = 50;}
+                        else if ( (LA17_0=='v') ) {s = 50;}
 
-                        else if ( (LA17_0=='t') ) {s = 51;}
+                        else if ( (LA17_0=='.') ) {s = 51;}
 
                         else if ( ((LA17_0>='0' && LA17_0<='9')) ) {s = 52;}
 
@@ -3191,10 +3262,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                         if ( s>=0 ) return s;
                         break;
                     case 2 : 
-                        int LA17_53 = input.LA(1);
+                        int LA17_54 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 130;}
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 132;}
 
                         else s = 57;
 
diff --git a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageParser.java b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageParser.java
index 92de400a..ee520009 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl.ide/src-gen/de/evoal/languages/model/ol/dsl/ide/contentassist/antlr/internal/InternalOptimisationLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalOptimisationLanguageParser extends AbstractInternalContentAssistParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'import'", "';'", "'declare'", "'as'", "'documenting'", "':='", "'instance'", "'for'", "'with'", "'algorithm'", "'{'", "'}'", "'['", "']'", "','", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'value'", "':'", "'literal'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'!'", "'true'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_QUOTED_ID", "RULE_ID", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'false'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'", "'import'", "';'", "'declare'", "'as'", "'documenting'", "':='", "'instance'", "'for'", "'with'", "'algorithm'", "'{'", "'}'", "'['", "']'", "','", "'data'", "'OR'", "'XOR'", "'AND'", "'^'", "'('", "')'", "'type'", "'extends'", "':'", "'literal'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'!'", "'true'", "'abstract'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -91,6 +91,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     public static final int T__80=80;
     public static final int T__81=81;
     public static final int T__82=82;
+    public static final int T__83=83;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -101,6 +102,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
+    public static final int T__84=84;
     public static final int T__41=41;
     public static final int T__42=42;
     public static final int T__43=43;
@@ -910,89 +912,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalOptimisationLanguage.g:304:1: entryRuleQualifiedNameRule : ruleQualifiedNameRule EOF ;
-    public final void entryRuleQualifiedNameRule() throws RecognitionException {
-        try {
-            // InternalOptimisationLanguage.g:305:1: ( ruleQualifiedNameRule EOF )
-            // InternalOptimisationLanguage.g:306:1: ruleQualifiedNameRule EOF
-            {
-             before(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             after(grammarAccess.getQualifiedNameRuleRule()); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-        }
-        return ;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalOptimisationLanguage.g:313:1: ruleQualifiedNameRule : ( ( rule__QualifiedNameRule__Group__0 ) ) ;
-    public final void ruleQualifiedNameRule() throws RecognitionException {
-
-        		int stackSize = keepStackSize();
-        	
-        try {
-            // InternalOptimisationLanguage.g:317:2: ( ( ( rule__QualifiedNameRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:318:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            {
-            // InternalOptimisationLanguage.g:318:2: ( ( rule__QualifiedNameRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:319:3: ( rule__QualifiedNameRule__Group__0 )
-            {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:320:3: ( rule__QualifiedNameRule__Group__0 )
-            // InternalOptimisationLanguage.g:320:4: rule__QualifiedNameRule__Group__0
-            {
-            pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup()); 
-
-            }
-
-
-            }
-
-        }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
-        finally {
-
-            	restoreStackSize(stackSize);
-
-        }
-        return ;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalOptimisationLanguage.g:329:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:304:1: entryRuleExpressionRule : ruleExpressionRule EOF ;
     public final void entryRuleExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:330:1: ( ruleExpressionRule EOF )
-            // InternalOptimisationLanguage.g:331:1: ruleExpressionRule EOF
+            // InternalOptimisationLanguage.g:305:1: ( ruleExpressionRule EOF )
+            // InternalOptimisationLanguage.g:306:1: ruleExpressionRule EOF
             {
              before(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1018,17 +943,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalOptimisationLanguage.g:338:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
+    // InternalOptimisationLanguage.g:313:1: ruleExpressionRule : ( ruleOrExpressionRule ) ;
     public final void ruleExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:342:2: ( ( ruleOrExpressionRule ) )
-            // InternalOptimisationLanguage.g:343:2: ( ruleOrExpressionRule )
+            // InternalOptimisationLanguage.g:317:2: ( ( ruleOrExpressionRule ) )
+            // InternalOptimisationLanguage.g:318:2: ( ruleOrExpressionRule )
             {
-            // InternalOptimisationLanguage.g:343:2: ( ruleOrExpressionRule )
-            // InternalOptimisationLanguage.g:344:3: ruleOrExpressionRule
+            // InternalOptimisationLanguage.g:318:2: ( ruleOrExpressionRule )
+            // InternalOptimisationLanguage.g:319:3: ruleOrExpressionRule
             {
              before(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall()); 
             pushFollow(FOLLOW_2);
@@ -1059,11 +984,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalOptimisationLanguage.g:354:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:329:1: entryRuleOrExpressionRule : ruleOrExpressionRule EOF ;
     public final void entryRuleOrExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:355:1: ( ruleOrExpressionRule EOF )
-            // InternalOptimisationLanguage.g:356:1: ruleOrExpressionRule EOF
+            // InternalOptimisationLanguage.g:330:1: ( ruleOrExpressionRule EOF )
+            // InternalOptimisationLanguage.g:331:1: ruleOrExpressionRule EOF
             {
              before(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1089,21 +1014,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalOptimisationLanguage.g:363:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:338:1: ruleOrExpressionRule : ( ( rule__OrExpressionRule__Group__0 ) ) ;
     public final void ruleOrExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:367:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:368:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:342:2: ( ( ( rule__OrExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:343:2: ( ( rule__OrExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:368:2: ( ( rule__OrExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:369:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:343:2: ( ( rule__OrExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:344:3: ( rule__OrExpressionRule__Group__0 )
             {
              before(grammarAccess.getOrExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:370:3: ( rule__OrExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:370:4: rule__OrExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:345:3: ( rule__OrExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:345:4: rule__OrExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__OrExpressionRule__Group__0();
@@ -1136,11 +1061,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalOptimisationLanguage.g:379:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:354:1: entryRuleXorExpressionRule : ruleXorExpressionRule EOF ;
     public final void entryRuleXorExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:380:1: ( ruleXorExpressionRule EOF )
-            // InternalOptimisationLanguage.g:381:1: ruleXorExpressionRule EOF
+            // InternalOptimisationLanguage.g:355:1: ( ruleXorExpressionRule EOF )
+            // InternalOptimisationLanguage.g:356:1: ruleXorExpressionRule EOF
             {
              before(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1166,21 +1091,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalOptimisationLanguage.g:388:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:363:1: ruleXorExpressionRule : ( ( rule__XorExpressionRule__Group__0 ) ) ;
     public final void ruleXorExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:392:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:393:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:367:2: ( ( ( rule__XorExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:368:2: ( ( rule__XorExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:393:2: ( ( rule__XorExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:394:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:368:2: ( ( rule__XorExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:369:3: ( rule__XorExpressionRule__Group__0 )
             {
              before(grammarAccess.getXorExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:395:3: ( rule__XorExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:395:4: rule__XorExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:370:3: ( rule__XorExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:370:4: rule__XorExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__XorExpressionRule__Group__0();
@@ -1213,11 +1138,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalOptimisationLanguage.g:404:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:379:1: entryRuleAndExpressionRule : ruleAndExpressionRule EOF ;
     public final void entryRuleAndExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:405:1: ( ruleAndExpressionRule EOF )
-            // InternalOptimisationLanguage.g:406:1: ruleAndExpressionRule EOF
+            // InternalOptimisationLanguage.g:380:1: ( ruleAndExpressionRule EOF )
+            // InternalOptimisationLanguage.g:381:1: ruleAndExpressionRule EOF
             {
              before(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1243,21 +1168,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalOptimisationLanguage.g:413:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:388:1: ruleAndExpressionRule : ( ( rule__AndExpressionRule__Group__0 ) ) ;
     public final void ruleAndExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:417:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:418:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:392:2: ( ( ( rule__AndExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:393:2: ( ( rule__AndExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:418:2: ( ( rule__AndExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:419:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:393:2: ( ( rule__AndExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:394:3: ( rule__AndExpressionRule__Group__0 )
             {
              before(grammarAccess.getAndExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:420:3: ( rule__AndExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:420:4: rule__AndExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:395:3: ( rule__AndExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:395:4: rule__AndExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AndExpressionRule__Group__0();
@@ -1290,11 +1215,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalOptimisationLanguage.g:429:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:404:1: entryRuleNotExpressionRule : ruleNotExpressionRule EOF ;
     public final void entryRuleNotExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:430:1: ( ruleNotExpressionRule EOF )
-            // InternalOptimisationLanguage.g:431:1: ruleNotExpressionRule EOF
+            // InternalOptimisationLanguage.g:405:1: ( ruleNotExpressionRule EOF )
+            // InternalOptimisationLanguage.g:406:1: ruleNotExpressionRule EOF
             {
              before(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1320,21 +1245,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalOptimisationLanguage.g:438:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:413:1: ruleNotExpressionRule : ( ( rule__NotExpressionRule__Group__0 ) ) ;
     public final void ruleNotExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:442:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:443:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:417:2: ( ( ( rule__NotExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:418:2: ( ( rule__NotExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:443:2: ( ( rule__NotExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:444:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:418:2: ( ( rule__NotExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:419:3: ( rule__NotExpressionRule__Group__0 )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:445:3: ( rule__NotExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:445:4: rule__NotExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:420:3: ( rule__NotExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:420:4: rule__NotExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__NotExpressionRule__Group__0();
@@ -1367,11 +1292,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:454:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:429:1: entryRuleComparisonExpressionRule : ruleComparisonExpressionRule EOF ;
     public final void entryRuleComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:455:1: ( ruleComparisonExpressionRule EOF )
-            // InternalOptimisationLanguage.g:456:1: ruleComparisonExpressionRule EOF
+            // InternalOptimisationLanguage.g:430:1: ( ruleComparisonExpressionRule EOF )
+            // InternalOptimisationLanguage.g:431:1: ruleComparisonExpressionRule EOF
             {
              before(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1397,21 +1322,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:463:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:438:1: ruleComparisonExpressionRule : ( ( rule__ComparisonExpressionRule__Group__0 ) ) ;
     public final void ruleComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:467:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:468:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:442:2: ( ( ( rule__ComparisonExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:443:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:468:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:469:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:443:2: ( ( rule__ComparisonExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:444:3: ( rule__ComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:470:3: ( rule__ComparisonExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:470:4: rule__ComparisonExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:445:3: ( rule__ComparisonExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:445:4: rule__ComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonExpressionRule__Group__0();
@@ -1444,11 +1369,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:479:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:454:1: entryRulePartialComparisonExpressionRule : rulePartialComparisonExpressionRule EOF ;
     public final void entryRulePartialComparisonExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:480:1: ( rulePartialComparisonExpressionRule EOF )
-            // InternalOptimisationLanguage.g:481:1: rulePartialComparisonExpressionRule EOF
+            // InternalOptimisationLanguage.g:455:1: ( rulePartialComparisonExpressionRule EOF )
+            // InternalOptimisationLanguage.g:456:1: rulePartialComparisonExpressionRule EOF
             {
              before(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1474,21 +1399,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:488:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:463:1: rulePartialComparisonExpressionRule : ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) ;
     public final void rulePartialComparisonExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:492:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:493:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:467:2: ( ( ( rule__PartialComparisonExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:468:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:493:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:494:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:468:2: ( ( rule__PartialComparisonExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:469:3: ( rule__PartialComparisonExpressionRule__Group__0 )
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:495:3: ( rule__PartialComparisonExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:495:4: rule__PartialComparisonExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:470:3: ( rule__PartialComparisonExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:470:4: rule__PartialComparisonExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PartialComparisonExpressionRule__Group__0();
@@ -1521,11 +1446,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:504:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:479:1: entryRuleAddOrSubtractExpressionRule : ruleAddOrSubtractExpressionRule EOF ;
     public final void entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:505:1: ( ruleAddOrSubtractExpressionRule EOF )
-            // InternalOptimisationLanguage.g:506:1: ruleAddOrSubtractExpressionRule EOF
+            // InternalOptimisationLanguage.g:480:1: ( ruleAddOrSubtractExpressionRule EOF )
+            // InternalOptimisationLanguage.g:481:1: ruleAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1551,21 +1476,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:513:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:488:1: ruleAddOrSubtractExpressionRule : ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:517:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:518:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:492:2: ( ( ( rule__AddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:493:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:518:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:519:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:493:2: ( ( rule__AddOrSubtractExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:494:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:520:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:520:4: rule__AddOrSubtractExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:495:3: ( rule__AddOrSubtractExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:495:4: rule__AddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractExpressionRule__Group__0();
@@ -1598,11 +1523,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalOptimisationLanguage.g:529:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:504:1: entryRuleMultiplyDivideModuloExpressionRule : ruleMultiplyDivideModuloExpressionRule EOF ;
     public final void entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:530:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalOptimisationLanguage.g:531:1: ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalOptimisationLanguage.g:505:1: ( ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalOptimisationLanguage.g:506:1: ruleMultiplyDivideModuloExpressionRule EOF
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1628,21 +1553,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalOptimisationLanguage.g:538:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:513:1: ruleMultiplyDivideModuloExpressionRule : ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) ;
     public final void ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:542:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:543:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:517:2: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:518:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:543:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:544:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:518:2: ( ( rule__MultiplyDivideModuloExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:519:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:545:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:545:4: rule__MultiplyDivideModuloExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:520:3: ( rule__MultiplyDivideModuloExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:520:4: rule__MultiplyDivideModuloExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloExpressionRule__Group__0();
@@ -1675,11 +1600,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalOptimisationLanguage.g:554:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:529:1: entryRulePowerOfExpressionRule : rulePowerOfExpressionRule EOF ;
     public final void entryRulePowerOfExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:555:1: ( rulePowerOfExpressionRule EOF )
-            // InternalOptimisationLanguage.g:556:1: rulePowerOfExpressionRule EOF
+            // InternalOptimisationLanguage.g:530:1: ( rulePowerOfExpressionRule EOF )
+            // InternalOptimisationLanguage.g:531:1: rulePowerOfExpressionRule EOF
             {
              before(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1705,21 +1630,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalOptimisationLanguage.g:563:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:538:1: rulePowerOfExpressionRule : ( ( rule__PowerOfExpressionRule__Group__0 ) ) ;
     public final void rulePowerOfExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:567:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:568:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:542:2: ( ( ( rule__PowerOfExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:543:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:568:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:569:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:543:2: ( ( rule__PowerOfExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:544:3: ( rule__PowerOfExpressionRule__Group__0 )
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:570:3: ( rule__PowerOfExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:570:4: rule__PowerOfExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:545:3: ( rule__PowerOfExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:545:4: rule__PowerOfExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__PowerOfExpressionRule__Group__0();
@@ -1752,11 +1677,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:579:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:554:1: entryRuleUnaryAddOrSubtractExpressionRule : ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final void entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:580:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalOptimisationLanguage.g:581:1: ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalOptimisationLanguage.g:555:1: ( ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalOptimisationLanguage.g:556:1: ruleUnaryAddOrSubtractExpressionRule EOF
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1782,21 +1707,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:588:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:563:1: ruleUnaryAddOrSubtractExpressionRule : ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) ;
     public final void ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:592:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:593:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:567:2: ( ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:568:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:593:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:594:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:568:2: ( ( rule__UnaryAddOrSubtractExpressionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:569:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:595:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
-            // InternalOptimisationLanguage.g:595:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
+            // InternalOptimisationLanguage.g:570:3: ( rule__UnaryAddOrSubtractExpressionRule__Group__0 )
+            // InternalOptimisationLanguage.g:570:4: rule__UnaryAddOrSubtractExpressionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__UnaryAddOrSubtractExpressionRule__Group__0();
@@ -1829,11 +1754,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalOptimisationLanguage.g:604:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
+    // InternalOptimisationLanguage.g:579:1: entryRuleLiteralOrReferenceRule : ruleLiteralOrReferenceRule EOF ;
     public final void entryRuleLiteralOrReferenceRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:605:1: ( ruleLiteralOrReferenceRule EOF )
-            // InternalOptimisationLanguage.g:606:1: ruleLiteralOrReferenceRule EOF
+            // InternalOptimisationLanguage.g:580:1: ( ruleLiteralOrReferenceRule EOF )
+            // InternalOptimisationLanguage.g:581:1: ruleLiteralOrReferenceRule EOF
             {
              before(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1859,21 +1784,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalOptimisationLanguage.g:613:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:588:1: ruleLiteralOrReferenceRule : ( ( rule__LiteralOrReferenceRule__Alternatives ) ) ;
     public final void ruleLiteralOrReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:617:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:618:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:592:2: ( ( ( rule__LiteralOrReferenceRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:593:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:618:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:619:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalOptimisationLanguage.g:593:2: ( ( rule__LiteralOrReferenceRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:594:3: ( rule__LiteralOrReferenceRule__Alternatives )
             {
              before(grammarAccess.getLiteralOrReferenceRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:620:3: ( rule__LiteralOrReferenceRule__Alternatives )
-            // InternalOptimisationLanguage.g:620:4: rule__LiteralOrReferenceRule__Alternatives
+            // InternalOptimisationLanguage.g:595:3: ( rule__LiteralOrReferenceRule__Alternatives )
+            // InternalOptimisationLanguage.g:595:4: rule__LiteralOrReferenceRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__LiteralOrReferenceRule__Alternatives();
@@ -1906,11 +1831,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalOptimisationLanguage.g:629:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
+    // InternalOptimisationLanguage.g:604:1: entryRuleParanthesesRule : ruleParanthesesRule EOF ;
     public final void entryRuleParanthesesRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:630:1: ( ruleParanthesesRule EOF )
-            // InternalOptimisationLanguage.g:631:1: ruleParanthesesRule EOF
+            // InternalOptimisationLanguage.g:605:1: ( ruleParanthesesRule EOF )
+            // InternalOptimisationLanguage.g:606:1: ruleParanthesesRule EOF
             {
              before(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -1936,21 +1861,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalOptimisationLanguage.g:638:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:613:1: ruleParanthesesRule : ( ( rule__ParanthesesRule__Group__0 ) ) ;
     public final void ruleParanthesesRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:642:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:643:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:617:2: ( ( ( rule__ParanthesesRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:618:2: ( ( rule__ParanthesesRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:643:2: ( ( rule__ParanthesesRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:644:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalOptimisationLanguage.g:618:2: ( ( rule__ParanthesesRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:619:3: ( rule__ParanthesesRule__Group__0 )
             {
              before(grammarAccess.getParanthesesRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:645:3: ( rule__ParanthesesRule__Group__0 )
-            // InternalOptimisationLanguage.g:645:4: rule__ParanthesesRule__Group__0
+            // InternalOptimisationLanguage.g:620:3: ( rule__ParanthesesRule__Group__0 )
+            // InternalOptimisationLanguage.g:620:4: rule__ParanthesesRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParanthesesRule__Group__0();
@@ -1983,11 +1908,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalOptimisationLanguage.g:654:1: entryRuleCallRule : ruleCallRule EOF ;
+    // InternalOptimisationLanguage.g:629:1: entryRuleCallRule : ruleCallRule EOF ;
     public final void entryRuleCallRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:655:1: ( ruleCallRule EOF )
-            // InternalOptimisationLanguage.g:656:1: ruleCallRule EOF
+            // InternalOptimisationLanguage.g:630:1: ( ruleCallRule EOF )
+            // InternalOptimisationLanguage.g:631:1: ruleCallRule EOF
             {
              before(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2013,21 +1938,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalOptimisationLanguage.g:663:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:638:1: ruleCallRule : ( ( rule__CallRule__Group__0 ) ) ;
     public final void ruleCallRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:667:2: ( ( ( rule__CallRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:668:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:642:2: ( ( ( rule__CallRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:643:2: ( ( rule__CallRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:668:2: ( ( rule__CallRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:669:3: ( rule__CallRule__Group__0 )
+            // InternalOptimisationLanguage.g:643:2: ( ( rule__CallRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:644:3: ( rule__CallRule__Group__0 )
             {
              before(grammarAccess.getCallRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:670:3: ( rule__CallRule__Group__0 )
-            // InternalOptimisationLanguage.g:670:4: rule__CallRule__Group__0
+            // InternalOptimisationLanguage.g:645:3: ( rule__CallRule__Group__0 )
+            // InternalOptimisationLanguage.g:645:4: rule__CallRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__CallRule__Group__0();
@@ -2060,11 +1985,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalOptimisationLanguage.g:679:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
+    // InternalOptimisationLanguage.g:654:1: entryRuleValueReferenceRule : ruleValueReferenceRule EOF ;
     public final void entryRuleValueReferenceRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:680:1: ( ruleValueReferenceRule EOF )
-            // InternalOptimisationLanguage.g:681:1: ruleValueReferenceRule EOF
+            // InternalOptimisationLanguage.g:655:1: ( ruleValueReferenceRule EOF )
+            // InternalOptimisationLanguage.g:656:1: ruleValueReferenceRule EOF
             {
              before(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2090,31 +2015,102 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalOptimisationLanguage.g:688:1: ruleValueReferenceRule : ( ( rule__ValueReferenceRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:663:1: ruleValueReferenceRule : ( ruleConstantReferenceRule ) ;
     public final void ruleValueReferenceRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:692:2: ( ( ( rule__ValueReferenceRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:693:2: ( ( rule__ValueReferenceRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:667:2: ( ( ruleConstantReferenceRule ) )
+            // InternalOptimisationLanguage.g:668:2: ( ruleConstantReferenceRule )
+            {
+            // InternalOptimisationLanguage.g:668:2: ( ruleConstantReferenceRule )
+            // InternalOptimisationLanguage.g:669:3: ruleConstantReferenceRule
+            {
+             before(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+            pushFollow(FOLLOW_2);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleValueReferenceRule"
+
+
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalOptimisationLanguage.g:679:1: entryRuleConstantReferenceRule : ruleConstantReferenceRule EOF ;
+    public final void entryRuleConstantReferenceRule() throws RecognitionException {
+        try {
+            // InternalOptimisationLanguage.g:680:1: ( ruleConstantReferenceRule EOF )
+            // InternalOptimisationLanguage.g:681:1: ruleConstantReferenceRule EOF
+            {
+             before(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalOptimisationLanguage.g:688:1: ruleConstantReferenceRule : ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) ;
+    public final void ruleConstantReferenceRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:692:2: ( ( ( rule__ConstantReferenceRule__DefinitionAssignment ) ) )
+            // InternalOptimisationLanguage.g:693:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
             {
-            // InternalOptimisationLanguage.g:693:2: ( ( rule__ValueReferenceRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:694:3: ( rule__ValueReferenceRule__Group__0 )
+            // InternalOptimisationLanguage.g:693:2: ( ( rule__ConstantReferenceRule__DefinitionAssignment ) )
+            // InternalOptimisationLanguage.g:694:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:695:3: ( rule__ValueReferenceRule__Group__0 )
-            // InternalOptimisationLanguage.g:695:4: rule__ValueReferenceRule__Group__0
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
+            // InternalOptimisationLanguage.g:695:3: ( rule__ConstantReferenceRule__DefinitionAssignment )
+            // InternalOptimisationLanguage.g:695:4: rule__ConstantReferenceRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__0();
+            rule__ConstantReferenceRule__DefinitionAssignment();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getGroup()); 
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionAssignment()); 
 
             }
 
@@ -2133,7 +2129,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "ruleValueReferenceRule"
+    // $ANTLR end "ruleConstantReferenceRule"
 
 
     // $ANTLR start "entryRuleLiteralRule"
@@ -2598,12 +2594,89 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalOptimisationLanguage.g:854:1: entryRuleTypeDefinitionRule : ruleTypeDefinitionRule EOF ;
+    public final void entryRuleTypeDefinitionRule() throws RecognitionException {
+        try {
+            // InternalOptimisationLanguage.g:855:1: ( ruleTypeDefinitionRule EOF )
+            // InternalOptimisationLanguage.g:856:1: ruleTypeDefinitionRule EOF
+            {
+             before(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleRule()); 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+        }
+        return ;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalOptimisationLanguage.g:863:1: ruleTypeDefinitionRule : ( ( rule__TypeDefinitionRule__Group__0 ) ) ;
+    public final void ruleTypeDefinitionRule() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:867:2: ( ( ( rule__TypeDefinitionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:868:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            {
+            // InternalOptimisationLanguage.g:868:2: ( ( rule__TypeDefinitionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:869:3: ( rule__TypeDefinitionRule__Group__0 )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+            // InternalOptimisationLanguage.g:870:3: ( rule__TypeDefinitionRule__Group__0 )
+            // InternalOptimisationLanguage.g:870:4: rule__TypeDefinitionRule__Group__0
+            {
+            pushFollow(FOLLOW_2);
+            rule__TypeDefinitionRule__Group__0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalOptimisationLanguage.g:854:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
+    // InternalOptimisationLanguage.g:879:1: entryRuleAttributeDefinitionRule : ruleAttributeDefinitionRule EOF ;
     public final void entryRuleAttributeDefinitionRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:855:1: ( ruleAttributeDefinitionRule EOF )
-            // InternalOptimisationLanguage.g:856:1: ruleAttributeDefinitionRule EOF
+            // InternalOptimisationLanguage.g:880:1: ( ruleAttributeDefinitionRule EOF )
+            // InternalOptimisationLanguage.g:881:1: ruleAttributeDefinitionRule EOF
             {
              before(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2629,21 +2702,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalOptimisationLanguage.g:863:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:888:1: ruleAttributeDefinitionRule : ( ( rule__AttributeDefinitionRule__Group__0 ) ) ;
     public final void ruleAttributeDefinitionRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:867:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:868:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:892:2: ( ( ( rule__AttributeDefinitionRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:893:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:868:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:869:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalOptimisationLanguage.g:893:2: ( ( rule__AttributeDefinitionRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:894:3: ( rule__AttributeDefinitionRule__Group__0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:870:3: ( rule__AttributeDefinitionRule__Group__0 )
-            // InternalOptimisationLanguage.g:870:4: rule__AttributeDefinitionRule__Group__0
+            // InternalOptimisationLanguage.g:895:3: ( rule__AttributeDefinitionRule__Group__0 )
+            // InternalOptimisationLanguage.g:895:4: rule__AttributeDefinitionRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__0();
@@ -2676,11 +2749,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalOptimisationLanguage.g:879:1: entryRuleTypeRule : ruleTypeRule EOF ;
+    // InternalOptimisationLanguage.g:904:1: entryRuleTypeRule : ruleTypeRule EOF ;
     public final void entryRuleTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:880:1: ( ruleTypeRule EOF )
-            // InternalOptimisationLanguage.g:881:1: ruleTypeRule EOF
+            // InternalOptimisationLanguage.g:905:1: ( ruleTypeRule EOF )
+            // InternalOptimisationLanguage.g:906:1: ruleTypeRule EOF
             {
              before(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2706,21 +2779,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalOptimisationLanguage.g:888:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:913:1: ruleTypeRule : ( ( rule__TypeRule__Alternatives ) ) ;
     public final void ruleTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:892:2: ( ( ( rule__TypeRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:893:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:917:2: ( ( ( rule__TypeRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:918:2: ( ( rule__TypeRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:893:2: ( ( rule__TypeRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:894:3: ( rule__TypeRule__Alternatives )
+            // InternalOptimisationLanguage.g:918:2: ( ( rule__TypeRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:919:3: ( rule__TypeRule__Alternatives )
             {
              before(grammarAccess.getTypeRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:895:3: ( rule__TypeRule__Alternatives )
-            // InternalOptimisationLanguage.g:895:4: rule__TypeRule__Alternatives
+            // InternalOptimisationLanguage.g:920:3: ( rule__TypeRule__Alternatives )
+            // InternalOptimisationLanguage.g:920:4: rule__TypeRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__TypeRule__Alternatives();
@@ -2753,11 +2826,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalOptimisationLanguage.g:904:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
+    // InternalOptimisationLanguage.g:929:1: entryRuleLiteralTypeRule : ruleLiteralTypeRule EOF ;
     public final void entryRuleLiteralTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:905:1: ( ruleLiteralTypeRule EOF )
-            // InternalOptimisationLanguage.g:906:1: ruleLiteralTypeRule EOF
+            // InternalOptimisationLanguage.g:930:1: ( ruleLiteralTypeRule EOF )
+            // InternalOptimisationLanguage.g:931:1: ruleLiteralTypeRule EOF
             {
              before(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2783,21 +2856,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalOptimisationLanguage.g:913:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:938:1: ruleLiteralTypeRule : ( ( rule__LiteralTypeRule__Group__0 ) ) ;
     public final void ruleLiteralTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:917:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:918:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:942:2: ( ( ( rule__LiteralTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:943:2: ( ( rule__LiteralTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:918:2: ( ( rule__LiteralTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:919:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:943:2: ( ( rule__LiteralTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:944:3: ( rule__LiteralTypeRule__Group__0 )
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:920:3: ( rule__LiteralTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:920:4: rule__LiteralTypeRule__Group__0
+            // InternalOptimisationLanguage.g:945:3: ( rule__LiteralTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:945:4: rule__LiteralTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__0();
@@ -2830,11 +2903,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalOptimisationLanguage.g:929:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
+    // InternalOptimisationLanguage.g:954:1: entryRuleInstanceTypeRule : ruleInstanceTypeRule EOF ;
     public final void entryRuleInstanceTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:930:1: ( ruleInstanceTypeRule EOF )
-            // InternalOptimisationLanguage.g:931:1: ruleInstanceTypeRule EOF
+            // InternalOptimisationLanguage.g:955:1: ( ruleInstanceTypeRule EOF )
+            // InternalOptimisationLanguage.g:956:1: ruleInstanceTypeRule EOF
             {
              before(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2860,21 +2933,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalOptimisationLanguage.g:938:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:963:1: ruleInstanceTypeRule : ( ( rule__InstanceTypeRule__Group__0 ) ) ;
     public final void ruleInstanceTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:942:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:943:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:967:2: ( ( ( rule__InstanceTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:968:2: ( ( rule__InstanceTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:943:2: ( ( rule__InstanceTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:944:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:968:2: ( ( rule__InstanceTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:969:3: ( rule__InstanceTypeRule__Group__0 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:945:3: ( rule__InstanceTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:945:4: rule__InstanceTypeRule__Group__0
+            // InternalOptimisationLanguage.g:970:3: ( rule__InstanceTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:970:4: rule__InstanceTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__0();
@@ -2907,11 +2980,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalOptimisationLanguage.g:954:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
+    // InternalOptimisationLanguage.g:979:1: entryRuleStringTypeRule : ruleStringTypeRule EOF ;
     public final void entryRuleStringTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:955:1: ( ruleStringTypeRule EOF )
-            // InternalOptimisationLanguage.g:956:1: ruleStringTypeRule EOF
+            // InternalOptimisationLanguage.g:980:1: ( ruleStringTypeRule EOF )
+            // InternalOptimisationLanguage.g:981:1: ruleStringTypeRule EOF
             {
              before(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2937,21 +3010,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalOptimisationLanguage.g:963:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:988:1: ruleStringTypeRule : ( ( rule__StringTypeRule__Group__0 ) ) ;
     public final void ruleStringTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:967:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:968:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:992:2: ( ( ( rule__StringTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:993:2: ( ( rule__StringTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:968:2: ( ( rule__StringTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:969:3: ( rule__StringTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:993:2: ( ( rule__StringTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:994:3: ( rule__StringTypeRule__Group__0 )
             {
              before(grammarAccess.getStringTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:970:3: ( rule__StringTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:970:4: rule__StringTypeRule__Group__0
+            // InternalOptimisationLanguage.g:995:3: ( rule__StringTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:995:4: rule__StringTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__0();
@@ -2984,11 +3057,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalOptimisationLanguage.g:979:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1004:1: entryRuleExpressionTypeRule : ruleExpressionTypeRule EOF ;
     public final void entryRuleExpressionTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:980:1: ( ruleExpressionTypeRule EOF )
-            // InternalOptimisationLanguage.g:981:1: ruleExpressionTypeRule EOF
+            // InternalOptimisationLanguage.g:1005:1: ( ruleExpressionTypeRule EOF )
+            // InternalOptimisationLanguage.g:1006:1: ruleExpressionTypeRule EOF
             {
              before(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3014,21 +3087,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalOptimisationLanguage.g:988:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1013:1: ruleExpressionTypeRule : ( ( rule__ExpressionTypeRule__Group__0 ) ) ;
     public final void ruleExpressionTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:992:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:993:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1017:2: ( ( ( rule__ExpressionTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1018:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:993:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:994:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1018:2: ( ( rule__ExpressionTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1019:3: ( rule__ExpressionTypeRule__Group__0 )
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:995:3: ( rule__ExpressionTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:995:4: rule__ExpressionTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1020:3: ( rule__ExpressionTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1020:4: rule__ExpressionTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__0();
@@ -3061,11 +3134,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalOptimisationLanguage.g:1004:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1029:1: entryRuleIntTypeRule : ruleIntTypeRule EOF ;
     public final void entryRuleIntTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1005:1: ( ruleIntTypeRule EOF )
-            // InternalOptimisationLanguage.g:1006:1: ruleIntTypeRule EOF
+            // InternalOptimisationLanguage.g:1030:1: ( ruleIntTypeRule EOF )
+            // InternalOptimisationLanguage.g:1031:1: ruleIntTypeRule EOF
             {
              before(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3091,21 +3164,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalOptimisationLanguage.g:1013:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1038:1: ruleIntTypeRule : ( ( rule__IntTypeRule__Group__0 ) ) ;
     public final void ruleIntTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1017:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1018:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1042:2: ( ( ( rule__IntTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1043:2: ( ( rule__IntTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1018:2: ( ( rule__IntTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1019:3: ( rule__IntTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1043:2: ( ( rule__IntTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1044:3: ( rule__IntTypeRule__Group__0 )
             {
              before(grammarAccess.getIntTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1020:3: ( rule__IntTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1020:4: rule__IntTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1045:3: ( rule__IntTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1045:4: rule__IntTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__0();
@@ -3138,11 +3211,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalOptimisationLanguage.g:1029:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1054:1: entryRuleFloatTypeRule : ruleFloatTypeRule EOF ;
     public final void entryRuleFloatTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1030:1: ( ruleFloatTypeRule EOF )
-            // InternalOptimisationLanguage.g:1031:1: ruleFloatTypeRule EOF
+            // InternalOptimisationLanguage.g:1055:1: ( ruleFloatTypeRule EOF )
+            // InternalOptimisationLanguage.g:1056:1: ruleFloatTypeRule EOF
             {
              before(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3168,21 +3241,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalOptimisationLanguage.g:1038:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1063:1: ruleFloatTypeRule : ( ( rule__FloatTypeRule__Group__0 ) ) ;
     public final void ruleFloatTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1042:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1043:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1067:2: ( ( ( rule__FloatTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1068:2: ( ( rule__FloatTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1043:2: ( ( rule__FloatTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1044:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1068:2: ( ( rule__FloatTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1069:3: ( rule__FloatTypeRule__Group__0 )
             {
              before(grammarAccess.getFloatTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1045:3: ( rule__FloatTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1045:4: rule__FloatTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1070:3: ( rule__FloatTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1070:4: rule__FloatTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__0();
@@ -3215,11 +3288,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalOptimisationLanguage.g:1054:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1079:1: entryRuleBooleanTypeRule : ruleBooleanTypeRule EOF ;
     public final void entryRuleBooleanTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1055:1: ( ruleBooleanTypeRule EOF )
-            // InternalOptimisationLanguage.g:1056:1: ruleBooleanTypeRule EOF
+            // InternalOptimisationLanguage.g:1080:1: ( ruleBooleanTypeRule EOF )
+            // InternalOptimisationLanguage.g:1081:1: ruleBooleanTypeRule EOF
             {
              before(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3245,21 +3318,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalOptimisationLanguage.g:1063:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1088:1: ruleBooleanTypeRule : ( ( rule__BooleanTypeRule__Group__0 ) ) ;
     public final void ruleBooleanTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1067:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1068:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1092:2: ( ( ( rule__BooleanTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1093:2: ( ( rule__BooleanTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1068:2: ( ( rule__BooleanTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1069:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1093:2: ( ( rule__BooleanTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1094:3: ( rule__BooleanTypeRule__Group__0 )
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1070:3: ( rule__BooleanTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1070:4: rule__BooleanTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1095:3: ( rule__BooleanTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1095:4: rule__BooleanTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__0();
@@ -3292,11 +3365,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalOptimisationLanguage.g:1079:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1104:1: entryRuleVoidTypeRule : ruleVoidTypeRule EOF ;
     public final void entryRuleVoidTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1080:1: ( ruleVoidTypeRule EOF )
-            // InternalOptimisationLanguage.g:1081:1: ruleVoidTypeRule EOF
+            // InternalOptimisationLanguage.g:1105:1: ( ruleVoidTypeRule EOF )
+            // InternalOptimisationLanguage.g:1106:1: ruleVoidTypeRule EOF
             {
              before(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3322,21 +3395,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalOptimisationLanguage.g:1088:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1113:1: ruleVoidTypeRule : ( ( rule__VoidTypeRule__Group__0 ) ) ;
     public final void ruleVoidTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1092:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1093:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1117:2: ( ( ( rule__VoidTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1118:2: ( ( rule__VoidTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1093:2: ( ( rule__VoidTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1094:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1118:2: ( ( rule__VoidTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1119:3: ( rule__VoidTypeRule__Group__0 )
             {
              before(grammarAccess.getVoidTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1095:3: ( rule__VoidTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1095:4: rule__VoidTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1120:3: ( rule__VoidTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1120:4: rule__VoidTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__0();
@@ -3369,11 +3442,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalOptimisationLanguage.g:1104:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1129:1: entryRuleDataTypeRule : ruleDataTypeRule EOF ;
     public final void entryRuleDataTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1105:1: ( ruleDataTypeRule EOF )
-            // InternalOptimisationLanguage.g:1106:1: ruleDataTypeRule EOF
+            // InternalOptimisationLanguage.g:1130:1: ( ruleDataTypeRule EOF )
+            // InternalOptimisationLanguage.g:1131:1: ruleDataTypeRule EOF
             {
              before(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3399,21 +3472,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalOptimisationLanguage.g:1113:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1138:1: ruleDataTypeRule : ( ( rule__DataTypeRule__Group__0 ) ) ;
     public final void ruleDataTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1117:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1118:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1142:2: ( ( ( rule__DataTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1143:2: ( ( rule__DataTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1118:2: ( ( rule__DataTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1119:3: ( rule__DataTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1143:2: ( ( rule__DataTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1144:3: ( rule__DataTypeRule__Group__0 )
             {
              before(grammarAccess.getDataTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1120:3: ( rule__DataTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1120:4: rule__DataTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1145:3: ( rule__DataTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1145:4: rule__DataTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__0();
@@ -3446,11 +3519,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalOptimisationLanguage.g:1129:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
+    // InternalOptimisationLanguage.g:1154:1: entryRuleArrayTypeRule : ruleArrayTypeRule EOF ;
     public final void entryRuleArrayTypeRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1130:1: ( ruleArrayTypeRule EOF )
-            // InternalOptimisationLanguage.g:1131:1: ruleArrayTypeRule EOF
+            // InternalOptimisationLanguage.g:1155:1: ( ruleArrayTypeRule EOF )
+            // InternalOptimisationLanguage.g:1156:1: ruleArrayTypeRule EOF
             {
              before(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3476,21 +3549,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalOptimisationLanguage.g:1138:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1163:1: ruleArrayTypeRule : ( ( rule__ArrayTypeRule__Group__0 ) ) ;
     public final void ruleArrayTypeRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1142:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1143:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1167:2: ( ( ( rule__ArrayTypeRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1168:2: ( ( rule__ArrayTypeRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1143:2: ( ( rule__ArrayTypeRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1144:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1168:2: ( ( rule__ArrayTypeRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1169:3: ( rule__ArrayTypeRule__Group__0 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1145:3: ( rule__ArrayTypeRule__Group__0 )
-            // InternalOptimisationLanguage.g:1145:4: rule__ArrayTypeRule__Group__0
+            // InternalOptimisationLanguage.g:1170:3: ( rule__ArrayTypeRule__Group__0 )
+            // InternalOptimisationLanguage.g:1170:4: rule__ArrayTypeRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__0();
@@ -3523,11 +3596,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalOptimisationLanguage.g:1154:1: entryRuleParameterRule : ruleParameterRule EOF ;
+    // InternalOptimisationLanguage.g:1179:1: entryRuleParameterRule : ruleParameterRule EOF ;
     public final void entryRuleParameterRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1155:1: ( ruleParameterRule EOF )
-            // InternalOptimisationLanguage.g:1156:1: ruleParameterRule EOF
+            // InternalOptimisationLanguage.g:1180:1: ( ruleParameterRule EOF )
+            // InternalOptimisationLanguage.g:1181:1: ruleParameterRule EOF
             {
              before(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3553,21 +3626,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalOptimisationLanguage.g:1163:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1188:1: ruleParameterRule : ( ( rule__ParameterRule__Group__0 ) ) ;
     public final void ruleParameterRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1167:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1168:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1192:2: ( ( ( rule__ParameterRule__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1193:2: ( ( rule__ParameterRule__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1168:2: ( ( rule__ParameterRule__Group__0 ) )
-            // InternalOptimisationLanguage.g:1169:3: ( rule__ParameterRule__Group__0 )
+            // InternalOptimisationLanguage.g:1193:2: ( ( rule__ParameterRule__Group__0 ) )
+            // InternalOptimisationLanguage.g:1194:3: ( rule__ParameterRule__Group__0 )
             {
              before(grammarAccess.getParameterRuleAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1170:3: ( rule__ParameterRule__Group__0 )
-            // InternalOptimisationLanguage.g:1170:4: rule__ParameterRule__Group__0
+            // InternalOptimisationLanguage.g:1195:3: ( rule__ParameterRule__Group__0 )
+            // InternalOptimisationLanguage.g:1195:4: rule__ParameterRule__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__0();
@@ -3600,11 +3673,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalOptimisationLanguage.g:1179:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
+    // InternalOptimisationLanguage.g:1204:1: entryRuleFunctionNameRule : ruleFunctionNameRule EOF ;
     public final void entryRuleFunctionNameRule() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1180:1: ( ruleFunctionNameRule EOF )
-            // InternalOptimisationLanguage.g:1181:1: ruleFunctionNameRule EOF
+            // InternalOptimisationLanguage.g:1205:1: ( ruleFunctionNameRule EOF )
+            // InternalOptimisationLanguage.g:1206:1: ruleFunctionNameRule EOF
             {
              before(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3630,21 +3703,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalOptimisationLanguage.g:1188:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
+    // InternalOptimisationLanguage.g:1213:1: ruleFunctionNameRule : ( ( rule__FunctionNameRule__DefinitionAssignment ) ) ;
     public final void ruleFunctionNameRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1192:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
-            // InternalOptimisationLanguage.g:1193:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalOptimisationLanguage.g:1217:2: ( ( ( rule__FunctionNameRule__DefinitionAssignment ) ) )
+            // InternalOptimisationLanguage.g:1218:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
             {
-            // InternalOptimisationLanguage.g:1193:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
-            // InternalOptimisationLanguage.g:1194:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalOptimisationLanguage.g:1218:2: ( ( rule__FunctionNameRule__DefinitionAssignment ) )
+            // InternalOptimisationLanguage.g:1219:3: ( rule__FunctionNameRule__DefinitionAssignment )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionAssignment()); 
-            // InternalOptimisationLanguage.g:1195:3: ( rule__FunctionNameRule__DefinitionAssignment )
-            // InternalOptimisationLanguage.g:1195:4: rule__FunctionNameRule__DefinitionAssignment
+            // InternalOptimisationLanguage.g:1220:3: ( rule__FunctionNameRule__DefinitionAssignment )
+            // InternalOptimisationLanguage.g:1220:4: rule__FunctionNameRule__DefinitionAssignment
             {
             pushFollow(FOLLOW_2);
             rule__FunctionNameRule__DefinitionAssignment();
@@ -3677,11 +3750,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalOptimisationLanguage.g:1204:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
+    // InternalOptimisationLanguage.g:1229:1: entryRuleQualifiedName : ruleQualifiedName EOF ;
     public final void entryRuleQualifiedName() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1205:1: ( ruleQualifiedName EOF )
-            // InternalOptimisationLanguage.g:1206:1: ruleQualifiedName EOF
+            // InternalOptimisationLanguage.g:1230:1: ( ruleQualifiedName EOF )
+            // InternalOptimisationLanguage.g:1231:1: ruleQualifiedName EOF
             {
              before(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -3707,21 +3780,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalOptimisationLanguage.g:1213:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
+    // InternalOptimisationLanguage.g:1238:1: ruleQualifiedName : ( ( rule__QualifiedName__Group__0 ) ) ;
     public final void ruleQualifiedName() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1217:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
-            // InternalOptimisationLanguage.g:1218:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalOptimisationLanguage.g:1242:2: ( ( ( rule__QualifiedName__Group__0 ) ) )
+            // InternalOptimisationLanguage.g:1243:2: ( ( rule__QualifiedName__Group__0 ) )
             {
-            // InternalOptimisationLanguage.g:1218:2: ( ( rule__QualifiedName__Group__0 ) )
-            // InternalOptimisationLanguage.g:1219:3: ( rule__QualifiedName__Group__0 )
+            // InternalOptimisationLanguage.g:1243:2: ( ( rule__QualifiedName__Group__0 ) )
+            // InternalOptimisationLanguage.g:1244:3: ( rule__QualifiedName__Group__0 )
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup()); 
-            // InternalOptimisationLanguage.g:1220:3: ( rule__QualifiedName__Group__0 )
-            // InternalOptimisationLanguage.g:1220:4: rule__QualifiedName__Group__0
+            // InternalOptimisationLanguage.g:1245:3: ( rule__QualifiedName__Group__0 )
+            // InternalOptimisationLanguage.g:1245:4: rule__QualifiedName__Group__0
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__0();
@@ -3754,11 +3827,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalOptimisationLanguage.g:1229:1: entryRuleStringOrId : ruleStringOrId EOF ;
+    // InternalOptimisationLanguage.g:1254:1: entryRuleStringOrId : ruleStringOrId EOF ;
     public final void entryRuleStringOrId() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:1230:1: ( ruleStringOrId EOF )
-            // InternalOptimisationLanguage.g:1231:1: ruleStringOrId EOF
+            // InternalOptimisationLanguage.g:1255:1: ( ruleStringOrId EOF )
+            // InternalOptimisationLanguage.g:1256:1: ruleStringOrId EOF
             {
              before(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -3784,21 +3857,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalOptimisationLanguage.g:1238:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:1263:1: ruleStringOrId : ( ( rule__StringOrId__Alternatives ) ) ;
     public final void ruleStringOrId() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1242:2: ( ( ( rule__StringOrId__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:1243:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalOptimisationLanguage.g:1267:2: ( ( ( rule__StringOrId__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:1268:2: ( ( rule__StringOrId__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:1243:2: ( ( rule__StringOrId__Alternatives ) )
-            // InternalOptimisationLanguage.g:1244:3: ( rule__StringOrId__Alternatives )
+            // InternalOptimisationLanguage.g:1268:2: ( ( rule__StringOrId__Alternatives ) )
+            // InternalOptimisationLanguage.g:1269:3: ( rule__StringOrId__Alternatives )
             {
              before(grammarAccess.getStringOrIdAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:1245:3: ( rule__StringOrId__Alternatives )
-            // InternalOptimisationLanguage.g:1245:4: rule__StringOrId__Alternatives
+            // InternalOptimisationLanguage.g:1270:3: ( rule__StringOrId__Alternatives )
+            // InternalOptimisationLanguage.g:1270:4: rule__StringOrId__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__StringOrId__Alternatives();
@@ -3831,21 +3904,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalOptimisationLanguage.g:1254:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:1279:1: ruleComparisonOperatorRule : ( ( rule__ComparisonOperatorRule__Alternatives ) ) ;
     public final void ruleComparisonOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1258:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:1259:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1283:1: ( ( ( rule__ComparisonOperatorRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:1284:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:1259:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:1260:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1284:2: ( ( rule__ComparisonOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1285:3: ( rule__ComparisonOperatorRule__Alternatives )
             {
              before(grammarAccess.getComparisonOperatorRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:1261:3: ( rule__ComparisonOperatorRule__Alternatives )
-            // InternalOptimisationLanguage.g:1261:4: rule__ComparisonOperatorRule__Alternatives
+            // InternalOptimisationLanguage.g:1286:3: ( rule__ComparisonOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1286:4: rule__ComparisonOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__ComparisonOperatorRule__Alternatives();
@@ -3878,21 +3951,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalOptimisationLanguage.g:1270:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:1295:1: ruleAddOrSubtractOperatorRule : ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) ;
     public final void ruleAddOrSubtractOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1274:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:1275:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1299:1: ( ( ( rule__AddOrSubtractOperatorRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:1300:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:1275:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:1276:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1300:2: ( ( rule__AddOrSubtractOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1301:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
             {
              before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:1277:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
-            // InternalOptimisationLanguage.g:1277:4: rule__AddOrSubtractOperatorRule__Alternatives
+            // InternalOptimisationLanguage.g:1302:3: ( rule__AddOrSubtractOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1302:4: rule__AddOrSubtractOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__AddOrSubtractOperatorRule__Alternatives();
@@ -3925,21 +3998,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalOptimisationLanguage.g:1286:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:1311:1: ruleMultiplyDivideModuloOperatorRule : ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) ;
     public final void ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1290:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:1291:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1315:1: ( ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:1316:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:1291:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:1292:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1316:2: ( ( rule__MultiplyDivideModuloOperatorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1317:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
             {
              before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:1293:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
-            // InternalOptimisationLanguage.g:1293:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
+            // InternalOptimisationLanguage.g:1318:3: ( rule__MultiplyDivideModuloOperatorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1318:4: rule__MultiplyDivideModuloOperatorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__MultiplyDivideModuloOperatorRule__Alternatives();
@@ -3972,21 +4045,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalOptimisationLanguage.g:1302:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
+    // InternalOptimisationLanguage.g:1327:1: ruleFactorRule : ( ( rule__FactorRule__Alternatives ) ) ;
     public final void ruleFactorRule() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1306:1: ( ( ( rule__FactorRule__Alternatives ) ) )
-            // InternalOptimisationLanguage.g:1307:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1331:1: ( ( ( rule__FactorRule__Alternatives ) ) )
+            // InternalOptimisationLanguage.g:1332:2: ( ( rule__FactorRule__Alternatives ) )
             {
-            // InternalOptimisationLanguage.g:1307:2: ( ( rule__FactorRule__Alternatives ) )
-            // InternalOptimisationLanguage.g:1308:3: ( rule__FactorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1332:2: ( ( rule__FactorRule__Alternatives ) )
+            // InternalOptimisationLanguage.g:1333:3: ( rule__FactorRule__Alternatives )
             {
              before(grammarAccess.getFactorRuleAccess().getAlternatives()); 
-            // InternalOptimisationLanguage.g:1309:3: ( rule__FactorRule__Alternatives )
-            // InternalOptimisationLanguage.g:1309:4: rule__FactorRule__Alternatives
+            // InternalOptimisationLanguage.g:1334:3: ( rule__FactorRule__Alternatives )
+            // InternalOptimisationLanguage.g:1334:4: rule__FactorRule__Alternatives
             {
             pushFollow(FOLLOW_2);
             rule__FactorRule__Alternatives();
@@ -4019,13 +4092,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ValueRule__Alternatives"
-    // InternalOptimisationLanguage.g:1317:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
+    // InternalOptimisationLanguage.g:1342:1: rule__ValueRule__Alternatives : ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) );
     public final void rule__ValueRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1321:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
+            // InternalOptimisationLanguage.g:1346:1: ( ( ruleArrayRule ) | ( ruleDataReferenceRule ) | ( ruleInstanceRule ) | ( ruleLiteralValueRule ) )
             int alt1=4;
             switch ( input.LA(1) ) {
             case 59:
@@ -4048,7 +4121,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             case RULE_INT:
             case RULE_STRING:
             case 15:
-            case 82:
+            case 83:
                 {
                 alt1=4;
                 }
@@ -4062,10 +4135,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt1) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1322:2: ( ruleArrayRule )
+                    // InternalOptimisationLanguage.g:1347:2: ( ruleArrayRule )
                     {
-                    // InternalOptimisationLanguage.g:1322:2: ( ruleArrayRule )
-                    // InternalOptimisationLanguage.g:1323:3: ruleArrayRule
+                    // InternalOptimisationLanguage.g:1347:2: ( ruleArrayRule )
+                    // InternalOptimisationLanguage.g:1348:3: ruleArrayRule
                     {
                      before(grammarAccess.getValueRuleAccess().getArrayRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4081,10 +4154,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1328:2: ( ruleDataReferenceRule )
+                    // InternalOptimisationLanguage.g:1353:2: ( ruleDataReferenceRule )
                     {
-                    // InternalOptimisationLanguage.g:1328:2: ( ruleDataReferenceRule )
-                    // InternalOptimisationLanguage.g:1329:3: ruleDataReferenceRule
+                    // InternalOptimisationLanguage.g:1353:2: ( ruleDataReferenceRule )
+                    // InternalOptimisationLanguage.g:1354:3: ruleDataReferenceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getDataReferenceRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4100,10 +4173,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1334:2: ( ruleInstanceRule )
+                    // InternalOptimisationLanguage.g:1359:2: ( ruleInstanceRule )
                     {
-                    // InternalOptimisationLanguage.g:1334:2: ( ruleInstanceRule )
-                    // InternalOptimisationLanguage.g:1335:3: ruleInstanceRule
+                    // InternalOptimisationLanguage.g:1359:2: ( ruleInstanceRule )
+                    // InternalOptimisationLanguage.g:1360:3: ruleInstanceRule
                     {
                      before(grammarAccess.getValueRuleAccess().getInstanceRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4119,10 +4192,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1340:2: ( ruleLiteralValueRule )
+                    // InternalOptimisationLanguage.g:1365:2: ( ruleLiteralValueRule )
                     {
-                    // InternalOptimisationLanguage.g:1340:2: ( ruleLiteralValueRule )
-                    // InternalOptimisationLanguage.g:1341:3: ruleLiteralValueRule
+                    // InternalOptimisationLanguage.g:1365:2: ( ruleLiteralValueRule )
+                    // InternalOptimisationLanguage.g:1366:3: ruleLiteralValueRule
                     {
                      before(grammarAccess.getValueRuleAccess().getLiteralValueRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -4155,53 +4228,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralOrReferenceRule__Alternatives"
-    // InternalOptimisationLanguage.g:1350:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
+    // InternalOptimisationLanguage.g:1375:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );
     public final void rule__LiteralOrReferenceRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1354:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
+            // InternalOptimisationLanguage.g:1379:1: ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) )
             int alt2=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt2=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 15:
-            case 82:
-                {
-                alt2=2;
-                }
-                break;
-            case 68:
-                {
-                alt2=3;
-                }
-                break;
-            case 70:
-                {
-                alt2=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 2, 0, input);
-
-                throw nvae;
-            }
-
+            alt2 = dfa2.predict(input);
             switch (alt2) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1355:2: ( ruleCallRule )
+                    // InternalOptimisationLanguage.g:1380:2: ( ruleCallRule )
                     {
-                    // InternalOptimisationLanguage.g:1355:2: ( ruleCallRule )
-                    // InternalOptimisationLanguage.g:1356:3: ruleCallRule
+                    // InternalOptimisationLanguage.g:1380:2: ( ruleCallRule )
+                    // InternalOptimisationLanguage.g:1381:3: ruleCallRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4217,10 +4258,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1361:2: ( ruleLiteralRule )
+                    // InternalOptimisationLanguage.g:1386:2: ( ruleLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1361:2: ( ruleLiteralRule )
-                    // InternalOptimisationLanguage.g:1362:3: ruleLiteralRule
+                    // InternalOptimisationLanguage.g:1386:2: ( ruleLiteralRule )
+                    // InternalOptimisationLanguage.g:1387:3: ruleLiteralRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4236,10 +4277,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1367:2: ( ruleParanthesesRule )
+                    // InternalOptimisationLanguage.g:1392:2: ( ruleParanthesesRule )
                     {
-                    // InternalOptimisationLanguage.g:1367:2: ( ruleParanthesesRule )
-                    // InternalOptimisationLanguage.g:1368:3: ruleParanthesesRule
+                    // InternalOptimisationLanguage.g:1392:2: ( ruleParanthesesRule )
+                    // InternalOptimisationLanguage.g:1393:3: ruleParanthesesRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4255,10 +4296,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1373:2: ( ruleValueReferenceRule )
+                    // InternalOptimisationLanguage.g:1398:2: ( ruleValueReferenceRule )
                     {
-                    // InternalOptimisationLanguage.g:1373:2: ( ruleValueReferenceRule )
-                    // InternalOptimisationLanguage.g:1374:3: ruleValueReferenceRule
+                    // InternalOptimisationLanguage.g:1398:2: ( ruleValueReferenceRule )
+                    // InternalOptimisationLanguage.g:1399:3: ruleValueReferenceRule
                     {
                      before(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -4291,13 +4332,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralRule__Alternatives"
-    // InternalOptimisationLanguage.g:1383:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
+    // InternalOptimisationLanguage.g:1408:1: rule__LiteralRule__Alternatives : ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) );
     public final void rule__LiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1387:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
+            // InternalOptimisationLanguage.g:1412:1: ( ( ruleNumberLiteralRule ) | ( ruleStringLiteralRule ) | ( ruleBooleanLiteralRule ) )
             int alt3=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
@@ -4312,7 +4353,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
                 break;
             case 15:
-            case 82:
+            case 83:
                 {
                 alt3=3;
                 }
@@ -4326,10 +4367,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt3) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1388:2: ( ruleNumberLiteralRule )
+                    // InternalOptimisationLanguage.g:1413:2: ( ruleNumberLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1388:2: ( ruleNumberLiteralRule )
-                    // InternalOptimisationLanguage.g:1389:3: ruleNumberLiteralRule
+                    // InternalOptimisationLanguage.g:1413:2: ( ruleNumberLiteralRule )
+                    // InternalOptimisationLanguage.g:1414:3: ruleNumberLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4345,10 +4386,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1394:2: ( ruleStringLiteralRule )
+                    // InternalOptimisationLanguage.g:1419:2: ( ruleStringLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1394:2: ( ruleStringLiteralRule )
-                    // InternalOptimisationLanguage.g:1395:3: ruleStringLiteralRule
+                    // InternalOptimisationLanguage.g:1419:2: ( ruleStringLiteralRule )
+                    // InternalOptimisationLanguage.g:1420:3: ruleStringLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4364,10 +4405,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1400:2: ( ruleBooleanLiteralRule )
+                    // InternalOptimisationLanguage.g:1425:2: ( ruleBooleanLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1400:2: ( ruleBooleanLiteralRule )
-                    // InternalOptimisationLanguage.g:1401:3: ruleBooleanLiteralRule
+                    // InternalOptimisationLanguage.g:1425:2: ( ruleBooleanLiteralRule )
+                    // InternalOptimisationLanguage.g:1426:3: ruleBooleanLiteralRule
                     {
                      before(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4400,13 +4441,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__NumberLiteralRule__Alternatives"
-    // InternalOptimisationLanguage.g:1410:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
+    // InternalOptimisationLanguage.g:1435:1: rule__NumberLiteralRule__Alternatives : ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) );
     public final void rule__NumberLiteralRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1414:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
+            // InternalOptimisationLanguage.g:1439:1: ( ( ruleDoubleLiteralRule ) | ( ruleIntegerLiteralRule ) )
             int alt4=2;
             int LA4_0 = input.LA(1);
 
@@ -4424,10 +4465,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt4) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1415:2: ( ruleDoubleLiteralRule )
+                    // InternalOptimisationLanguage.g:1440:2: ( ruleDoubleLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1415:2: ( ruleDoubleLiteralRule )
-                    // InternalOptimisationLanguage.g:1416:3: ruleDoubleLiteralRule
+                    // InternalOptimisationLanguage.g:1440:2: ( ruleDoubleLiteralRule )
+                    // InternalOptimisationLanguage.g:1441:3: ruleDoubleLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4443,10 +4484,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1421:2: ( ruleIntegerLiteralRule )
+                    // InternalOptimisationLanguage.g:1446:2: ( ruleIntegerLiteralRule )
                     {
-                    // InternalOptimisationLanguage.g:1421:2: ( ruleIntegerLiteralRule )
-                    // InternalOptimisationLanguage.g:1422:3: ruleIntegerLiteralRule
+                    // InternalOptimisationLanguage.g:1446:2: ( ruleIntegerLiteralRule )
+                    // InternalOptimisationLanguage.g:1447:3: ruleIntegerLiteralRule
                     {
                      before(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4479,17 +4520,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanLiteralRule__Alternatives_1"
-    // InternalOptimisationLanguage.g:1431:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
+    // InternalOptimisationLanguage.g:1456:1: rule__BooleanLiteralRule__Alternatives_1 : ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) );
     public final void rule__BooleanLiteralRule__Alternatives_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1435:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
+            // InternalOptimisationLanguage.g:1460:1: ( ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) ) | ( 'false' ) )
             int alt5=2;
             int LA5_0 = input.LA(1);
 
-            if ( (LA5_0==82) ) {
+            if ( (LA5_0==83) ) {
                 alt5=1;
             }
             else if ( (LA5_0==15) ) {
@@ -4503,14 +4544,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt5) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1436:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalOptimisationLanguage.g:1461:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
                     {
-                    // InternalOptimisationLanguage.g:1436:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
-                    // InternalOptimisationLanguage.g:1437:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalOptimisationLanguage.g:1461:2: ( ( rule__BooleanLiteralRule__ValueAssignment_1_0 ) )
+                    // InternalOptimisationLanguage.g:1462:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getValueAssignment_1_0()); 
-                    // InternalOptimisationLanguage.g:1438:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
-                    // InternalOptimisationLanguage.g:1438:4: rule__BooleanLiteralRule__ValueAssignment_1_0
+                    // InternalOptimisationLanguage.g:1463:3: ( rule__BooleanLiteralRule__ValueAssignment_1_0 )
+                    // InternalOptimisationLanguage.g:1463:4: rule__BooleanLiteralRule__ValueAssignment_1_0
                     {
                     pushFollow(FOLLOW_2);
                     rule__BooleanLiteralRule__ValueAssignment_1_0();
@@ -4528,10 +4569,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1442:2: ( 'false' )
+                    // InternalOptimisationLanguage.g:1467:2: ( 'false' )
                     {
-                    // InternalOptimisationLanguage.g:1442:2: ( 'false' )
-                    // InternalOptimisationLanguage.g:1443:3: 'false'
+                    // InternalOptimisationLanguage.g:1467:2: ( 'false' )
+                    // InternalOptimisationLanguage.g:1468:3: 'false'
                     {
                      before(grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1()); 
                     match(input,15,FOLLOW_2); 
@@ -4560,13 +4601,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__TypeRule__Alternatives"
-    // InternalOptimisationLanguage.g:1452:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
+    // InternalOptimisationLanguage.g:1477:1: rule__TypeRule__Alternatives : ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) );
     public final void rule__TypeRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1456:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
+            // InternalOptimisationLanguage.g:1481:1: ( ( ruleStringTypeRule ) | ( ruleIntTypeRule ) | ( ruleFloatTypeRule ) | ( ruleBooleanTypeRule ) | ( ruleLiteralTypeRule ) | ( ruleArrayTypeRule ) | ( ruleInstanceTypeRule ) | ( ruleVoidTypeRule ) | ( ruleExpressionTypeRule ) | ( ruleDataTypeRule ) )
             int alt6=10;
             switch ( input.LA(1) ) {
             case 74:
@@ -4628,10 +4669,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt6) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1457:2: ( ruleStringTypeRule )
+                    // InternalOptimisationLanguage.g:1482:2: ( ruleStringTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1457:2: ( ruleStringTypeRule )
-                    // InternalOptimisationLanguage.g:1458:3: ruleStringTypeRule
+                    // InternalOptimisationLanguage.g:1482:2: ( ruleStringTypeRule )
+                    // InternalOptimisationLanguage.g:1483:3: ruleStringTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0()); 
                     pushFollow(FOLLOW_2);
@@ -4647,10 +4688,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1463:2: ( ruleIntTypeRule )
+                    // InternalOptimisationLanguage.g:1488:2: ( ruleIntTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1463:2: ( ruleIntTypeRule )
-                    // InternalOptimisationLanguage.g:1464:3: ruleIntTypeRule
+                    // InternalOptimisationLanguage.g:1488:2: ( ruleIntTypeRule )
+                    // InternalOptimisationLanguage.g:1489:3: ruleIntTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1()); 
                     pushFollow(FOLLOW_2);
@@ -4666,10 +4707,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1469:2: ( ruleFloatTypeRule )
+                    // InternalOptimisationLanguage.g:1494:2: ( ruleFloatTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1469:2: ( ruleFloatTypeRule )
-                    // InternalOptimisationLanguage.g:1470:3: ruleFloatTypeRule
+                    // InternalOptimisationLanguage.g:1494:2: ( ruleFloatTypeRule )
+                    // InternalOptimisationLanguage.g:1495:3: ruleFloatTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2()); 
                     pushFollow(FOLLOW_2);
@@ -4685,10 +4726,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1475:2: ( ruleBooleanTypeRule )
+                    // InternalOptimisationLanguage.g:1500:2: ( ruleBooleanTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1475:2: ( ruleBooleanTypeRule )
-                    // InternalOptimisationLanguage.g:1476:3: ruleBooleanTypeRule
+                    // InternalOptimisationLanguage.g:1500:2: ( ruleBooleanTypeRule )
+                    // InternalOptimisationLanguage.g:1501:3: ruleBooleanTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3()); 
                     pushFollow(FOLLOW_2);
@@ -4704,10 +4745,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:1481:2: ( ruleLiteralTypeRule )
+                    // InternalOptimisationLanguage.g:1506:2: ( ruleLiteralTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1481:2: ( ruleLiteralTypeRule )
-                    // InternalOptimisationLanguage.g:1482:3: ruleLiteralTypeRule
+                    // InternalOptimisationLanguage.g:1506:2: ( ruleLiteralTypeRule )
+                    // InternalOptimisationLanguage.g:1507:3: ruleLiteralTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4()); 
                     pushFollow(FOLLOW_2);
@@ -4723,10 +4764,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:1487:2: ( ruleArrayTypeRule )
+                    // InternalOptimisationLanguage.g:1512:2: ( ruleArrayTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1487:2: ( ruleArrayTypeRule )
-                    // InternalOptimisationLanguage.g:1488:3: ruleArrayTypeRule
+                    // InternalOptimisationLanguage.g:1512:2: ( ruleArrayTypeRule )
+                    // InternalOptimisationLanguage.g:1513:3: ruleArrayTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5()); 
                     pushFollow(FOLLOW_2);
@@ -4742,10 +4783,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 7 :
-                    // InternalOptimisationLanguage.g:1493:2: ( ruleInstanceTypeRule )
+                    // InternalOptimisationLanguage.g:1518:2: ( ruleInstanceTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1493:2: ( ruleInstanceTypeRule )
-                    // InternalOptimisationLanguage.g:1494:3: ruleInstanceTypeRule
+                    // InternalOptimisationLanguage.g:1518:2: ( ruleInstanceTypeRule )
+                    // InternalOptimisationLanguage.g:1519:3: ruleInstanceTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6()); 
                     pushFollow(FOLLOW_2);
@@ -4761,10 +4802,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 8 :
-                    // InternalOptimisationLanguage.g:1499:2: ( ruleVoidTypeRule )
+                    // InternalOptimisationLanguage.g:1524:2: ( ruleVoidTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1499:2: ( ruleVoidTypeRule )
-                    // InternalOptimisationLanguage.g:1500:3: ruleVoidTypeRule
+                    // InternalOptimisationLanguage.g:1524:2: ( ruleVoidTypeRule )
+                    // InternalOptimisationLanguage.g:1525:3: ruleVoidTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7()); 
                     pushFollow(FOLLOW_2);
@@ -4780,10 +4821,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 9 :
-                    // InternalOptimisationLanguage.g:1505:2: ( ruleExpressionTypeRule )
+                    // InternalOptimisationLanguage.g:1530:2: ( ruleExpressionTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1505:2: ( ruleExpressionTypeRule )
-                    // InternalOptimisationLanguage.g:1506:3: ruleExpressionTypeRule
+                    // InternalOptimisationLanguage.g:1530:2: ( ruleExpressionTypeRule )
+                    // InternalOptimisationLanguage.g:1531:3: ruleExpressionTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8()); 
                     pushFollow(FOLLOW_2);
@@ -4799,10 +4840,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 10 :
-                    // InternalOptimisationLanguage.g:1511:2: ( ruleDataTypeRule )
+                    // InternalOptimisationLanguage.g:1536:2: ( ruleDataTypeRule )
                     {
-                    // InternalOptimisationLanguage.g:1511:2: ( ruleDataTypeRule )
-                    // InternalOptimisationLanguage.g:1512:3: ruleDataTypeRule
+                    // InternalOptimisationLanguage.g:1536:2: ( ruleDataTypeRule )
+                    // InternalOptimisationLanguage.g:1537:3: ruleDataTypeRule
                     {
                      before(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9()); 
                     pushFollow(FOLLOW_2);
@@ -4835,13 +4876,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringOrId__Alternatives"
-    // InternalOptimisationLanguage.g:1521:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
+    // InternalOptimisationLanguage.g:1546:1: rule__StringOrId__Alternatives : ( ( RULE_QUOTED_ID ) | ( RULE_ID ) );
     public final void rule__StringOrId__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1525:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
+            // InternalOptimisationLanguage.g:1550:1: ( ( RULE_QUOTED_ID ) | ( RULE_ID ) )
             int alt7=2;
             int LA7_0 = input.LA(1);
 
@@ -4859,10 +4900,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt7) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1526:2: ( RULE_QUOTED_ID )
+                    // InternalOptimisationLanguage.g:1551:2: ( RULE_QUOTED_ID )
                     {
-                    // InternalOptimisationLanguage.g:1526:2: ( RULE_QUOTED_ID )
-                    // InternalOptimisationLanguage.g:1527:3: RULE_QUOTED_ID
+                    // InternalOptimisationLanguage.g:1551:2: ( RULE_QUOTED_ID )
+                    // InternalOptimisationLanguage.g:1552:3: RULE_QUOTED_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getQUOTED_IDTerminalRuleCall_0()); 
                     match(input,RULE_QUOTED_ID,FOLLOW_2); 
@@ -4874,10 +4915,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1532:2: ( RULE_ID )
+                    // InternalOptimisationLanguage.g:1557:2: ( RULE_ID )
                     {
-                    // InternalOptimisationLanguage.g:1532:2: ( RULE_ID )
-                    // InternalOptimisationLanguage.g:1533:3: RULE_ID
+                    // InternalOptimisationLanguage.g:1557:2: ( RULE_ID )
+                    // InternalOptimisationLanguage.g:1558:3: RULE_ID
                     {
                      before(grammarAccess.getStringOrIdAccess().getIDTerminalRuleCall_1()); 
                     match(input,RULE_ID,FOLLOW_2); 
@@ -4906,13 +4947,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ComparisonOperatorRule__Alternatives"
-    // InternalOptimisationLanguage.g:1542:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
+    // InternalOptimisationLanguage.g:1567:1: rule__ComparisonOperatorRule__Alternatives : ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) );
     public final void rule__ComparisonOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1546:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
+            // InternalOptimisationLanguage.g:1571:1: ( ( ( '>=' ) ) | ( ( '>' ) ) | ( ( '=' ) ) | ( ( '!=' ) ) | ( ( '<' ) ) | ( ( '<=' ) ) )
             int alt8=6;
             switch ( input.LA(1) ) {
             case 16:
@@ -4954,14 +4995,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt8) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1547:2: ( ( '>=' ) )
+                    // InternalOptimisationLanguage.g:1572:2: ( ( '>=' ) )
                     {
-                    // InternalOptimisationLanguage.g:1547:2: ( ( '>=' ) )
-                    // InternalOptimisationLanguage.g:1548:3: ( '>=' )
+                    // InternalOptimisationLanguage.g:1572:2: ( ( '>=' ) )
+                    // InternalOptimisationLanguage.g:1573:3: ( '>=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0()); 
-                    // InternalOptimisationLanguage.g:1549:3: ( '>=' )
-                    // InternalOptimisationLanguage.g:1549:4: '>='
+                    // InternalOptimisationLanguage.g:1574:3: ( '>=' )
+                    // InternalOptimisationLanguage.g:1574:4: '>='
                     {
                     match(input,16,FOLLOW_2); 
 
@@ -4975,14 +5016,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1553:2: ( ( '>' ) )
+                    // InternalOptimisationLanguage.g:1578:2: ( ( '>' ) )
                     {
-                    // InternalOptimisationLanguage.g:1553:2: ( ( '>' ) )
-                    // InternalOptimisationLanguage.g:1554:3: ( '>' )
+                    // InternalOptimisationLanguage.g:1578:2: ( ( '>' ) )
+                    // InternalOptimisationLanguage.g:1579:3: ( '>' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1()); 
-                    // InternalOptimisationLanguage.g:1555:3: ( '>' )
-                    // InternalOptimisationLanguage.g:1555:4: '>'
+                    // InternalOptimisationLanguage.g:1580:3: ( '>' )
+                    // InternalOptimisationLanguage.g:1580:4: '>'
                     {
                     match(input,17,FOLLOW_2); 
 
@@ -4996,14 +5037,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1559:2: ( ( '=' ) )
+                    // InternalOptimisationLanguage.g:1584:2: ( ( '=' ) )
                     {
-                    // InternalOptimisationLanguage.g:1559:2: ( ( '=' ) )
-                    // InternalOptimisationLanguage.g:1560:3: ( '=' )
+                    // InternalOptimisationLanguage.g:1584:2: ( ( '=' ) )
+                    // InternalOptimisationLanguage.g:1585:3: ( '=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2()); 
-                    // InternalOptimisationLanguage.g:1561:3: ( '=' )
-                    // InternalOptimisationLanguage.g:1561:4: '='
+                    // InternalOptimisationLanguage.g:1586:3: ( '=' )
+                    // InternalOptimisationLanguage.g:1586:4: '='
                     {
                     match(input,18,FOLLOW_2); 
 
@@ -5017,14 +5058,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1565:2: ( ( '!=' ) )
+                    // InternalOptimisationLanguage.g:1590:2: ( ( '!=' ) )
                     {
-                    // InternalOptimisationLanguage.g:1565:2: ( ( '!=' ) )
-                    // InternalOptimisationLanguage.g:1566:3: ( '!=' )
+                    // InternalOptimisationLanguage.g:1590:2: ( ( '!=' ) )
+                    // InternalOptimisationLanguage.g:1591:3: ( '!=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3()); 
-                    // InternalOptimisationLanguage.g:1567:3: ( '!=' )
-                    // InternalOptimisationLanguage.g:1567:4: '!='
+                    // InternalOptimisationLanguage.g:1592:3: ( '!=' )
+                    // InternalOptimisationLanguage.g:1592:4: '!='
                     {
                     match(input,19,FOLLOW_2); 
 
@@ -5038,14 +5079,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:1571:2: ( ( '<' ) )
+                    // InternalOptimisationLanguage.g:1596:2: ( ( '<' ) )
                     {
-                    // InternalOptimisationLanguage.g:1571:2: ( ( '<' ) )
-                    // InternalOptimisationLanguage.g:1572:3: ( '<' )
+                    // InternalOptimisationLanguage.g:1596:2: ( ( '<' ) )
+                    // InternalOptimisationLanguage.g:1597:3: ( '<' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4()); 
-                    // InternalOptimisationLanguage.g:1573:3: ( '<' )
-                    // InternalOptimisationLanguage.g:1573:4: '<'
+                    // InternalOptimisationLanguage.g:1598:3: ( '<' )
+                    // InternalOptimisationLanguage.g:1598:4: '<'
                     {
                     match(input,20,FOLLOW_2); 
 
@@ -5059,14 +5100,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:1577:2: ( ( '<=' ) )
+                    // InternalOptimisationLanguage.g:1602:2: ( ( '<=' ) )
                     {
-                    // InternalOptimisationLanguage.g:1577:2: ( ( '<=' ) )
-                    // InternalOptimisationLanguage.g:1578:3: ( '<=' )
+                    // InternalOptimisationLanguage.g:1602:2: ( ( '<=' ) )
+                    // InternalOptimisationLanguage.g:1603:3: ( '<=' )
                     {
                      before(grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5()); 
-                    // InternalOptimisationLanguage.g:1579:3: ( '<=' )
-                    // InternalOptimisationLanguage.g:1579:4: '<='
+                    // InternalOptimisationLanguage.g:1604:3: ( '<=' )
+                    // InternalOptimisationLanguage.g:1604:4: '<='
                     {
                     match(input,21,FOLLOW_2); 
 
@@ -5097,13 +5138,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AddOrSubtractOperatorRule__Alternatives"
-    // InternalOptimisationLanguage.g:1587:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
+    // InternalOptimisationLanguage.g:1612:1: rule__AddOrSubtractOperatorRule__Alternatives : ( ( ( '+' ) ) | ( ( '-' ) ) );
     public final void rule__AddOrSubtractOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1591:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
+            // InternalOptimisationLanguage.g:1616:1: ( ( ( '+' ) ) | ( ( '-' ) ) )
             int alt9=2;
             int LA9_0 = input.LA(1);
 
@@ -5121,14 +5162,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt9) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1592:2: ( ( '+' ) )
+                    // InternalOptimisationLanguage.g:1617:2: ( ( '+' ) )
                     {
-                    // InternalOptimisationLanguage.g:1592:2: ( ( '+' ) )
-                    // InternalOptimisationLanguage.g:1593:3: ( '+' )
+                    // InternalOptimisationLanguage.g:1617:2: ( ( '+' ) )
+                    // InternalOptimisationLanguage.g:1618:3: ( '+' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0()); 
-                    // InternalOptimisationLanguage.g:1594:3: ( '+' )
-                    // InternalOptimisationLanguage.g:1594:4: '+'
+                    // InternalOptimisationLanguage.g:1619:3: ( '+' )
+                    // InternalOptimisationLanguage.g:1619:4: '+'
                     {
                     match(input,22,FOLLOW_2); 
 
@@ -5142,14 +5183,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1598:2: ( ( '-' ) )
+                    // InternalOptimisationLanguage.g:1623:2: ( ( '-' ) )
                     {
-                    // InternalOptimisationLanguage.g:1598:2: ( ( '-' ) )
-                    // InternalOptimisationLanguage.g:1599:3: ( '-' )
+                    // InternalOptimisationLanguage.g:1623:2: ( ( '-' ) )
+                    // InternalOptimisationLanguage.g:1624:3: ( '-' )
                     {
                      before(grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1()); 
-                    // InternalOptimisationLanguage.g:1600:3: ( '-' )
-                    // InternalOptimisationLanguage.g:1600:4: '-'
+                    // InternalOptimisationLanguage.g:1625:3: ( '-' )
+                    // InternalOptimisationLanguage.g:1625:4: '-'
                     {
                     match(input,23,FOLLOW_2); 
 
@@ -5180,13 +5221,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__MultiplyDivideModuloOperatorRule__Alternatives"
-    // InternalOptimisationLanguage.g:1608:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
+    // InternalOptimisationLanguage.g:1633:1: rule__MultiplyDivideModuloOperatorRule__Alternatives : ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) );
     public final void rule__MultiplyDivideModuloOperatorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1612:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
+            // InternalOptimisationLanguage.g:1637:1: ( ( ( '*' ) ) | ( ( '/' ) ) | ( ( '%' ) ) )
             int alt10=3;
             switch ( input.LA(1) ) {
             case 24:
@@ -5213,14 +5254,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt10) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1613:2: ( ( '*' ) )
+                    // InternalOptimisationLanguage.g:1638:2: ( ( '*' ) )
                     {
-                    // InternalOptimisationLanguage.g:1613:2: ( ( '*' ) )
-                    // InternalOptimisationLanguage.g:1614:3: ( '*' )
+                    // InternalOptimisationLanguage.g:1638:2: ( ( '*' ) )
+                    // InternalOptimisationLanguage.g:1639:3: ( '*' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0()); 
-                    // InternalOptimisationLanguage.g:1615:3: ( '*' )
-                    // InternalOptimisationLanguage.g:1615:4: '*'
+                    // InternalOptimisationLanguage.g:1640:3: ( '*' )
+                    // InternalOptimisationLanguage.g:1640:4: '*'
                     {
                     match(input,24,FOLLOW_2); 
 
@@ -5234,14 +5275,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1619:2: ( ( '/' ) )
+                    // InternalOptimisationLanguage.g:1644:2: ( ( '/' ) )
                     {
-                    // InternalOptimisationLanguage.g:1619:2: ( ( '/' ) )
-                    // InternalOptimisationLanguage.g:1620:3: ( '/' )
+                    // InternalOptimisationLanguage.g:1644:2: ( ( '/' ) )
+                    // InternalOptimisationLanguage.g:1645:3: ( '/' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1()); 
-                    // InternalOptimisationLanguage.g:1621:3: ( '/' )
-                    // InternalOptimisationLanguage.g:1621:4: '/'
+                    // InternalOptimisationLanguage.g:1646:3: ( '/' )
+                    // InternalOptimisationLanguage.g:1646:4: '/'
                     {
                     match(input,25,FOLLOW_2); 
 
@@ -5255,14 +5296,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1625:2: ( ( '%' ) )
+                    // InternalOptimisationLanguage.g:1650:2: ( ( '%' ) )
                     {
-                    // InternalOptimisationLanguage.g:1625:2: ( ( '%' ) )
-                    // InternalOptimisationLanguage.g:1626:3: ( '%' )
+                    // InternalOptimisationLanguage.g:1650:2: ( ( '%' ) )
+                    // InternalOptimisationLanguage.g:1651:3: ( '%' )
                     {
                      before(grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2()); 
-                    // InternalOptimisationLanguage.g:1627:3: ( '%' )
-                    // InternalOptimisationLanguage.g:1627:4: '%'
+                    // InternalOptimisationLanguage.g:1652:3: ( '%' )
+                    // InternalOptimisationLanguage.g:1652:4: '%'
                     {
                     match(input,26,FOLLOW_2); 
 
@@ -5293,13 +5334,13 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FactorRule__Alternatives"
-    // InternalOptimisationLanguage.g:1635:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
+    // InternalOptimisationLanguage.g:1660:1: rule__FactorRule__Alternatives : ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) );
     public final void rule__FactorRule__Alternatives() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1639:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
+            // InternalOptimisationLanguage.g:1664:1: ( ( ( 'Y' ) ) | ( ( 'Z' ) ) | ( ( 'E' ) ) | ( ( 'P' ) ) | ( ( 'T' ) ) | ( ( 'G' ) ) | ( ( 'M' ) ) | ( ( 'k' ) ) | ( ( 'h' ) ) | ( ( 'da' ) ) | ( ( 'd' ) ) | ( ( 'c' ) ) | ( ( 'm' ) ) | ( ( '\\u00B5' ) ) | ( ( 'n' ) ) | ( ( 'p' ) ) | ( ( 'f' ) ) | ( ( 'a' ) ) | ( ( 'z' ) ) | ( ( 'y' ) ) )
             int alt11=20;
             switch ( input.LA(1) ) {
             case 27:
@@ -5411,14 +5452,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             switch (alt11) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1640:2: ( ( 'Y' ) )
+                    // InternalOptimisationLanguage.g:1665:2: ( ( 'Y' ) )
                     {
-                    // InternalOptimisationLanguage.g:1640:2: ( ( 'Y' ) )
-                    // InternalOptimisationLanguage.g:1641:3: ( 'Y' )
+                    // InternalOptimisationLanguage.g:1665:2: ( ( 'Y' ) )
+                    // InternalOptimisationLanguage.g:1666:3: ( 'Y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0()); 
-                    // InternalOptimisationLanguage.g:1642:3: ( 'Y' )
-                    // InternalOptimisationLanguage.g:1642:4: 'Y'
+                    // InternalOptimisationLanguage.g:1667:3: ( 'Y' )
+                    // InternalOptimisationLanguage.g:1667:4: 'Y'
                     {
                     match(input,27,FOLLOW_2); 
 
@@ -5432,14 +5473,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1646:2: ( ( 'Z' ) )
+                    // InternalOptimisationLanguage.g:1671:2: ( ( 'Z' ) )
                     {
-                    // InternalOptimisationLanguage.g:1646:2: ( ( 'Z' ) )
-                    // InternalOptimisationLanguage.g:1647:3: ( 'Z' )
+                    // InternalOptimisationLanguage.g:1671:2: ( ( 'Z' ) )
+                    // InternalOptimisationLanguage.g:1672:3: ( 'Z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1()); 
-                    // InternalOptimisationLanguage.g:1648:3: ( 'Z' )
-                    // InternalOptimisationLanguage.g:1648:4: 'Z'
+                    // InternalOptimisationLanguage.g:1673:3: ( 'Z' )
+                    // InternalOptimisationLanguage.g:1673:4: 'Z'
                     {
                     match(input,28,FOLLOW_2); 
 
@@ -5453,14 +5494,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1652:2: ( ( 'E' ) )
+                    // InternalOptimisationLanguage.g:1677:2: ( ( 'E' ) )
                     {
-                    // InternalOptimisationLanguage.g:1652:2: ( ( 'E' ) )
-                    // InternalOptimisationLanguage.g:1653:3: ( 'E' )
+                    // InternalOptimisationLanguage.g:1677:2: ( ( 'E' ) )
+                    // InternalOptimisationLanguage.g:1678:3: ( 'E' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2()); 
-                    // InternalOptimisationLanguage.g:1654:3: ( 'E' )
-                    // InternalOptimisationLanguage.g:1654:4: 'E'
+                    // InternalOptimisationLanguage.g:1679:3: ( 'E' )
+                    // InternalOptimisationLanguage.g:1679:4: 'E'
                     {
                     match(input,29,FOLLOW_2); 
 
@@ -5474,14 +5515,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1658:2: ( ( 'P' ) )
+                    // InternalOptimisationLanguage.g:1683:2: ( ( 'P' ) )
                     {
-                    // InternalOptimisationLanguage.g:1658:2: ( ( 'P' ) )
-                    // InternalOptimisationLanguage.g:1659:3: ( 'P' )
+                    // InternalOptimisationLanguage.g:1683:2: ( ( 'P' ) )
+                    // InternalOptimisationLanguage.g:1684:3: ( 'P' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3()); 
-                    // InternalOptimisationLanguage.g:1660:3: ( 'P' )
-                    // InternalOptimisationLanguage.g:1660:4: 'P'
+                    // InternalOptimisationLanguage.g:1685:3: ( 'P' )
+                    // InternalOptimisationLanguage.g:1685:4: 'P'
                     {
                     match(input,30,FOLLOW_2); 
 
@@ -5495,14 +5536,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:1664:2: ( ( 'T' ) )
+                    // InternalOptimisationLanguage.g:1689:2: ( ( 'T' ) )
                     {
-                    // InternalOptimisationLanguage.g:1664:2: ( ( 'T' ) )
-                    // InternalOptimisationLanguage.g:1665:3: ( 'T' )
+                    // InternalOptimisationLanguage.g:1689:2: ( ( 'T' ) )
+                    // InternalOptimisationLanguage.g:1690:3: ( 'T' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4()); 
-                    // InternalOptimisationLanguage.g:1666:3: ( 'T' )
-                    // InternalOptimisationLanguage.g:1666:4: 'T'
+                    // InternalOptimisationLanguage.g:1691:3: ( 'T' )
+                    // InternalOptimisationLanguage.g:1691:4: 'T'
                     {
                     match(input,31,FOLLOW_2); 
 
@@ -5516,14 +5557,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:1670:2: ( ( 'G' ) )
+                    // InternalOptimisationLanguage.g:1695:2: ( ( 'G' ) )
                     {
-                    // InternalOptimisationLanguage.g:1670:2: ( ( 'G' ) )
-                    // InternalOptimisationLanguage.g:1671:3: ( 'G' )
+                    // InternalOptimisationLanguage.g:1695:2: ( ( 'G' ) )
+                    // InternalOptimisationLanguage.g:1696:3: ( 'G' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5()); 
-                    // InternalOptimisationLanguage.g:1672:3: ( 'G' )
-                    // InternalOptimisationLanguage.g:1672:4: 'G'
+                    // InternalOptimisationLanguage.g:1697:3: ( 'G' )
+                    // InternalOptimisationLanguage.g:1697:4: 'G'
                     {
                     match(input,32,FOLLOW_2); 
 
@@ -5537,14 +5578,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 7 :
-                    // InternalOptimisationLanguage.g:1676:2: ( ( 'M' ) )
+                    // InternalOptimisationLanguage.g:1701:2: ( ( 'M' ) )
                     {
-                    // InternalOptimisationLanguage.g:1676:2: ( ( 'M' ) )
-                    // InternalOptimisationLanguage.g:1677:3: ( 'M' )
+                    // InternalOptimisationLanguage.g:1701:2: ( ( 'M' ) )
+                    // InternalOptimisationLanguage.g:1702:3: ( 'M' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6()); 
-                    // InternalOptimisationLanguage.g:1678:3: ( 'M' )
-                    // InternalOptimisationLanguage.g:1678:4: 'M'
+                    // InternalOptimisationLanguage.g:1703:3: ( 'M' )
+                    // InternalOptimisationLanguage.g:1703:4: 'M'
                     {
                     match(input,33,FOLLOW_2); 
 
@@ -5558,14 +5599,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 8 :
-                    // InternalOptimisationLanguage.g:1682:2: ( ( 'k' ) )
+                    // InternalOptimisationLanguage.g:1707:2: ( ( 'k' ) )
                     {
-                    // InternalOptimisationLanguage.g:1682:2: ( ( 'k' ) )
-                    // InternalOptimisationLanguage.g:1683:3: ( 'k' )
+                    // InternalOptimisationLanguage.g:1707:2: ( ( 'k' ) )
+                    // InternalOptimisationLanguage.g:1708:3: ( 'k' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7()); 
-                    // InternalOptimisationLanguage.g:1684:3: ( 'k' )
-                    // InternalOptimisationLanguage.g:1684:4: 'k'
+                    // InternalOptimisationLanguage.g:1709:3: ( 'k' )
+                    // InternalOptimisationLanguage.g:1709:4: 'k'
                     {
                     match(input,34,FOLLOW_2); 
 
@@ -5579,14 +5620,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 9 :
-                    // InternalOptimisationLanguage.g:1688:2: ( ( 'h' ) )
+                    // InternalOptimisationLanguage.g:1713:2: ( ( 'h' ) )
                     {
-                    // InternalOptimisationLanguage.g:1688:2: ( ( 'h' ) )
-                    // InternalOptimisationLanguage.g:1689:3: ( 'h' )
+                    // InternalOptimisationLanguage.g:1713:2: ( ( 'h' ) )
+                    // InternalOptimisationLanguage.g:1714:3: ( 'h' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8()); 
-                    // InternalOptimisationLanguage.g:1690:3: ( 'h' )
-                    // InternalOptimisationLanguage.g:1690:4: 'h'
+                    // InternalOptimisationLanguage.g:1715:3: ( 'h' )
+                    // InternalOptimisationLanguage.g:1715:4: 'h'
                     {
                     match(input,35,FOLLOW_2); 
 
@@ -5600,14 +5641,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 10 :
-                    // InternalOptimisationLanguage.g:1694:2: ( ( 'da' ) )
+                    // InternalOptimisationLanguage.g:1719:2: ( ( 'da' ) )
                     {
-                    // InternalOptimisationLanguage.g:1694:2: ( ( 'da' ) )
-                    // InternalOptimisationLanguage.g:1695:3: ( 'da' )
+                    // InternalOptimisationLanguage.g:1719:2: ( ( 'da' ) )
+                    // InternalOptimisationLanguage.g:1720:3: ( 'da' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9()); 
-                    // InternalOptimisationLanguage.g:1696:3: ( 'da' )
-                    // InternalOptimisationLanguage.g:1696:4: 'da'
+                    // InternalOptimisationLanguage.g:1721:3: ( 'da' )
+                    // InternalOptimisationLanguage.g:1721:4: 'da'
                     {
                     match(input,36,FOLLOW_2); 
 
@@ -5621,14 +5662,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 11 :
-                    // InternalOptimisationLanguage.g:1700:2: ( ( 'd' ) )
+                    // InternalOptimisationLanguage.g:1725:2: ( ( 'd' ) )
                     {
-                    // InternalOptimisationLanguage.g:1700:2: ( ( 'd' ) )
-                    // InternalOptimisationLanguage.g:1701:3: ( 'd' )
+                    // InternalOptimisationLanguage.g:1725:2: ( ( 'd' ) )
+                    // InternalOptimisationLanguage.g:1726:3: ( 'd' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10()); 
-                    // InternalOptimisationLanguage.g:1702:3: ( 'd' )
-                    // InternalOptimisationLanguage.g:1702:4: 'd'
+                    // InternalOptimisationLanguage.g:1727:3: ( 'd' )
+                    // InternalOptimisationLanguage.g:1727:4: 'd'
                     {
                     match(input,37,FOLLOW_2); 
 
@@ -5642,14 +5683,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 12 :
-                    // InternalOptimisationLanguage.g:1706:2: ( ( 'c' ) )
+                    // InternalOptimisationLanguage.g:1731:2: ( ( 'c' ) )
                     {
-                    // InternalOptimisationLanguage.g:1706:2: ( ( 'c' ) )
-                    // InternalOptimisationLanguage.g:1707:3: ( 'c' )
+                    // InternalOptimisationLanguage.g:1731:2: ( ( 'c' ) )
+                    // InternalOptimisationLanguage.g:1732:3: ( 'c' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11()); 
-                    // InternalOptimisationLanguage.g:1708:3: ( 'c' )
-                    // InternalOptimisationLanguage.g:1708:4: 'c'
+                    // InternalOptimisationLanguage.g:1733:3: ( 'c' )
+                    // InternalOptimisationLanguage.g:1733:4: 'c'
                     {
                     match(input,38,FOLLOW_2); 
 
@@ -5663,14 +5704,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 13 :
-                    // InternalOptimisationLanguage.g:1712:2: ( ( 'm' ) )
+                    // InternalOptimisationLanguage.g:1737:2: ( ( 'm' ) )
                     {
-                    // InternalOptimisationLanguage.g:1712:2: ( ( 'm' ) )
-                    // InternalOptimisationLanguage.g:1713:3: ( 'm' )
+                    // InternalOptimisationLanguage.g:1737:2: ( ( 'm' ) )
+                    // InternalOptimisationLanguage.g:1738:3: ( 'm' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12()); 
-                    // InternalOptimisationLanguage.g:1714:3: ( 'm' )
-                    // InternalOptimisationLanguage.g:1714:4: 'm'
+                    // InternalOptimisationLanguage.g:1739:3: ( 'm' )
+                    // InternalOptimisationLanguage.g:1739:4: 'm'
                     {
                     match(input,39,FOLLOW_2); 
 
@@ -5684,14 +5725,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 14 :
-                    // InternalOptimisationLanguage.g:1718:2: ( ( '\\u00B5' ) )
+                    // InternalOptimisationLanguage.g:1743:2: ( ( '\\u00B5' ) )
                     {
-                    // InternalOptimisationLanguage.g:1718:2: ( ( '\\u00B5' ) )
-                    // InternalOptimisationLanguage.g:1719:3: ( '\\u00B5' )
+                    // InternalOptimisationLanguage.g:1743:2: ( ( '\\u00B5' ) )
+                    // InternalOptimisationLanguage.g:1744:3: ( '\\u00B5' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13()); 
-                    // InternalOptimisationLanguage.g:1720:3: ( '\\u00B5' )
-                    // InternalOptimisationLanguage.g:1720:4: '\\u00B5'
+                    // InternalOptimisationLanguage.g:1745:3: ( '\\u00B5' )
+                    // InternalOptimisationLanguage.g:1745:4: '\\u00B5'
                     {
                     match(input,40,FOLLOW_2); 
 
@@ -5705,14 +5746,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 15 :
-                    // InternalOptimisationLanguage.g:1724:2: ( ( 'n' ) )
+                    // InternalOptimisationLanguage.g:1749:2: ( ( 'n' ) )
                     {
-                    // InternalOptimisationLanguage.g:1724:2: ( ( 'n' ) )
-                    // InternalOptimisationLanguage.g:1725:3: ( 'n' )
+                    // InternalOptimisationLanguage.g:1749:2: ( ( 'n' ) )
+                    // InternalOptimisationLanguage.g:1750:3: ( 'n' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14()); 
-                    // InternalOptimisationLanguage.g:1726:3: ( 'n' )
-                    // InternalOptimisationLanguage.g:1726:4: 'n'
+                    // InternalOptimisationLanguage.g:1751:3: ( 'n' )
+                    // InternalOptimisationLanguage.g:1751:4: 'n'
                     {
                     match(input,41,FOLLOW_2); 
 
@@ -5726,14 +5767,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 16 :
-                    // InternalOptimisationLanguage.g:1730:2: ( ( 'p' ) )
+                    // InternalOptimisationLanguage.g:1755:2: ( ( 'p' ) )
                     {
-                    // InternalOptimisationLanguage.g:1730:2: ( ( 'p' ) )
-                    // InternalOptimisationLanguage.g:1731:3: ( 'p' )
+                    // InternalOptimisationLanguage.g:1755:2: ( ( 'p' ) )
+                    // InternalOptimisationLanguage.g:1756:3: ( 'p' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15()); 
-                    // InternalOptimisationLanguage.g:1732:3: ( 'p' )
-                    // InternalOptimisationLanguage.g:1732:4: 'p'
+                    // InternalOptimisationLanguage.g:1757:3: ( 'p' )
+                    // InternalOptimisationLanguage.g:1757:4: 'p'
                     {
                     match(input,42,FOLLOW_2); 
 
@@ -5747,14 +5788,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 17 :
-                    // InternalOptimisationLanguage.g:1736:2: ( ( 'f' ) )
+                    // InternalOptimisationLanguage.g:1761:2: ( ( 'f' ) )
                     {
-                    // InternalOptimisationLanguage.g:1736:2: ( ( 'f' ) )
-                    // InternalOptimisationLanguage.g:1737:3: ( 'f' )
+                    // InternalOptimisationLanguage.g:1761:2: ( ( 'f' ) )
+                    // InternalOptimisationLanguage.g:1762:3: ( 'f' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16()); 
-                    // InternalOptimisationLanguage.g:1738:3: ( 'f' )
-                    // InternalOptimisationLanguage.g:1738:4: 'f'
+                    // InternalOptimisationLanguage.g:1763:3: ( 'f' )
+                    // InternalOptimisationLanguage.g:1763:4: 'f'
                     {
                     match(input,43,FOLLOW_2); 
 
@@ -5768,14 +5809,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 18 :
-                    // InternalOptimisationLanguage.g:1742:2: ( ( 'a' ) )
+                    // InternalOptimisationLanguage.g:1767:2: ( ( 'a' ) )
                     {
-                    // InternalOptimisationLanguage.g:1742:2: ( ( 'a' ) )
-                    // InternalOptimisationLanguage.g:1743:3: ( 'a' )
+                    // InternalOptimisationLanguage.g:1767:2: ( ( 'a' ) )
+                    // InternalOptimisationLanguage.g:1768:3: ( 'a' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17()); 
-                    // InternalOptimisationLanguage.g:1744:3: ( 'a' )
-                    // InternalOptimisationLanguage.g:1744:4: 'a'
+                    // InternalOptimisationLanguage.g:1769:3: ( 'a' )
+                    // InternalOptimisationLanguage.g:1769:4: 'a'
                     {
                     match(input,44,FOLLOW_2); 
 
@@ -5789,14 +5830,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 19 :
-                    // InternalOptimisationLanguage.g:1748:2: ( ( 'z' ) )
+                    // InternalOptimisationLanguage.g:1773:2: ( ( 'z' ) )
                     {
-                    // InternalOptimisationLanguage.g:1748:2: ( ( 'z' ) )
-                    // InternalOptimisationLanguage.g:1749:3: ( 'z' )
+                    // InternalOptimisationLanguage.g:1773:2: ( ( 'z' ) )
+                    // InternalOptimisationLanguage.g:1774:3: ( 'z' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18()); 
-                    // InternalOptimisationLanguage.g:1750:3: ( 'z' )
-                    // InternalOptimisationLanguage.g:1750:4: 'z'
+                    // InternalOptimisationLanguage.g:1775:3: ( 'z' )
+                    // InternalOptimisationLanguage.g:1775:4: 'z'
                     {
                     match(input,45,FOLLOW_2); 
 
@@ -5810,14 +5851,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                     }
                     break;
                 case 20 :
-                    // InternalOptimisationLanguage.g:1754:2: ( ( 'y' ) )
+                    // InternalOptimisationLanguage.g:1779:2: ( ( 'y' ) )
                     {
-                    // InternalOptimisationLanguage.g:1754:2: ( ( 'y' ) )
-                    // InternalOptimisationLanguage.g:1755:3: ( 'y' )
+                    // InternalOptimisationLanguage.g:1779:2: ( ( 'y' ) )
+                    // InternalOptimisationLanguage.g:1780:3: ( 'y' )
                     {
                      before(grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19()); 
-                    // InternalOptimisationLanguage.g:1756:3: ( 'y' )
-                    // InternalOptimisationLanguage.g:1756:4: 'y'
+                    // InternalOptimisationLanguage.g:1781:3: ( 'y' )
+                    // InternalOptimisationLanguage.g:1781:4: 'y'
                     {
                     match(input,46,FOLLOW_2); 
 
@@ -5848,14 +5889,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__0"
-    // InternalOptimisationLanguage.g:1764:1: rule__OptimisationModelRule__Group__0 : rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1 ;
+    // InternalOptimisationLanguage.g:1789:1: rule__OptimisationModelRule__Group__0 : rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1 ;
     public final void rule__OptimisationModelRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1768:1: ( rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1 )
-            // InternalOptimisationLanguage.g:1769:2: rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1
+            // InternalOptimisationLanguage.g:1793:1: ( rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1 )
+            // InternalOptimisationLanguage.g:1794:2: rule__OptimisationModelRule__Group__0__Impl rule__OptimisationModelRule__Group__1
             {
             pushFollow(FOLLOW_3);
             rule__OptimisationModelRule__Group__0__Impl();
@@ -5886,20 +5927,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:1776:1: rule__OptimisationModelRule__Group__0__Impl : ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* ) ;
+    // InternalOptimisationLanguage.g:1801:1: rule__OptimisationModelRule__Group__0__Impl : ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* ) ;
     public final void rule__OptimisationModelRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1780:1: ( ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* ) )
-            // InternalOptimisationLanguage.g:1781:1: ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* )
+            // InternalOptimisationLanguage.g:1805:1: ( ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* ) )
+            // InternalOptimisationLanguage.g:1806:1: ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* )
             {
-            // InternalOptimisationLanguage.g:1781:1: ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* )
-            // InternalOptimisationLanguage.g:1782:2: ( rule__OptimisationModelRule__ImportsAssignment_0 )*
+            // InternalOptimisationLanguage.g:1806:1: ( ( rule__OptimisationModelRule__ImportsAssignment_0 )* )
+            // InternalOptimisationLanguage.g:1807:2: ( rule__OptimisationModelRule__ImportsAssignment_0 )*
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getImportsAssignment_0()); 
-            // InternalOptimisationLanguage.g:1783:2: ( rule__OptimisationModelRule__ImportsAssignment_0 )*
+            // InternalOptimisationLanguage.g:1808:2: ( rule__OptimisationModelRule__ImportsAssignment_0 )*
             loop12:
             do {
                 int alt12=2;
@@ -5912,7 +5953,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:1783:3: rule__OptimisationModelRule__ImportsAssignment_0
+            	    // InternalOptimisationLanguage.g:1808:3: rule__OptimisationModelRule__ImportsAssignment_0
             	    {
             	    pushFollow(FOLLOW_4);
             	    rule__OptimisationModelRule__ImportsAssignment_0();
@@ -5951,14 +5992,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__1"
-    // InternalOptimisationLanguage.g:1791:1: rule__OptimisationModelRule__Group__1 : rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2 ;
+    // InternalOptimisationLanguage.g:1816:1: rule__OptimisationModelRule__Group__1 : rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2 ;
     public final void rule__OptimisationModelRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1795:1: ( rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2 )
-            // InternalOptimisationLanguage.g:1796:2: rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2
+            // InternalOptimisationLanguage.g:1820:1: ( rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2 )
+            // InternalOptimisationLanguage.g:1821:2: rule__OptimisationModelRule__Group__1__Impl rule__OptimisationModelRule__Group__2
             {
             pushFollow(FOLLOW_3);
             rule__OptimisationModelRule__Group__1__Impl();
@@ -5989,20 +6030,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:1803:1: rule__OptimisationModelRule__Group__1__Impl : ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? ) ;
+    // InternalOptimisationLanguage.g:1828:1: rule__OptimisationModelRule__Group__1__Impl : ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? ) ;
     public final void rule__OptimisationModelRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1807:1: ( ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? ) )
-            // InternalOptimisationLanguage.g:1808:1: ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? )
+            // InternalOptimisationLanguage.g:1832:1: ( ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? ) )
+            // InternalOptimisationLanguage.g:1833:1: ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? )
             {
-            // InternalOptimisationLanguage.g:1808:1: ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? )
-            // InternalOptimisationLanguage.g:1809:2: ( rule__OptimisationModelRule__ProblemAssignment_1 )?
+            // InternalOptimisationLanguage.g:1833:1: ( ( rule__OptimisationModelRule__ProblemAssignment_1 )? )
+            // InternalOptimisationLanguage.g:1834:2: ( rule__OptimisationModelRule__ProblemAssignment_1 )?
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getProblemAssignment_1()); 
-            // InternalOptimisationLanguage.g:1810:2: ( rule__OptimisationModelRule__ProblemAssignment_1 )?
+            // InternalOptimisationLanguage.g:1835:2: ( rule__OptimisationModelRule__ProblemAssignment_1 )?
             int alt13=2;
             int LA13_0 = input.LA(1);
 
@@ -6011,7 +6052,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt13) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1810:3: rule__OptimisationModelRule__ProblemAssignment_1
+                    // InternalOptimisationLanguage.g:1835:3: rule__OptimisationModelRule__ProblemAssignment_1
                     {
                     pushFollow(FOLLOW_2);
                     rule__OptimisationModelRule__ProblemAssignment_1();
@@ -6047,14 +6088,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__2"
-    // InternalOptimisationLanguage.g:1818:1: rule__OptimisationModelRule__Group__2 : rule__OptimisationModelRule__Group__2__Impl ;
+    // InternalOptimisationLanguage.g:1843:1: rule__OptimisationModelRule__Group__2 : rule__OptimisationModelRule__Group__2__Impl ;
     public final void rule__OptimisationModelRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1822:1: ( rule__OptimisationModelRule__Group__2__Impl )
-            // InternalOptimisationLanguage.g:1823:2: rule__OptimisationModelRule__Group__2__Impl
+            // InternalOptimisationLanguage.g:1847:1: ( rule__OptimisationModelRule__Group__2__Impl )
+            // InternalOptimisationLanguage.g:1848:2: rule__OptimisationModelRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__OptimisationModelRule__Group__2__Impl();
@@ -6080,20 +6121,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:1829:1: rule__OptimisationModelRule__Group__2__Impl : ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? ) ;
+    // InternalOptimisationLanguage.g:1854:1: rule__OptimisationModelRule__Group__2__Impl : ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? ) ;
     public final void rule__OptimisationModelRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1833:1: ( ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? ) )
-            // InternalOptimisationLanguage.g:1834:1: ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? )
+            // InternalOptimisationLanguage.g:1858:1: ( ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? ) )
+            // InternalOptimisationLanguage.g:1859:1: ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? )
             {
-            // InternalOptimisationLanguage.g:1834:1: ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? )
-            // InternalOptimisationLanguage.g:1835:2: ( rule__OptimisationModelRule__AlgorithmAssignment_2 )?
+            // InternalOptimisationLanguage.g:1859:1: ( ( rule__OptimisationModelRule__AlgorithmAssignment_2 )? )
+            // InternalOptimisationLanguage.g:1860:2: ( rule__OptimisationModelRule__AlgorithmAssignment_2 )?
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getAlgorithmAssignment_2()); 
-            // InternalOptimisationLanguage.g:1836:2: ( rule__OptimisationModelRule__AlgorithmAssignment_2 )?
+            // InternalOptimisationLanguage.g:1861:2: ( rule__OptimisationModelRule__AlgorithmAssignment_2 )?
             int alt14=2;
             int LA14_0 = input.LA(1);
 
@@ -6102,7 +6143,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt14) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1836:3: rule__OptimisationModelRule__AlgorithmAssignment_2
+                    // InternalOptimisationLanguage.g:1861:3: rule__OptimisationModelRule__AlgorithmAssignment_2
                     {
                     pushFollow(FOLLOW_2);
                     rule__OptimisationModelRule__AlgorithmAssignment_2();
@@ -6138,14 +6179,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__0"
-    // InternalOptimisationLanguage.g:1845:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
+    // InternalOptimisationLanguage.g:1870:1: rule__ImportRule__Group__0 : rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 ;
     public final void rule__ImportRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1849:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
-            // InternalOptimisationLanguage.g:1850:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
+            // InternalOptimisationLanguage.g:1874:1: ( rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1 )
+            // InternalOptimisationLanguage.g:1875:2: rule__ImportRule__Group__0__Impl rule__ImportRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ImportRule__Group__0__Impl();
@@ -6176,17 +6217,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:1857:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
+    // InternalOptimisationLanguage.g:1882:1: rule__ImportRule__Group__0__Impl : ( 'import' ) ;
     public final void rule__ImportRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1861:1: ( ( 'import' ) )
-            // InternalOptimisationLanguage.g:1862:1: ( 'import' )
+            // InternalOptimisationLanguage.g:1886:1: ( ( 'import' ) )
+            // InternalOptimisationLanguage.g:1887:1: ( 'import' )
             {
-            // InternalOptimisationLanguage.g:1862:1: ( 'import' )
-            // InternalOptimisationLanguage.g:1863:2: 'import'
+            // InternalOptimisationLanguage.g:1887:1: ( 'import' )
+            // InternalOptimisationLanguage.g:1888:2: 'import'
             {
              before(grammarAccess.getImportRuleAccess().getImportKeyword_0()); 
             match(input,47,FOLLOW_2); 
@@ -6213,14 +6254,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__1"
-    // InternalOptimisationLanguage.g:1872:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
+    // InternalOptimisationLanguage.g:1897:1: rule__ImportRule__Group__1 : rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 ;
     public final void rule__ImportRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1876:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
-            // InternalOptimisationLanguage.g:1877:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
+            // InternalOptimisationLanguage.g:1901:1: ( rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2 )
+            // InternalOptimisationLanguage.g:1902:2: rule__ImportRule__Group__1__Impl rule__ImportRule__Group__2
             {
             pushFollow(FOLLOW_6);
             rule__ImportRule__Group__1__Impl();
@@ -6251,21 +6292,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:1884:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
+    // InternalOptimisationLanguage.g:1909:1: rule__ImportRule__Group__1__Impl : ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) ;
     public final void rule__ImportRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1888:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:1889:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalOptimisationLanguage.g:1913:1: ( ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:1914:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:1889:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
-            // InternalOptimisationLanguage.g:1890:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalOptimisationLanguage.g:1914:1: ( ( rule__ImportRule__ImportedNamespaceAssignment_1 ) )
+            // InternalOptimisationLanguage.g:1915:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
             {
              before(grammarAccess.getImportRuleAccess().getImportedNamespaceAssignment_1()); 
-            // InternalOptimisationLanguage.g:1891:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
-            // InternalOptimisationLanguage.g:1891:3: rule__ImportRule__ImportedNamespaceAssignment_1
+            // InternalOptimisationLanguage.g:1916:2: ( rule__ImportRule__ImportedNamespaceAssignment_1 )
+            // InternalOptimisationLanguage.g:1916:3: rule__ImportRule__ImportedNamespaceAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__ImportedNamespaceAssignment_1();
@@ -6298,14 +6339,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__2"
-    // InternalOptimisationLanguage.g:1899:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
+    // InternalOptimisationLanguage.g:1924:1: rule__ImportRule__Group__2 : rule__ImportRule__Group__2__Impl ;
     public final void rule__ImportRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1903:1: ( rule__ImportRule__Group__2__Impl )
-            // InternalOptimisationLanguage.g:1904:2: rule__ImportRule__Group__2__Impl
+            // InternalOptimisationLanguage.g:1928:1: ( rule__ImportRule__Group__2__Impl )
+            // InternalOptimisationLanguage.g:1929:2: rule__ImportRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ImportRule__Group__2__Impl();
@@ -6331,17 +6372,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:1910:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
+    // InternalOptimisationLanguage.g:1935:1: rule__ImportRule__Group__2__Impl : ( ';' ) ;
     public final void rule__ImportRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1914:1: ( ( ';' ) )
-            // InternalOptimisationLanguage.g:1915:1: ( ';' )
+            // InternalOptimisationLanguage.g:1939:1: ( ( ';' ) )
+            // InternalOptimisationLanguage.g:1940:1: ( ';' )
             {
-            // InternalOptimisationLanguage.g:1915:1: ( ';' )
-            // InternalOptimisationLanguage.g:1916:2: ';'
+            // InternalOptimisationLanguage.g:1940:1: ( ';' )
+            // InternalOptimisationLanguage.g:1941:2: ';'
             {
              before(grammarAccess.getImportRuleAccess().getSemicolonKeyword_2()); 
             match(input,48,FOLLOW_2); 
@@ -6368,14 +6409,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__0"
-    // InternalOptimisationLanguage.g:1926:1: rule__ProblemRule__Group__0 : rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1 ;
+    // InternalOptimisationLanguage.g:1951:1: rule__ProblemRule__Group__0 : rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1 ;
     public final void rule__ProblemRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1930:1: ( rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1 )
-            // InternalOptimisationLanguage.g:1931:2: rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1
+            // InternalOptimisationLanguage.g:1955:1: ( rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1 )
+            // InternalOptimisationLanguage.g:1956:2: rule__ProblemRule__Group__0__Impl rule__ProblemRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ProblemRule__Group__0__Impl();
@@ -6406,17 +6447,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:1938:1: rule__ProblemRule__Group__0__Impl : ( 'declare' ) ;
+    // InternalOptimisationLanguage.g:1963:1: rule__ProblemRule__Group__0__Impl : ( 'declare' ) ;
     public final void rule__ProblemRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1942:1: ( ( 'declare' ) )
-            // InternalOptimisationLanguage.g:1943:1: ( 'declare' )
+            // InternalOptimisationLanguage.g:1967:1: ( ( 'declare' ) )
+            // InternalOptimisationLanguage.g:1968:1: ( 'declare' )
             {
-            // InternalOptimisationLanguage.g:1943:1: ( 'declare' )
-            // InternalOptimisationLanguage.g:1944:2: 'declare'
+            // InternalOptimisationLanguage.g:1968:1: ( 'declare' )
+            // InternalOptimisationLanguage.g:1969:2: 'declare'
             {
              before(grammarAccess.getProblemRuleAccess().getDeclareKeyword_0()); 
             match(input,49,FOLLOW_2); 
@@ -6443,14 +6484,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__1"
-    // InternalOptimisationLanguage.g:1953:1: rule__ProblemRule__Group__1 : rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2 ;
+    // InternalOptimisationLanguage.g:1978:1: rule__ProblemRule__Group__1 : rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2 ;
     public final void rule__ProblemRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1957:1: ( rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2 )
-            // InternalOptimisationLanguage.g:1958:2: rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2
+            // InternalOptimisationLanguage.g:1982:1: ( rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2 )
+            // InternalOptimisationLanguage.g:1983:2: rule__ProblemRule__Group__1__Impl rule__ProblemRule__Group__2
             {
             pushFollow(FOLLOW_7);
             rule__ProblemRule__Group__1__Impl();
@@ -6481,21 +6522,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:1965:1: rule__ProblemRule__Group__1__Impl : ( ( rule__ProblemRule__NameAssignment_1 ) ) ;
+    // InternalOptimisationLanguage.g:1990:1: rule__ProblemRule__Group__1__Impl : ( ( rule__ProblemRule__NameAssignment_1 ) ) ;
     public final void rule__ProblemRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1969:1: ( ( ( rule__ProblemRule__NameAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:1970:1: ( ( rule__ProblemRule__NameAssignment_1 ) )
+            // InternalOptimisationLanguage.g:1994:1: ( ( ( rule__ProblemRule__NameAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:1995:1: ( ( rule__ProblemRule__NameAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:1970:1: ( ( rule__ProblemRule__NameAssignment_1 ) )
-            // InternalOptimisationLanguage.g:1971:2: ( rule__ProblemRule__NameAssignment_1 )
+            // InternalOptimisationLanguage.g:1995:1: ( ( rule__ProblemRule__NameAssignment_1 ) )
+            // InternalOptimisationLanguage.g:1996:2: ( rule__ProblemRule__NameAssignment_1 )
             {
              before(grammarAccess.getProblemRuleAccess().getNameAssignment_1()); 
-            // InternalOptimisationLanguage.g:1972:2: ( rule__ProblemRule__NameAssignment_1 )
-            // InternalOptimisationLanguage.g:1972:3: rule__ProblemRule__NameAssignment_1
+            // InternalOptimisationLanguage.g:1997:2: ( rule__ProblemRule__NameAssignment_1 )
+            // InternalOptimisationLanguage.g:1997:3: rule__ProblemRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ProblemRule__NameAssignment_1();
@@ -6528,14 +6569,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__2"
-    // InternalOptimisationLanguage.g:1980:1: rule__ProblemRule__Group__2 : rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3 ;
+    // InternalOptimisationLanguage.g:2005:1: rule__ProblemRule__Group__2 : rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3 ;
     public final void rule__ProblemRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1984:1: ( rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3 )
-            // InternalOptimisationLanguage.g:1985:2: rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3
+            // InternalOptimisationLanguage.g:2009:1: ( rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3 )
+            // InternalOptimisationLanguage.g:2010:2: rule__ProblemRule__Group__2__Impl rule__ProblemRule__Group__3
             {
             pushFollow(FOLLOW_5);
             rule__ProblemRule__Group__2__Impl();
@@ -6566,17 +6607,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:1992:1: rule__ProblemRule__Group__2__Impl : ( 'as' ) ;
+    // InternalOptimisationLanguage.g:2017:1: rule__ProblemRule__Group__2__Impl : ( 'as' ) ;
     public final void rule__ProblemRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:1996:1: ( ( 'as' ) )
-            // InternalOptimisationLanguage.g:1997:1: ( 'as' )
+            // InternalOptimisationLanguage.g:2021:1: ( ( 'as' ) )
+            // InternalOptimisationLanguage.g:2022:1: ( 'as' )
             {
-            // InternalOptimisationLanguage.g:1997:1: ( 'as' )
-            // InternalOptimisationLanguage.g:1998:2: 'as'
+            // InternalOptimisationLanguage.g:2022:1: ( 'as' )
+            // InternalOptimisationLanguage.g:2023:2: 'as'
             {
              before(grammarAccess.getProblemRuleAccess().getAsKeyword_2()); 
             match(input,50,FOLLOW_2); 
@@ -6603,14 +6644,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__3"
-    // InternalOptimisationLanguage.g:2007:1: rule__ProblemRule__Group__3 : rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4 ;
+    // InternalOptimisationLanguage.g:2032:1: rule__ProblemRule__Group__3 : rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4 ;
     public final void rule__ProblemRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2011:1: ( rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4 )
-            // InternalOptimisationLanguage.g:2012:2: rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4
+            // InternalOptimisationLanguage.g:2036:1: ( rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4 )
+            // InternalOptimisationLanguage.g:2037:2: rule__ProblemRule__Group__3__Impl rule__ProblemRule__Group__4
             {
             pushFollow(FOLLOW_8);
             rule__ProblemRule__Group__3__Impl();
@@ -6641,21 +6682,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:2019:1: rule__ProblemRule__Group__3__Impl : ( ( rule__ProblemRule__ProblemAssignment_3 ) ) ;
+    // InternalOptimisationLanguage.g:2044:1: rule__ProblemRule__Group__3__Impl : ( ( rule__ProblemRule__ProblemAssignment_3 ) ) ;
     public final void rule__ProblemRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2023:1: ( ( ( rule__ProblemRule__ProblemAssignment_3 ) ) )
-            // InternalOptimisationLanguage.g:2024:1: ( ( rule__ProblemRule__ProblemAssignment_3 ) )
+            // InternalOptimisationLanguage.g:2048:1: ( ( ( rule__ProblemRule__ProblemAssignment_3 ) ) )
+            // InternalOptimisationLanguage.g:2049:1: ( ( rule__ProblemRule__ProblemAssignment_3 ) )
             {
-            // InternalOptimisationLanguage.g:2024:1: ( ( rule__ProblemRule__ProblemAssignment_3 ) )
-            // InternalOptimisationLanguage.g:2025:2: ( rule__ProblemRule__ProblemAssignment_3 )
+            // InternalOptimisationLanguage.g:2049:1: ( ( rule__ProblemRule__ProblemAssignment_3 ) )
+            // InternalOptimisationLanguage.g:2050:2: ( rule__ProblemRule__ProblemAssignment_3 )
             {
              before(grammarAccess.getProblemRuleAccess().getProblemAssignment_3()); 
-            // InternalOptimisationLanguage.g:2026:2: ( rule__ProblemRule__ProblemAssignment_3 )
-            // InternalOptimisationLanguage.g:2026:3: rule__ProblemRule__ProblemAssignment_3
+            // InternalOptimisationLanguage.g:2051:2: ( rule__ProblemRule__ProblemAssignment_3 )
+            // InternalOptimisationLanguage.g:2051:3: rule__ProblemRule__ProblemAssignment_3
             {
             pushFollow(FOLLOW_2);
             rule__ProblemRule__ProblemAssignment_3();
@@ -6688,14 +6729,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__4"
-    // InternalOptimisationLanguage.g:2034:1: rule__ProblemRule__Group__4 : rule__ProblemRule__Group__4__Impl ;
+    // InternalOptimisationLanguage.g:2059:1: rule__ProblemRule__Group__4 : rule__ProblemRule__Group__4__Impl ;
     public final void rule__ProblemRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2038:1: ( rule__ProblemRule__Group__4__Impl )
-            // InternalOptimisationLanguage.g:2039:2: rule__ProblemRule__Group__4__Impl
+            // InternalOptimisationLanguage.g:2063:1: ( rule__ProblemRule__Group__4__Impl )
+            // InternalOptimisationLanguage.g:2064:2: rule__ProblemRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProblemRule__Group__4__Impl();
@@ -6721,20 +6762,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group__4__Impl"
-    // InternalOptimisationLanguage.g:2045:1: rule__ProblemRule__Group__4__Impl : ( ( rule__ProblemRule__Group_4__0 )? ) ;
+    // InternalOptimisationLanguage.g:2070:1: rule__ProblemRule__Group__4__Impl : ( ( rule__ProblemRule__Group_4__0 )? ) ;
     public final void rule__ProblemRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2049:1: ( ( ( rule__ProblemRule__Group_4__0 )? ) )
-            // InternalOptimisationLanguage.g:2050:1: ( ( rule__ProblemRule__Group_4__0 )? )
+            // InternalOptimisationLanguage.g:2074:1: ( ( ( rule__ProblemRule__Group_4__0 )? ) )
+            // InternalOptimisationLanguage.g:2075:1: ( ( rule__ProblemRule__Group_4__0 )? )
             {
-            // InternalOptimisationLanguage.g:2050:1: ( ( rule__ProblemRule__Group_4__0 )? )
-            // InternalOptimisationLanguage.g:2051:2: ( rule__ProblemRule__Group_4__0 )?
+            // InternalOptimisationLanguage.g:2075:1: ( ( rule__ProblemRule__Group_4__0 )? )
+            // InternalOptimisationLanguage.g:2076:2: ( rule__ProblemRule__Group_4__0 )?
             {
              before(grammarAccess.getProblemRuleAccess().getGroup_4()); 
-            // InternalOptimisationLanguage.g:2052:2: ( rule__ProblemRule__Group_4__0 )?
+            // InternalOptimisationLanguage.g:2077:2: ( rule__ProblemRule__Group_4__0 )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -6743,7 +6784,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt15) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2052:3: rule__ProblemRule__Group_4__0
+                    // InternalOptimisationLanguage.g:2077:3: rule__ProblemRule__Group_4__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ProblemRule__Group_4__0();
@@ -6779,14 +6820,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__0"
-    // InternalOptimisationLanguage.g:2061:1: rule__ProblemRule__Group_4__0 : rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1 ;
+    // InternalOptimisationLanguage.g:2086:1: rule__ProblemRule__Group_4__0 : rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1 ;
     public final void rule__ProblemRule__Group_4__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2065:1: ( rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1 )
-            // InternalOptimisationLanguage.g:2066:2: rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1
+            // InternalOptimisationLanguage.g:2090:1: ( rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1 )
+            // InternalOptimisationLanguage.g:2091:2: rule__ProblemRule__Group_4__0__Impl rule__ProblemRule__Group_4__1
             {
             pushFollow(FOLLOW_9);
             rule__ProblemRule__Group_4__0__Impl();
@@ -6817,17 +6858,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__0__Impl"
-    // InternalOptimisationLanguage.g:2073:1: rule__ProblemRule__Group_4__0__Impl : ( 'documenting' ) ;
+    // InternalOptimisationLanguage.g:2098:1: rule__ProblemRule__Group_4__0__Impl : ( 'documenting' ) ;
     public final void rule__ProblemRule__Group_4__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2077:1: ( ( 'documenting' ) )
-            // InternalOptimisationLanguage.g:2078:1: ( 'documenting' )
+            // InternalOptimisationLanguage.g:2102:1: ( ( 'documenting' ) )
+            // InternalOptimisationLanguage.g:2103:1: ( 'documenting' )
             {
-            // InternalOptimisationLanguage.g:2078:1: ( 'documenting' )
-            // InternalOptimisationLanguage.g:2079:2: 'documenting'
+            // InternalOptimisationLanguage.g:2103:1: ( 'documenting' )
+            // InternalOptimisationLanguage.g:2104:2: 'documenting'
             {
              before(grammarAccess.getProblemRuleAccess().getDocumentingKeyword_4_0()); 
             match(input,51,FOLLOW_2); 
@@ -6854,14 +6895,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__1"
-    // InternalOptimisationLanguage.g:2088:1: rule__ProblemRule__Group_4__1 : rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2 ;
+    // InternalOptimisationLanguage.g:2113:1: rule__ProblemRule__Group_4__1 : rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2 ;
     public final void rule__ProblemRule__Group_4__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2092:1: ( rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2 )
-            // InternalOptimisationLanguage.g:2093:2: rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2
+            // InternalOptimisationLanguage.g:2117:1: ( rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2 )
+            // InternalOptimisationLanguage.g:2118:2: rule__ProblemRule__Group_4__1__Impl rule__ProblemRule__Group_4__2
             {
             pushFollow(FOLLOW_10);
             rule__ProblemRule__Group_4__1__Impl();
@@ -6892,17 +6933,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__1__Impl"
-    // InternalOptimisationLanguage.g:2100:1: rule__ProblemRule__Group_4__1__Impl : ( ':=' ) ;
+    // InternalOptimisationLanguage.g:2125:1: rule__ProblemRule__Group_4__1__Impl : ( ':=' ) ;
     public final void rule__ProblemRule__Group_4__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2104:1: ( ( ':=' ) )
-            // InternalOptimisationLanguage.g:2105:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2129:1: ( ( ':=' ) )
+            // InternalOptimisationLanguage.g:2130:1: ( ':=' )
             {
-            // InternalOptimisationLanguage.g:2105:1: ( ':=' )
-            // InternalOptimisationLanguage.g:2106:2: ':='
+            // InternalOptimisationLanguage.g:2130:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2131:2: ':='
             {
              before(grammarAccess.getProblemRuleAccess().getColonEqualsSignKeyword_4_1()); 
             match(input,52,FOLLOW_2); 
@@ -6929,14 +6970,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__2"
-    // InternalOptimisationLanguage.g:2115:1: rule__ProblemRule__Group_4__2 : rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3 ;
+    // InternalOptimisationLanguage.g:2140:1: rule__ProblemRule__Group_4__2 : rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3 ;
     public final void rule__ProblemRule__Group_4__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2119:1: ( rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3 )
-            // InternalOptimisationLanguage.g:2120:2: rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3
+            // InternalOptimisationLanguage.g:2144:1: ( rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3 )
+            // InternalOptimisationLanguage.g:2145:2: rule__ProblemRule__Group_4__2__Impl rule__ProblemRule__Group_4__3
             {
             pushFollow(FOLLOW_6);
             rule__ProblemRule__Group_4__2__Impl();
@@ -6967,21 +7008,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__2__Impl"
-    // InternalOptimisationLanguage.g:2127:1: rule__ProblemRule__Group_4__2__Impl : ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) ) ;
+    // InternalOptimisationLanguage.g:2152:1: rule__ProblemRule__Group_4__2__Impl : ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) ) ;
     public final void rule__ProblemRule__Group_4__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2131:1: ( ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) ) )
-            // InternalOptimisationLanguage.g:2132:1: ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) )
+            // InternalOptimisationLanguage.g:2156:1: ( ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) ) )
+            // InternalOptimisationLanguage.g:2157:1: ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) )
             {
-            // InternalOptimisationLanguage.g:2132:1: ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) )
-            // InternalOptimisationLanguage.g:2133:2: ( rule__ProblemRule__DocumentationAssignment_4_2 )
+            // InternalOptimisationLanguage.g:2157:1: ( ( rule__ProblemRule__DocumentationAssignment_4_2 ) )
+            // InternalOptimisationLanguage.g:2158:2: ( rule__ProblemRule__DocumentationAssignment_4_2 )
             {
              before(grammarAccess.getProblemRuleAccess().getDocumentationAssignment_4_2()); 
-            // InternalOptimisationLanguage.g:2134:2: ( rule__ProblemRule__DocumentationAssignment_4_2 )
-            // InternalOptimisationLanguage.g:2134:3: rule__ProblemRule__DocumentationAssignment_4_2
+            // InternalOptimisationLanguage.g:2159:2: ( rule__ProblemRule__DocumentationAssignment_4_2 )
+            // InternalOptimisationLanguage.g:2159:3: rule__ProblemRule__DocumentationAssignment_4_2
             {
             pushFollow(FOLLOW_2);
             rule__ProblemRule__DocumentationAssignment_4_2();
@@ -7014,14 +7055,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__3"
-    // InternalOptimisationLanguage.g:2142:1: rule__ProblemRule__Group_4__3 : rule__ProblemRule__Group_4__3__Impl ;
+    // InternalOptimisationLanguage.g:2167:1: rule__ProblemRule__Group_4__3 : rule__ProblemRule__Group_4__3__Impl ;
     public final void rule__ProblemRule__Group_4__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2146:1: ( rule__ProblemRule__Group_4__3__Impl )
-            // InternalOptimisationLanguage.g:2147:2: rule__ProblemRule__Group_4__3__Impl
+            // InternalOptimisationLanguage.g:2171:1: ( rule__ProblemRule__Group_4__3__Impl )
+            // InternalOptimisationLanguage.g:2172:2: rule__ProblemRule__Group_4__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ProblemRule__Group_4__3__Impl();
@@ -7047,17 +7088,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__Group_4__3__Impl"
-    // InternalOptimisationLanguage.g:2153:1: rule__ProblemRule__Group_4__3__Impl : ( ';' ) ;
+    // InternalOptimisationLanguage.g:2178:1: rule__ProblemRule__Group_4__3__Impl : ( ';' ) ;
     public final void rule__ProblemRule__Group_4__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2157:1: ( ( ';' ) )
-            // InternalOptimisationLanguage.g:2158:1: ( ';' )
+            // InternalOptimisationLanguage.g:2182:1: ( ( ';' ) )
+            // InternalOptimisationLanguage.g:2183:1: ( ';' )
             {
-            // InternalOptimisationLanguage.g:2158:1: ( ';' )
-            // InternalOptimisationLanguage.g:2159:2: ';'
+            // InternalOptimisationLanguage.g:2183:1: ( ';' )
+            // InternalOptimisationLanguage.g:2184:2: ';'
             {
              before(grammarAccess.getProblemRuleAccess().getSemicolonKeyword_4_3()); 
             match(input,48,FOLLOW_2); 
@@ -7084,14 +7125,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__0"
-    // InternalOptimisationLanguage.g:2169:1: rule__AlgorithmInstanceRule__Group__0 : rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1 ;
+    // InternalOptimisationLanguage.g:2194:1: rule__AlgorithmInstanceRule__Group__0 : rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1 ;
     public final void rule__AlgorithmInstanceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2173:1: ( rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1 )
-            // InternalOptimisationLanguage.g:2174:2: rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1
+            // InternalOptimisationLanguage.g:2198:1: ( rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1 )
+            // InternalOptimisationLanguage.g:2199:2: rule__AlgorithmInstanceRule__Group__0__Impl rule__AlgorithmInstanceRule__Group__1
             {
             pushFollow(FOLLOW_11);
             rule__AlgorithmInstanceRule__Group__0__Impl();
@@ -7122,17 +7163,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:2181:1: rule__AlgorithmInstanceRule__Group__0__Impl : ( 'instance' ) ;
+    // InternalOptimisationLanguage.g:2206:1: rule__AlgorithmInstanceRule__Group__0__Impl : ( 'instance' ) ;
     public final void rule__AlgorithmInstanceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2185:1: ( ( 'instance' ) )
-            // InternalOptimisationLanguage.g:2186:1: ( 'instance' )
+            // InternalOptimisationLanguage.g:2210:1: ( ( 'instance' ) )
+            // InternalOptimisationLanguage.g:2211:1: ( 'instance' )
             {
-            // InternalOptimisationLanguage.g:2186:1: ( 'instance' )
-            // InternalOptimisationLanguage.g:2187:2: 'instance'
+            // InternalOptimisationLanguage.g:2211:1: ( 'instance' )
+            // InternalOptimisationLanguage.g:2212:2: 'instance'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getInstanceKeyword_0()); 
             match(input,53,FOLLOW_2); 
@@ -7159,14 +7200,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__1"
-    // InternalOptimisationLanguage.g:2196:1: rule__AlgorithmInstanceRule__Group__1 : rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2 ;
+    // InternalOptimisationLanguage.g:2221:1: rule__AlgorithmInstanceRule__Group__1 : rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2 ;
     public final void rule__AlgorithmInstanceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2200:1: ( rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2 )
-            // InternalOptimisationLanguage.g:2201:2: rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2
+            // InternalOptimisationLanguage.g:2225:1: ( rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2 )
+            // InternalOptimisationLanguage.g:2226:2: rule__AlgorithmInstanceRule__Group__1__Impl rule__AlgorithmInstanceRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__AlgorithmInstanceRule__Group__1__Impl();
@@ -7197,17 +7238,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:2208:1: rule__AlgorithmInstanceRule__Group__1__Impl : ( 'for' ) ;
+    // InternalOptimisationLanguage.g:2233:1: rule__AlgorithmInstanceRule__Group__1__Impl : ( 'for' ) ;
     public final void rule__AlgorithmInstanceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2212:1: ( ( 'for' ) )
-            // InternalOptimisationLanguage.g:2213:1: ( 'for' )
+            // InternalOptimisationLanguage.g:2237:1: ( ( 'for' ) )
+            // InternalOptimisationLanguage.g:2238:1: ( 'for' )
             {
-            // InternalOptimisationLanguage.g:2213:1: ( 'for' )
-            // InternalOptimisationLanguage.g:2214:2: 'for'
+            // InternalOptimisationLanguage.g:2238:1: ( 'for' )
+            // InternalOptimisationLanguage.g:2239:2: 'for'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getForKeyword_1()); 
             match(input,54,FOLLOW_2); 
@@ -7234,14 +7275,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__2"
-    // InternalOptimisationLanguage.g:2223:1: rule__AlgorithmInstanceRule__Group__2 : rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3 ;
+    // InternalOptimisationLanguage.g:2248:1: rule__AlgorithmInstanceRule__Group__2 : rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3 ;
     public final void rule__AlgorithmInstanceRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2227:1: ( rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3 )
-            // InternalOptimisationLanguage.g:2228:2: rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3
+            // InternalOptimisationLanguage.g:2252:1: ( rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3 )
+            // InternalOptimisationLanguage.g:2253:2: rule__AlgorithmInstanceRule__Group__2__Impl rule__AlgorithmInstanceRule__Group__3
             {
             pushFollow(FOLLOW_12);
             rule__AlgorithmInstanceRule__Group__2__Impl();
@@ -7272,21 +7313,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:2235:1: rule__AlgorithmInstanceRule__Group__2__Impl : ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) ) ;
+    // InternalOptimisationLanguage.g:2260:1: rule__AlgorithmInstanceRule__Group__2__Impl : ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) ) ;
     public final void rule__AlgorithmInstanceRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2239:1: ( ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) ) )
-            // InternalOptimisationLanguage.g:2240:1: ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) )
+            // InternalOptimisationLanguage.g:2264:1: ( ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:2265:1: ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:2240:1: ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) )
-            // InternalOptimisationLanguage.g:2241:2: ( rule__AlgorithmInstanceRule__ProblemAssignment_2 )
+            // InternalOptimisationLanguage.g:2265:1: ( ( rule__AlgorithmInstanceRule__ProblemAssignment_2 ) )
+            // InternalOptimisationLanguage.g:2266:2: ( rule__AlgorithmInstanceRule__ProblemAssignment_2 )
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemAssignment_2()); 
-            // InternalOptimisationLanguage.g:2242:2: ( rule__AlgorithmInstanceRule__ProblemAssignment_2 )
-            // InternalOptimisationLanguage.g:2242:3: rule__AlgorithmInstanceRule__ProblemAssignment_2
+            // InternalOptimisationLanguage.g:2267:2: ( rule__AlgorithmInstanceRule__ProblemAssignment_2 )
+            // InternalOptimisationLanguage.g:2267:3: rule__AlgorithmInstanceRule__ProblemAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AlgorithmInstanceRule__ProblemAssignment_2();
@@ -7319,14 +7360,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__3"
-    // InternalOptimisationLanguage.g:2250:1: rule__AlgorithmInstanceRule__Group__3 : rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4 ;
+    // InternalOptimisationLanguage.g:2275:1: rule__AlgorithmInstanceRule__Group__3 : rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4 ;
     public final void rule__AlgorithmInstanceRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2254:1: ( rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4 )
-            // InternalOptimisationLanguage.g:2255:2: rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4
+            // InternalOptimisationLanguage.g:2279:1: ( rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4 )
+            // InternalOptimisationLanguage.g:2280:2: rule__AlgorithmInstanceRule__Group__3__Impl rule__AlgorithmInstanceRule__Group__4
             {
             pushFollow(FOLLOW_13);
             rule__AlgorithmInstanceRule__Group__3__Impl();
@@ -7357,17 +7398,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:2262:1: rule__AlgorithmInstanceRule__Group__3__Impl : ( 'with' ) ;
+    // InternalOptimisationLanguage.g:2287:1: rule__AlgorithmInstanceRule__Group__3__Impl : ( 'with' ) ;
     public final void rule__AlgorithmInstanceRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2266:1: ( ( 'with' ) )
-            // InternalOptimisationLanguage.g:2267:1: ( 'with' )
+            // InternalOptimisationLanguage.g:2291:1: ( ( 'with' ) )
+            // InternalOptimisationLanguage.g:2292:1: ( 'with' )
             {
-            // InternalOptimisationLanguage.g:2267:1: ( 'with' )
-            // InternalOptimisationLanguage.g:2268:2: 'with'
+            // InternalOptimisationLanguage.g:2292:1: ( 'with' )
+            // InternalOptimisationLanguage.g:2293:2: 'with'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getWithKeyword_3()); 
             match(input,55,FOLLOW_2); 
@@ -7394,14 +7435,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__4"
-    // InternalOptimisationLanguage.g:2277:1: rule__AlgorithmInstanceRule__Group__4 : rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5 ;
+    // InternalOptimisationLanguage.g:2302:1: rule__AlgorithmInstanceRule__Group__4 : rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5 ;
     public final void rule__AlgorithmInstanceRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2281:1: ( rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5 )
-            // InternalOptimisationLanguage.g:2282:2: rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5
+            // InternalOptimisationLanguage.g:2306:1: ( rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5 )
+            // InternalOptimisationLanguage.g:2307:2: rule__AlgorithmInstanceRule__Group__4__Impl rule__AlgorithmInstanceRule__Group__5
             {
             pushFollow(FOLLOW_5);
             rule__AlgorithmInstanceRule__Group__4__Impl();
@@ -7432,17 +7473,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__4__Impl"
-    // InternalOptimisationLanguage.g:2289:1: rule__AlgorithmInstanceRule__Group__4__Impl : ( 'algorithm' ) ;
+    // InternalOptimisationLanguage.g:2314:1: rule__AlgorithmInstanceRule__Group__4__Impl : ( 'algorithm' ) ;
     public final void rule__AlgorithmInstanceRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2293:1: ( ( 'algorithm' ) )
-            // InternalOptimisationLanguage.g:2294:1: ( 'algorithm' )
+            // InternalOptimisationLanguage.g:2318:1: ( ( 'algorithm' ) )
+            // InternalOptimisationLanguage.g:2319:1: ( 'algorithm' )
             {
-            // InternalOptimisationLanguage.g:2294:1: ( 'algorithm' )
-            // InternalOptimisationLanguage.g:2295:2: 'algorithm'
+            // InternalOptimisationLanguage.g:2319:1: ( 'algorithm' )
+            // InternalOptimisationLanguage.g:2320:2: 'algorithm'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getAlgorithmKeyword_4()); 
             match(input,56,FOLLOW_2); 
@@ -7469,14 +7510,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__5"
-    // InternalOptimisationLanguage.g:2304:1: rule__AlgorithmInstanceRule__Group__5 : rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6 ;
+    // InternalOptimisationLanguage.g:2329:1: rule__AlgorithmInstanceRule__Group__5 : rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6 ;
     public final void rule__AlgorithmInstanceRule__Group__5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2308:1: ( rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6 )
-            // InternalOptimisationLanguage.g:2309:2: rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6
+            // InternalOptimisationLanguage.g:2333:1: ( rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6 )
+            // InternalOptimisationLanguage.g:2334:2: rule__AlgorithmInstanceRule__Group__5__Impl rule__AlgorithmInstanceRule__Group__6
             {
             pushFollow(FOLLOW_8);
             rule__AlgorithmInstanceRule__Group__5__Impl();
@@ -7507,21 +7548,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__5__Impl"
-    // InternalOptimisationLanguage.g:2316:1: rule__AlgorithmInstanceRule__Group__5__Impl : ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) ) ;
+    // InternalOptimisationLanguage.g:2341:1: rule__AlgorithmInstanceRule__Group__5__Impl : ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) ) ;
     public final void rule__AlgorithmInstanceRule__Group__5__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2320:1: ( ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) ) )
-            // InternalOptimisationLanguage.g:2321:1: ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) )
+            // InternalOptimisationLanguage.g:2345:1: ( ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) ) )
+            // InternalOptimisationLanguage.g:2346:1: ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) )
             {
-            // InternalOptimisationLanguage.g:2321:1: ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) )
-            // InternalOptimisationLanguage.g:2322:2: ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 )
+            // InternalOptimisationLanguage.g:2346:1: ( ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 ) )
+            // InternalOptimisationLanguage.g:2347:2: ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 )
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getAlgorithmAssignment_5()); 
-            // InternalOptimisationLanguage.g:2323:2: ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 )
-            // InternalOptimisationLanguage.g:2323:3: rule__AlgorithmInstanceRule__AlgorithmAssignment_5
+            // InternalOptimisationLanguage.g:2348:2: ( rule__AlgorithmInstanceRule__AlgorithmAssignment_5 )
+            // InternalOptimisationLanguage.g:2348:3: rule__AlgorithmInstanceRule__AlgorithmAssignment_5
             {
             pushFollow(FOLLOW_2);
             rule__AlgorithmInstanceRule__AlgorithmAssignment_5();
@@ -7554,14 +7595,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__6"
-    // InternalOptimisationLanguage.g:2331:1: rule__AlgorithmInstanceRule__Group__6 : rule__AlgorithmInstanceRule__Group__6__Impl ;
+    // InternalOptimisationLanguage.g:2356:1: rule__AlgorithmInstanceRule__Group__6 : rule__AlgorithmInstanceRule__Group__6__Impl ;
     public final void rule__AlgorithmInstanceRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2335:1: ( rule__AlgorithmInstanceRule__Group__6__Impl )
-            // InternalOptimisationLanguage.g:2336:2: rule__AlgorithmInstanceRule__Group__6__Impl
+            // InternalOptimisationLanguage.g:2360:1: ( rule__AlgorithmInstanceRule__Group__6__Impl )
+            // InternalOptimisationLanguage.g:2361:2: rule__AlgorithmInstanceRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AlgorithmInstanceRule__Group__6__Impl();
@@ -7587,20 +7628,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group__6__Impl"
-    // InternalOptimisationLanguage.g:2342:1: rule__AlgorithmInstanceRule__Group__6__Impl : ( ( rule__AlgorithmInstanceRule__Group_6__0 )? ) ;
+    // InternalOptimisationLanguage.g:2367:1: rule__AlgorithmInstanceRule__Group__6__Impl : ( ( rule__AlgorithmInstanceRule__Group_6__0 )? ) ;
     public final void rule__AlgorithmInstanceRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2346:1: ( ( ( rule__AlgorithmInstanceRule__Group_6__0 )? ) )
-            // InternalOptimisationLanguage.g:2347:1: ( ( rule__AlgorithmInstanceRule__Group_6__0 )? )
+            // InternalOptimisationLanguage.g:2371:1: ( ( ( rule__AlgorithmInstanceRule__Group_6__0 )? ) )
+            // InternalOptimisationLanguage.g:2372:1: ( ( rule__AlgorithmInstanceRule__Group_6__0 )? )
             {
-            // InternalOptimisationLanguage.g:2347:1: ( ( rule__AlgorithmInstanceRule__Group_6__0 )? )
-            // InternalOptimisationLanguage.g:2348:2: ( rule__AlgorithmInstanceRule__Group_6__0 )?
+            // InternalOptimisationLanguage.g:2372:1: ( ( rule__AlgorithmInstanceRule__Group_6__0 )? )
+            // InternalOptimisationLanguage.g:2373:2: ( rule__AlgorithmInstanceRule__Group_6__0 )?
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getGroup_6()); 
-            // InternalOptimisationLanguage.g:2349:2: ( rule__AlgorithmInstanceRule__Group_6__0 )?
+            // InternalOptimisationLanguage.g:2374:2: ( rule__AlgorithmInstanceRule__Group_6__0 )?
             int alt16=2;
             int LA16_0 = input.LA(1);
 
@@ -7609,7 +7650,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt16) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2349:3: rule__AlgorithmInstanceRule__Group_6__0
+                    // InternalOptimisationLanguage.g:2374:3: rule__AlgorithmInstanceRule__Group_6__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AlgorithmInstanceRule__Group_6__0();
@@ -7645,14 +7686,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__0"
-    // InternalOptimisationLanguage.g:2358:1: rule__AlgorithmInstanceRule__Group_6__0 : rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1 ;
+    // InternalOptimisationLanguage.g:2383:1: rule__AlgorithmInstanceRule__Group_6__0 : rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1 ;
     public final void rule__AlgorithmInstanceRule__Group_6__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2362:1: ( rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1 )
-            // InternalOptimisationLanguage.g:2363:2: rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1
+            // InternalOptimisationLanguage.g:2387:1: ( rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1 )
+            // InternalOptimisationLanguage.g:2388:2: rule__AlgorithmInstanceRule__Group_6__0__Impl rule__AlgorithmInstanceRule__Group_6__1
             {
             pushFollow(FOLLOW_9);
             rule__AlgorithmInstanceRule__Group_6__0__Impl();
@@ -7683,17 +7724,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__0__Impl"
-    // InternalOptimisationLanguage.g:2370:1: rule__AlgorithmInstanceRule__Group_6__0__Impl : ( 'documenting' ) ;
+    // InternalOptimisationLanguage.g:2395:1: rule__AlgorithmInstanceRule__Group_6__0__Impl : ( 'documenting' ) ;
     public final void rule__AlgorithmInstanceRule__Group_6__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2374:1: ( ( 'documenting' ) )
-            // InternalOptimisationLanguage.g:2375:1: ( 'documenting' )
+            // InternalOptimisationLanguage.g:2399:1: ( ( 'documenting' ) )
+            // InternalOptimisationLanguage.g:2400:1: ( 'documenting' )
             {
-            // InternalOptimisationLanguage.g:2375:1: ( 'documenting' )
-            // InternalOptimisationLanguage.g:2376:2: 'documenting'
+            // InternalOptimisationLanguage.g:2400:1: ( 'documenting' )
+            // InternalOptimisationLanguage.g:2401:2: 'documenting'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getDocumentingKeyword_6_0()); 
             match(input,51,FOLLOW_2); 
@@ -7720,14 +7761,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__1"
-    // InternalOptimisationLanguage.g:2385:1: rule__AlgorithmInstanceRule__Group_6__1 : rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2 ;
+    // InternalOptimisationLanguage.g:2410:1: rule__AlgorithmInstanceRule__Group_6__1 : rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2 ;
     public final void rule__AlgorithmInstanceRule__Group_6__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2389:1: ( rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2 )
-            // InternalOptimisationLanguage.g:2390:2: rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2
+            // InternalOptimisationLanguage.g:2414:1: ( rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2 )
+            // InternalOptimisationLanguage.g:2415:2: rule__AlgorithmInstanceRule__Group_6__1__Impl rule__AlgorithmInstanceRule__Group_6__2
             {
             pushFollow(FOLLOW_10);
             rule__AlgorithmInstanceRule__Group_6__1__Impl();
@@ -7758,17 +7799,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__1__Impl"
-    // InternalOptimisationLanguage.g:2397:1: rule__AlgorithmInstanceRule__Group_6__1__Impl : ( ':=' ) ;
+    // InternalOptimisationLanguage.g:2422:1: rule__AlgorithmInstanceRule__Group_6__1__Impl : ( ':=' ) ;
     public final void rule__AlgorithmInstanceRule__Group_6__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2401:1: ( ( ':=' ) )
-            // InternalOptimisationLanguage.g:2402:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2426:1: ( ( ':=' ) )
+            // InternalOptimisationLanguage.g:2427:1: ( ':=' )
             {
-            // InternalOptimisationLanguage.g:2402:1: ( ':=' )
-            // InternalOptimisationLanguage.g:2403:2: ':='
+            // InternalOptimisationLanguage.g:2427:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2428:2: ':='
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getColonEqualsSignKeyword_6_1()); 
             match(input,52,FOLLOW_2); 
@@ -7795,14 +7836,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__2"
-    // InternalOptimisationLanguage.g:2412:1: rule__AlgorithmInstanceRule__Group_6__2 : rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3 ;
+    // InternalOptimisationLanguage.g:2437:1: rule__AlgorithmInstanceRule__Group_6__2 : rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3 ;
     public final void rule__AlgorithmInstanceRule__Group_6__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2416:1: ( rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3 )
-            // InternalOptimisationLanguage.g:2417:2: rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3
+            // InternalOptimisationLanguage.g:2441:1: ( rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3 )
+            // InternalOptimisationLanguage.g:2442:2: rule__AlgorithmInstanceRule__Group_6__2__Impl rule__AlgorithmInstanceRule__Group_6__3
             {
             pushFollow(FOLLOW_6);
             rule__AlgorithmInstanceRule__Group_6__2__Impl();
@@ -7833,21 +7874,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__2__Impl"
-    // InternalOptimisationLanguage.g:2424:1: rule__AlgorithmInstanceRule__Group_6__2__Impl : ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) ) ;
+    // InternalOptimisationLanguage.g:2449:1: rule__AlgorithmInstanceRule__Group_6__2__Impl : ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) ) ;
     public final void rule__AlgorithmInstanceRule__Group_6__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2428:1: ( ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) ) )
-            // InternalOptimisationLanguage.g:2429:1: ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) )
+            // InternalOptimisationLanguage.g:2453:1: ( ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) ) )
+            // InternalOptimisationLanguage.g:2454:1: ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) )
             {
-            // InternalOptimisationLanguage.g:2429:1: ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) )
-            // InternalOptimisationLanguage.g:2430:2: ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 )
+            // InternalOptimisationLanguage.g:2454:1: ( ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 ) )
+            // InternalOptimisationLanguage.g:2455:2: ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 )
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getDocumentationAssignment_6_2()); 
-            // InternalOptimisationLanguage.g:2431:2: ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 )
-            // InternalOptimisationLanguage.g:2431:3: rule__AlgorithmInstanceRule__DocumentationAssignment_6_2
+            // InternalOptimisationLanguage.g:2456:2: ( rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 )
+            // InternalOptimisationLanguage.g:2456:3: rule__AlgorithmInstanceRule__DocumentationAssignment_6_2
             {
             pushFollow(FOLLOW_2);
             rule__AlgorithmInstanceRule__DocumentationAssignment_6_2();
@@ -7880,14 +7921,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__3"
-    // InternalOptimisationLanguage.g:2439:1: rule__AlgorithmInstanceRule__Group_6__3 : rule__AlgorithmInstanceRule__Group_6__3__Impl ;
+    // InternalOptimisationLanguage.g:2464:1: rule__AlgorithmInstanceRule__Group_6__3 : rule__AlgorithmInstanceRule__Group_6__3__Impl ;
     public final void rule__AlgorithmInstanceRule__Group_6__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2443:1: ( rule__AlgorithmInstanceRule__Group_6__3__Impl )
-            // InternalOptimisationLanguage.g:2444:2: rule__AlgorithmInstanceRule__Group_6__3__Impl
+            // InternalOptimisationLanguage.g:2468:1: ( rule__AlgorithmInstanceRule__Group_6__3__Impl )
+            // InternalOptimisationLanguage.g:2469:2: rule__AlgorithmInstanceRule__Group_6__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AlgorithmInstanceRule__Group_6__3__Impl();
@@ -7913,17 +7954,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__Group_6__3__Impl"
-    // InternalOptimisationLanguage.g:2450:1: rule__AlgorithmInstanceRule__Group_6__3__Impl : ( ';' ) ;
+    // InternalOptimisationLanguage.g:2475:1: rule__AlgorithmInstanceRule__Group_6__3__Impl : ( ';' ) ;
     public final void rule__AlgorithmInstanceRule__Group_6__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2454:1: ( ( ';' ) )
-            // InternalOptimisationLanguage.g:2455:1: ( ';' )
+            // InternalOptimisationLanguage.g:2479:1: ( ( ';' ) )
+            // InternalOptimisationLanguage.g:2480:1: ( ';' )
             {
-            // InternalOptimisationLanguage.g:2455:1: ( ';' )
-            // InternalOptimisationLanguage.g:2456:2: ';'
+            // InternalOptimisationLanguage.g:2480:1: ( ';' )
+            // InternalOptimisationLanguage.g:2481:2: ';'
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getSemicolonKeyword_6_3()); 
             match(input,48,FOLLOW_2); 
@@ -7950,14 +7991,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group__0"
-    // InternalOptimisationLanguage.g:2466:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
+    // InternalOptimisationLanguage.g:2491:1: rule__InstanceRule__Group__0 : rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 ;
     public final void rule__InstanceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2470:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
-            // InternalOptimisationLanguage.g:2471:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
+            // InternalOptimisationLanguage.g:2495:1: ( rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1 )
+            // InternalOptimisationLanguage.g:2496:2: rule__InstanceRule__Group__0__Impl rule__InstanceRule__Group__1
             {
             pushFollow(FOLLOW_14);
             rule__InstanceRule__Group__0__Impl();
@@ -7988,21 +8029,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:2478:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
+    // InternalOptimisationLanguage.g:2503:1: rule__InstanceRule__Group__0__Impl : ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) ;
     public final void rule__InstanceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2482:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:2483:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:2507:1: ( ( ( rule__InstanceRule__DefinitionAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:2508:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:2483:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
-            // InternalOptimisationLanguage.g:2484:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalOptimisationLanguage.g:2508:1: ( ( rule__InstanceRule__DefinitionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:2509:2: ( rule__InstanceRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionAssignment_0()); 
-            // InternalOptimisationLanguage.g:2485:2: ( rule__InstanceRule__DefinitionAssignment_0 )
-            // InternalOptimisationLanguage.g:2485:3: rule__InstanceRule__DefinitionAssignment_0
+            // InternalOptimisationLanguage.g:2510:2: ( rule__InstanceRule__DefinitionAssignment_0 )
+            // InternalOptimisationLanguage.g:2510:3: rule__InstanceRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__DefinitionAssignment_0();
@@ -8035,14 +8076,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group__1"
-    // InternalOptimisationLanguage.g:2493:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:2518:1: rule__InstanceRule__Group__1 : rule__InstanceRule__Group__1__Impl ;
     public final void rule__InstanceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2497:1: ( rule__InstanceRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:2498:2: rule__InstanceRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:2522:1: ( rule__InstanceRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:2523:2: rule__InstanceRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group__1__Impl();
@@ -8068,20 +8109,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:2504:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
+    // InternalOptimisationLanguage.g:2529:1: rule__InstanceRule__Group__1__Impl : ( ( rule__InstanceRule__Group_1__0 )? ) ;
     public final void rule__InstanceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2508:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
-            // InternalOptimisationLanguage.g:2509:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalOptimisationLanguage.g:2533:1: ( ( ( rule__InstanceRule__Group_1__0 )? ) )
+            // InternalOptimisationLanguage.g:2534:1: ( ( rule__InstanceRule__Group_1__0 )? )
             {
-            // InternalOptimisationLanguage.g:2509:1: ( ( rule__InstanceRule__Group_1__0 )? )
-            // InternalOptimisationLanguage.g:2510:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalOptimisationLanguage.g:2534:1: ( ( rule__InstanceRule__Group_1__0 )? )
+            // InternalOptimisationLanguage.g:2535:2: ( rule__InstanceRule__Group_1__0 )?
             {
              before(grammarAccess.getInstanceRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:2511:2: ( rule__InstanceRule__Group_1__0 )?
+            // InternalOptimisationLanguage.g:2536:2: ( rule__InstanceRule__Group_1__0 )?
             int alt17=2;
             int LA17_0 = input.LA(1);
 
@@ -8090,7 +8131,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
             switch (alt17) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2511:3: rule__InstanceRule__Group_1__0
+                    // InternalOptimisationLanguage.g:2536:3: rule__InstanceRule__Group_1__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__InstanceRule__Group_1__0();
@@ -8126,14 +8167,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0"
-    // InternalOptimisationLanguage.g:2520:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
+    // InternalOptimisationLanguage.g:2545:1: rule__InstanceRule__Group_1__0 : rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 ;
     public final void rule__InstanceRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2524:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:2525:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
+            // InternalOptimisationLanguage.g:2549:1: ( rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:2550:2: rule__InstanceRule__Group_1__0__Impl rule__InstanceRule__Group_1__1
             {
             pushFollow(FOLLOW_15);
             rule__InstanceRule__Group_1__0__Impl();
@@ -8164,17 +8205,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:2532:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
+    // InternalOptimisationLanguage.g:2557:1: rule__InstanceRule__Group_1__0__Impl : ( '{' ) ;
     public final void rule__InstanceRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2536:1: ( ( '{' ) )
-            // InternalOptimisationLanguage.g:2537:1: ( '{' )
+            // InternalOptimisationLanguage.g:2561:1: ( ( '{' ) )
+            // InternalOptimisationLanguage.g:2562:1: ( '{' )
             {
-            // InternalOptimisationLanguage.g:2537:1: ( '{' )
-            // InternalOptimisationLanguage.g:2538:2: '{'
+            // InternalOptimisationLanguage.g:2562:1: ( '{' )
+            // InternalOptimisationLanguage.g:2563:2: '{'
             {
              before(grammarAccess.getInstanceRuleAccess().getLeftCurlyBracketKeyword_1_0()); 
             match(input,57,FOLLOW_2); 
@@ -8201,14 +8242,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1"
-    // InternalOptimisationLanguage.g:2547:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
+    // InternalOptimisationLanguage.g:2572:1: rule__InstanceRule__Group_1__1 : rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 ;
     public final void rule__InstanceRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2551:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
-            // InternalOptimisationLanguage.g:2552:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
+            // InternalOptimisationLanguage.g:2576:1: ( rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2 )
+            // InternalOptimisationLanguage.g:2577:2: rule__InstanceRule__Group_1__1__Impl rule__InstanceRule__Group_1__2
             {
             pushFollow(FOLLOW_15);
             rule__InstanceRule__Group_1__1__Impl();
@@ -8239,20 +8280,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:2559:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
+    // InternalOptimisationLanguage.g:2584:1: rule__InstanceRule__Group_1__1__Impl : ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) ;
     public final void rule__InstanceRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2563:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
-            // InternalOptimisationLanguage.g:2564:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalOptimisationLanguage.g:2588:1: ( ( ( rule__InstanceRule__AttributesAssignment_1_1 )* ) )
+            // InternalOptimisationLanguage.g:2589:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
             {
-            // InternalOptimisationLanguage.g:2564:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
-            // InternalOptimisationLanguage.g:2565:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalOptimisationLanguage.g:2589:1: ( ( rule__InstanceRule__AttributesAssignment_1_1 )* )
+            // InternalOptimisationLanguage.g:2590:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:2566:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
+            // InternalOptimisationLanguage.g:2591:2: ( rule__InstanceRule__AttributesAssignment_1_1 )*
             loop18:
             do {
                 int alt18=2;
@@ -8265,7 +8306,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt18) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2566:3: rule__InstanceRule__AttributesAssignment_1_1
+            	    // InternalOptimisationLanguage.g:2591:3: rule__InstanceRule__AttributesAssignment_1_1
             	    {
             	    pushFollow(FOLLOW_16);
             	    rule__InstanceRule__AttributesAssignment_1_1();
@@ -8304,14 +8345,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2"
-    // InternalOptimisationLanguage.g:2574:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
+    // InternalOptimisationLanguage.g:2599:1: rule__InstanceRule__Group_1__2 : rule__InstanceRule__Group_1__2__Impl ;
     public final void rule__InstanceRule__Group_1__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2578:1: ( rule__InstanceRule__Group_1__2__Impl )
-            // InternalOptimisationLanguage.g:2579:2: rule__InstanceRule__Group_1__2__Impl
+            // InternalOptimisationLanguage.g:2603:1: ( rule__InstanceRule__Group_1__2__Impl )
+            // InternalOptimisationLanguage.g:2604:2: rule__InstanceRule__Group_1__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceRule__Group_1__2__Impl();
@@ -8337,17 +8378,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__Group_1__2__Impl"
-    // InternalOptimisationLanguage.g:2585:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
+    // InternalOptimisationLanguage.g:2610:1: rule__InstanceRule__Group_1__2__Impl : ( '}' ) ;
     public final void rule__InstanceRule__Group_1__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2589:1: ( ( '}' ) )
-            // InternalOptimisationLanguage.g:2590:1: ( '}' )
+            // InternalOptimisationLanguage.g:2614:1: ( ( '}' ) )
+            // InternalOptimisationLanguage.g:2615:1: ( '}' )
             {
-            // InternalOptimisationLanguage.g:2590:1: ( '}' )
-            // InternalOptimisationLanguage.g:2591:2: '}'
+            // InternalOptimisationLanguage.g:2615:1: ( '}' )
+            // InternalOptimisationLanguage.g:2616:2: '}'
             {
              before(grammarAccess.getInstanceRuleAccess().getRightCurlyBracketKeyword_1_2()); 
             match(input,58,FOLLOW_2); 
@@ -8374,14 +8415,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__0"
-    // InternalOptimisationLanguage.g:2601:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:2626:1: rule__AttributeRule__Group__0 : rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 ;
     public final void rule__AttributeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2605:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
-            // InternalOptimisationLanguage.g:2606:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
+            // InternalOptimisationLanguage.g:2630:1: ( rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1 )
+            // InternalOptimisationLanguage.g:2631:2: rule__AttributeRule__Group__0__Impl rule__AttributeRule__Group__1
             {
             pushFollow(FOLLOW_9);
             rule__AttributeRule__Group__0__Impl();
@@ -8412,21 +8453,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:2613:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
+    // InternalOptimisationLanguage.g:2638:1: rule__AttributeRule__Group__0__Impl : ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) ;
     public final void rule__AttributeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2617:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:2618:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:2642:1: ( ( ( rule__AttributeRule__DefinitionAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:2643:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:2618:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
-            // InternalOptimisationLanguage.g:2619:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalOptimisationLanguage.g:2643:1: ( ( rule__AttributeRule__DefinitionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:2644:2: ( rule__AttributeRule__DefinitionAssignment_0 )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAssignment_0()); 
-            // InternalOptimisationLanguage.g:2620:2: ( rule__AttributeRule__DefinitionAssignment_0 )
-            // InternalOptimisationLanguage.g:2620:3: rule__AttributeRule__DefinitionAssignment_0
+            // InternalOptimisationLanguage.g:2645:2: ( rule__AttributeRule__DefinitionAssignment_0 )
+            // InternalOptimisationLanguage.g:2645:3: rule__AttributeRule__DefinitionAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__DefinitionAssignment_0();
@@ -8459,14 +8500,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__1"
-    // InternalOptimisationLanguage.g:2628:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
+    // InternalOptimisationLanguage.g:2653:1: rule__AttributeRule__Group__1 : rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 ;
     public final void rule__AttributeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2632:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
-            // InternalOptimisationLanguage.g:2633:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
+            // InternalOptimisationLanguage.g:2657:1: ( rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2 )
+            // InternalOptimisationLanguage.g:2658:2: rule__AttributeRule__Group__1__Impl rule__AttributeRule__Group__2
             {
             pushFollow(FOLLOW_17);
             rule__AttributeRule__Group__1__Impl();
@@ -8497,17 +8538,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:2640:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
+    // InternalOptimisationLanguage.g:2665:1: rule__AttributeRule__Group__1__Impl : ( ':=' ) ;
     public final void rule__AttributeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2644:1: ( ( ':=' ) )
-            // InternalOptimisationLanguage.g:2645:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2669:1: ( ( ':=' ) )
+            // InternalOptimisationLanguage.g:2670:1: ( ':=' )
             {
-            // InternalOptimisationLanguage.g:2645:1: ( ':=' )
-            // InternalOptimisationLanguage.g:2646:2: ':='
+            // InternalOptimisationLanguage.g:2670:1: ( ':=' )
+            // InternalOptimisationLanguage.g:2671:2: ':='
             {
              before(grammarAccess.getAttributeRuleAccess().getColonEqualsSignKeyword_1()); 
             match(input,52,FOLLOW_2); 
@@ -8534,14 +8575,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__2"
-    // InternalOptimisationLanguage.g:2655:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
+    // InternalOptimisationLanguage.g:2680:1: rule__AttributeRule__Group__2 : rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 ;
     public final void rule__AttributeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2659:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
-            // InternalOptimisationLanguage.g:2660:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
+            // InternalOptimisationLanguage.g:2684:1: ( rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3 )
+            // InternalOptimisationLanguage.g:2685:2: rule__AttributeRule__Group__2__Impl rule__AttributeRule__Group__3
             {
             pushFollow(FOLLOW_6);
             rule__AttributeRule__Group__2__Impl();
@@ -8572,21 +8613,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:2667:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
+    // InternalOptimisationLanguage.g:2692:1: rule__AttributeRule__Group__2__Impl : ( ( rule__AttributeRule__ValueAssignment_2 ) ) ;
     public final void rule__AttributeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2671:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
-            // InternalOptimisationLanguage.g:2672:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalOptimisationLanguage.g:2696:1: ( ( ( rule__AttributeRule__ValueAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:2697:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:2672:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
-            // InternalOptimisationLanguage.g:2673:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalOptimisationLanguage.g:2697:1: ( ( rule__AttributeRule__ValueAssignment_2 ) )
+            // InternalOptimisationLanguage.g:2698:2: ( rule__AttributeRule__ValueAssignment_2 )
             {
              before(grammarAccess.getAttributeRuleAccess().getValueAssignment_2()); 
-            // InternalOptimisationLanguage.g:2674:2: ( rule__AttributeRule__ValueAssignment_2 )
-            // InternalOptimisationLanguage.g:2674:3: rule__AttributeRule__ValueAssignment_2
+            // InternalOptimisationLanguage.g:2699:2: ( rule__AttributeRule__ValueAssignment_2 )
+            // InternalOptimisationLanguage.g:2699:3: rule__AttributeRule__ValueAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__ValueAssignment_2();
@@ -8619,14 +8660,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__3"
-    // InternalOptimisationLanguage.g:2682:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
+    // InternalOptimisationLanguage.g:2707:1: rule__AttributeRule__Group__3 : rule__AttributeRule__Group__3__Impl ;
     public final void rule__AttributeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2686:1: ( rule__AttributeRule__Group__3__Impl )
-            // InternalOptimisationLanguage.g:2687:2: rule__AttributeRule__Group__3__Impl
+            // InternalOptimisationLanguage.g:2711:1: ( rule__AttributeRule__Group__3__Impl )
+            // InternalOptimisationLanguage.g:2712:2: rule__AttributeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeRule__Group__3__Impl();
@@ -8652,17 +8693,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:2693:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
+    // InternalOptimisationLanguage.g:2718:1: rule__AttributeRule__Group__3__Impl : ( ';' ) ;
     public final void rule__AttributeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2697:1: ( ( ';' ) )
-            // InternalOptimisationLanguage.g:2698:1: ( ';' )
+            // InternalOptimisationLanguage.g:2722:1: ( ( ';' ) )
+            // InternalOptimisationLanguage.g:2723:1: ( ';' )
             {
-            // InternalOptimisationLanguage.g:2698:1: ( ';' )
-            // InternalOptimisationLanguage.g:2699:2: ';'
+            // InternalOptimisationLanguage.g:2723:1: ( ';' )
+            // InternalOptimisationLanguage.g:2724:2: ';'
             {
              before(grammarAccess.getAttributeRuleAccess().getSemicolonKeyword_3()); 
             match(input,48,FOLLOW_2); 
@@ -8689,14 +8730,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__0"
-    // InternalOptimisationLanguage.g:2709:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
+    // InternalOptimisationLanguage.g:2734:1: rule__ArrayRule__Group__0 : rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 ;
     public final void rule__ArrayRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2713:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
-            // InternalOptimisationLanguage.g:2714:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
+            // InternalOptimisationLanguage.g:2738:1: ( rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1 )
+            // InternalOptimisationLanguage.g:2739:2: rule__ArrayRule__Group__0__Impl rule__ArrayRule__Group__1
             {
             pushFollow(FOLLOW_10);
             rule__ArrayRule__Group__0__Impl();
@@ -8727,21 +8768,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:2721:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:2746:1: rule__ArrayRule__Group__0__Impl : ( () ) ;
     public final void rule__ArrayRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2725:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:2726:1: ( () )
+            // InternalOptimisationLanguage.g:2750:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:2751:1: ( () )
             {
-            // InternalOptimisationLanguage.g:2726:1: ( () )
-            // InternalOptimisationLanguage.g:2727:2: ()
+            // InternalOptimisationLanguage.g:2751:1: ( () )
+            // InternalOptimisationLanguage.g:2752:2: ()
             {
              before(grammarAccess.getArrayRuleAccess().getArrayAction_0()); 
-            // InternalOptimisationLanguage.g:2728:2: ()
-            // InternalOptimisationLanguage.g:2728:3: 
+            // InternalOptimisationLanguage.g:2753:2: ()
+            // InternalOptimisationLanguage.g:2753:3: 
             {
             }
 
@@ -8764,14 +8805,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__1"
-    // InternalOptimisationLanguage.g:2736:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
+    // InternalOptimisationLanguage.g:2761:1: rule__ArrayRule__Group__1 : rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 ;
     public final void rule__ArrayRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2740:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
-            // InternalOptimisationLanguage.g:2741:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
+            // InternalOptimisationLanguage.g:2765:1: ( rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2 )
+            // InternalOptimisationLanguage.g:2766:2: rule__ArrayRule__Group__1__Impl rule__ArrayRule__Group__2
             {
             pushFollow(FOLLOW_18);
             rule__ArrayRule__Group__1__Impl();
@@ -8802,17 +8843,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:2748:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
+    // InternalOptimisationLanguage.g:2773:1: rule__ArrayRule__Group__1__Impl : ( '[' ) ;
     public final void rule__ArrayRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2752:1: ( ( '[' ) )
-            // InternalOptimisationLanguage.g:2753:1: ( '[' )
+            // InternalOptimisationLanguage.g:2777:1: ( ( '[' ) )
+            // InternalOptimisationLanguage.g:2778:1: ( '[' )
             {
-            // InternalOptimisationLanguage.g:2753:1: ( '[' )
-            // InternalOptimisationLanguage.g:2754:2: '['
+            // InternalOptimisationLanguage.g:2778:1: ( '[' )
+            // InternalOptimisationLanguage.g:2779:2: '['
             {
              before(grammarAccess.getArrayRuleAccess().getLeftSquareBracketKeyword_1()); 
             match(input,59,FOLLOW_2); 
@@ -8839,14 +8880,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__2"
-    // InternalOptimisationLanguage.g:2763:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
+    // InternalOptimisationLanguage.g:2788:1: rule__ArrayRule__Group__2 : rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 ;
     public final void rule__ArrayRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2767:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
-            // InternalOptimisationLanguage.g:2768:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
+            // InternalOptimisationLanguage.g:2792:1: ( rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3 )
+            // InternalOptimisationLanguage.g:2793:2: rule__ArrayRule__Group__2__Impl rule__ArrayRule__Group__3
             {
             pushFollow(FOLLOW_18);
             rule__ArrayRule__Group__2__Impl();
@@ -8877,29 +8918,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:2775:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
+    // InternalOptimisationLanguage.g:2800:1: rule__ArrayRule__Group__2__Impl : ( ( rule__ArrayRule__Group_2__0 )? ) ;
     public final void rule__ArrayRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2779:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
-            // InternalOptimisationLanguage.g:2780:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalOptimisationLanguage.g:2804:1: ( ( ( rule__ArrayRule__Group_2__0 )? ) )
+            // InternalOptimisationLanguage.g:2805:1: ( ( rule__ArrayRule__Group_2__0 )? )
             {
-            // InternalOptimisationLanguage.g:2780:1: ( ( rule__ArrayRule__Group_2__0 )? )
-            // InternalOptimisationLanguage.g:2781:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalOptimisationLanguage.g:2805:1: ( ( rule__ArrayRule__Group_2__0 )? )
+            // InternalOptimisationLanguage.g:2806:2: ( rule__ArrayRule__Group_2__0 )?
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2()); 
-            // InternalOptimisationLanguage.g:2782:2: ( rule__ArrayRule__Group_2__0 )?
+            // InternalOptimisationLanguage.g:2807:2: ( rule__ArrayRule__Group_2__0 )?
             int alt19=2;
             int LA19_0 = input.LA(1);
 
-            if ( ((LA19_0>=RULE_QUOTED_ID && LA19_0<=RULE_STRING)||LA19_0==15||LA19_0==59||LA19_0==62||LA19_0==82) ) {
+            if ( ((LA19_0>=RULE_QUOTED_ID && LA19_0<=RULE_STRING)||LA19_0==15||LA19_0==59||LA19_0==62||LA19_0==83) ) {
                 alt19=1;
             }
             switch (alt19) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2782:3: rule__ArrayRule__Group_2__0
+                    // InternalOptimisationLanguage.g:2807:3: rule__ArrayRule__Group_2__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__ArrayRule__Group_2__0();
@@ -8935,14 +8976,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__3"
-    // InternalOptimisationLanguage.g:2790:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
+    // InternalOptimisationLanguage.g:2815:1: rule__ArrayRule__Group__3 : rule__ArrayRule__Group__3__Impl ;
     public final void rule__ArrayRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2794:1: ( rule__ArrayRule__Group__3__Impl )
-            // InternalOptimisationLanguage.g:2795:2: rule__ArrayRule__Group__3__Impl
+            // InternalOptimisationLanguage.g:2819:1: ( rule__ArrayRule__Group__3__Impl )
+            // InternalOptimisationLanguage.g:2820:2: rule__ArrayRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group__3__Impl();
@@ -8968,17 +9009,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:2801:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
+    // InternalOptimisationLanguage.g:2826:1: rule__ArrayRule__Group__3__Impl : ( ']' ) ;
     public final void rule__ArrayRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2805:1: ( ( ']' ) )
-            // InternalOptimisationLanguage.g:2806:1: ( ']' )
+            // InternalOptimisationLanguage.g:2830:1: ( ( ']' ) )
+            // InternalOptimisationLanguage.g:2831:1: ( ']' )
             {
-            // InternalOptimisationLanguage.g:2806:1: ( ']' )
-            // InternalOptimisationLanguage.g:2807:2: ']'
+            // InternalOptimisationLanguage.g:2831:1: ( ']' )
+            // InternalOptimisationLanguage.g:2832:2: ']'
             {
              before(grammarAccess.getArrayRuleAccess().getRightSquareBracketKeyword_3()); 
             match(input,60,FOLLOW_2); 
@@ -9005,14 +9046,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0"
-    // InternalOptimisationLanguage.g:2817:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
+    // InternalOptimisationLanguage.g:2842:1: rule__ArrayRule__Group_2__0 : rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 ;
     public final void rule__ArrayRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2821:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
-            // InternalOptimisationLanguage.g:2822:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
+            // InternalOptimisationLanguage.g:2846:1: ( rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1 )
+            // InternalOptimisationLanguage.g:2847:2: rule__ArrayRule__Group_2__0__Impl rule__ArrayRule__Group_2__1
             {
             pushFollow(FOLLOW_19);
             rule__ArrayRule__Group_2__0__Impl();
@@ -9043,21 +9084,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__0__Impl"
-    // InternalOptimisationLanguage.g:2829:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
+    // InternalOptimisationLanguage.g:2854:1: rule__ArrayRule__Group_2__0__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) ;
     public final void rule__ArrayRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2833:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
-            // InternalOptimisationLanguage.g:2834:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalOptimisationLanguage.g:2858:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_0 ) ) )
+            // InternalOptimisationLanguage.g:2859:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
             {
-            // InternalOptimisationLanguage.g:2834:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
-            // InternalOptimisationLanguage.g:2835:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalOptimisationLanguage.g:2859:1: ( ( rule__ArrayRule__ValuesAssignment_2_0 ) )
+            // InternalOptimisationLanguage.g:2860:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_0()); 
-            // InternalOptimisationLanguage.g:2836:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
-            // InternalOptimisationLanguage.g:2836:3: rule__ArrayRule__ValuesAssignment_2_0
+            // InternalOptimisationLanguage.g:2861:2: ( rule__ArrayRule__ValuesAssignment_2_0 )
+            // InternalOptimisationLanguage.g:2861:3: rule__ArrayRule__ValuesAssignment_2_0
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_0();
@@ -9090,14 +9131,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1"
-    // InternalOptimisationLanguage.g:2844:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
+    // InternalOptimisationLanguage.g:2869:1: rule__ArrayRule__Group_2__1 : rule__ArrayRule__Group_2__1__Impl ;
     public final void rule__ArrayRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2848:1: ( rule__ArrayRule__Group_2__1__Impl )
-            // InternalOptimisationLanguage.g:2849:2: rule__ArrayRule__Group_2__1__Impl
+            // InternalOptimisationLanguage.g:2873:1: ( rule__ArrayRule__Group_2__1__Impl )
+            // InternalOptimisationLanguage.g:2874:2: rule__ArrayRule__Group_2__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2__1__Impl();
@@ -9123,20 +9164,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2__1__Impl"
-    // InternalOptimisationLanguage.g:2855:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
+    // InternalOptimisationLanguage.g:2880:1: rule__ArrayRule__Group_2__1__Impl : ( ( rule__ArrayRule__Group_2_1__0 )* ) ;
     public final void rule__ArrayRule__Group_2__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2859:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
-            // InternalOptimisationLanguage.g:2860:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalOptimisationLanguage.g:2884:1: ( ( ( rule__ArrayRule__Group_2_1__0 )* ) )
+            // InternalOptimisationLanguage.g:2885:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:2860:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
-            // InternalOptimisationLanguage.g:2861:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalOptimisationLanguage.g:2885:1: ( ( rule__ArrayRule__Group_2_1__0 )* )
+            // InternalOptimisationLanguage.g:2886:2: ( rule__ArrayRule__Group_2_1__0 )*
             {
              before(grammarAccess.getArrayRuleAccess().getGroup_2_1()); 
-            // InternalOptimisationLanguage.g:2862:2: ( rule__ArrayRule__Group_2_1__0 )*
+            // InternalOptimisationLanguage.g:2887:2: ( rule__ArrayRule__Group_2_1__0 )*
             loop20:
             do {
                 int alt20=2;
@@ -9149,7 +9190,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt20) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2862:3: rule__ArrayRule__Group_2_1__0
+            	    // InternalOptimisationLanguage.g:2887:3: rule__ArrayRule__Group_2_1__0
             	    {
             	    pushFollow(FOLLOW_20);
             	    rule__ArrayRule__Group_2_1__0();
@@ -9188,14 +9229,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0"
-    // InternalOptimisationLanguage.g:2871:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
+    // InternalOptimisationLanguage.g:2896:1: rule__ArrayRule__Group_2_1__0 : rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 ;
     public final void rule__ArrayRule__Group_2_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2875:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
-            // InternalOptimisationLanguage.g:2876:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
+            // InternalOptimisationLanguage.g:2900:1: ( rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1 )
+            // InternalOptimisationLanguage.g:2901:2: rule__ArrayRule__Group_2_1__0__Impl rule__ArrayRule__Group_2_1__1
             {
             pushFollow(FOLLOW_17);
             rule__ArrayRule__Group_2_1__0__Impl();
@@ -9226,17 +9267,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__0__Impl"
-    // InternalOptimisationLanguage.g:2883:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
+    // InternalOptimisationLanguage.g:2908:1: rule__ArrayRule__Group_2_1__0__Impl : ( ',' ) ;
     public final void rule__ArrayRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2887:1: ( ( ',' ) )
-            // InternalOptimisationLanguage.g:2888:1: ( ',' )
+            // InternalOptimisationLanguage.g:2912:1: ( ( ',' ) )
+            // InternalOptimisationLanguage.g:2913:1: ( ',' )
             {
-            // InternalOptimisationLanguage.g:2888:1: ( ',' )
-            // InternalOptimisationLanguage.g:2889:2: ','
+            // InternalOptimisationLanguage.g:2913:1: ( ',' )
+            // InternalOptimisationLanguage.g:2914:2: ','
             {
              before(grammarAccess.getArrayRuleAccess().getCommaKeyword_2_1_0()); 
             match(input,61,FOLLOW_2); 
@@ -9263,14 +9304,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1"
-    // InternalOptimisationLanguage.g:2898:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
+    // InternalOptimisationLanguage.g:2923:1: rule__ArrayRule__Group_2_1__1 : rule__ArrayRule__Group_2_1__1__Impl ;
     public final void rule__ArrayRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2902:1: ( rule__ArrayRule__Group_2_1__1__Impl )
-            // InternalOptimisationLanguage.g:2903:2: rule__ArrayRule__Group_2_1__1__Impl
+            // InternalOptimisationLanguage.g:2927:1: ( rule__ArrayRule__Group_2_1__1__Impl )
+            // InternalOptimisationLanguage.g:2928:2: rule__ArrayRule__Group_2_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__Group_2_1__1__Impl();
@@ -9296,21 +9337,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__Group_2_1__1__Impl"
-    // InternalOptimisationLanguage.g:2909:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
+    // InternalOptimisationLanguage.g:2934:1: rule__ArrayRule__Group_2_1__1__Impl : ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) ;
     public final void rule__ArrayRule__Group_2_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2913:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
-            // InternalOptimisationLanguage.g:2914:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalOptimisationLanguage.g:2938:1: ( ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) ) )
+            // InternalOptimisationLanguage.g:2939:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:2914:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
-            // InternalOptimisationLanguage.g:2915:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalOptimisationLanguage.g:2939:1: ( ( rule__ArrayRule__ValuesAssignment_2_1_1 ) )
+            // InternalOptimisationLanguage.g:2940:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
             {
              before(grammarAccess.getArrayRuleAccess().getValuesAssignment_2_1_1()); 
-            // InternalOptimisationLanguage.g:2916:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
-            // InternalOptimisationLanguage.g:2916:3: rule__ArrayRule__ValuesAssignment_2_1_1
+            // InternalOptimisationLanguage.g:2941:2: ( rule__ArrayRule__ValuesAssignment_2_1_1 )
+            // InternalOptimisationLanguage.g:2941:3: rule__ArrayRule__ValuesAssignment_2_1_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayRule__ValuesAssignment_2_1_1();
@@ -9343,14 +9384,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0"
-    // InternalOptimisationLanguage.g:2925:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
+    // InternalOptimisationLanguage.g:2950:1: rule__DataReferenceRule__Group__0 : rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 ;
     public final void rule__DataReferenceRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2929:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
-            // InternalOptimisationLanguage.g:2930:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
+            // InternalOptimisationLanguage.g:2954:1: ( rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1 )
+            // InternalOptimisationLanguage.g:2955:2: rule__DataReferenceRule__Group__0__Impl rule__DataReferenceRule__Group__1
             {
             pushFollow(FOLLOW_21);
             rule__DataReferenceRule__Group__0__Impl();
@@ -9381,21 +9422,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:2937:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:2962:1: rule__DataReferenceRule__Group__0__Impl : ( () ) ;
     public final void rule__DataReferenceRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2941:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:2942:1: ( () )
+            // InternalOptimisationLanguage.g:2966:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:2967:1: ( () )
             {
-            // InternalOptimisationLanguage.g:2942:1: ( () )
-            // InternalOptimisationLanguage.g:2943:2: ()
+            // InternalOptimisationLanguage.g:2967:1: ( () )
+            // InternalOptimisationLanguage.g:2968:2: ()
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataReferenceAction_0()); 
-            // InternalOptimisationLanguage.g:2944:2: ()
-            // InternalOptimisationLanguage.g:2944:3: 
+            // InternalOptimisationLanguage.g:2969:2: ()
+            // InternalOptimisationLanguage.g:2969:3: 
             {
             }
 
@@ -9418,14 +9459,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1"
-    // InternalOptimisationLanguage.g:2952:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
+    // InternalOptimisationLanguage.g:2977:1: rule__DataReferenceRule__Group__1 : rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 ;
     public final void rule__DataReferenceRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2956:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
-            // InternalOptimisationLanguage.g:2957:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
+            // InternalOptimisationLanguage.g:2981:1: ( rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2 )
+            // InternalOptimisationLanguage.g:2982:2: rule__DataReferenceRule__Group__1__Impl rule__DataReferenceRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__DataReferenceRule__Group__1__Impl();
@@ -9456,17 +9497,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:2964:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
+    // InternalOptimisationLanguage.g:2989:1: rule__DataReferenceRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataReferenceRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2968:1: ( ( 'data' ) )
-            // InternalOptimisationLanguage.g:2969:1: ( 'data' )
+            // InternalOptimisationLanguage.g:2993:1: ( ( 'data' ) )
+            // InternalOptimisationLanguage.g:2994:1: ( 'data' )
             {
-            // InternalOptimisationLanguage.g:2969:1: ( 'data' )
-            // InternalOptimisationLanguage.g:2970:2: 'data'
+            // InternalOptimisationLanguage.g:2994:1: ( 'data' )
+            // InternalOptimisationLanguage.g:2995:2: 'data'
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDataKeyword_1()); 
             match(input,62,FOLLOW_2); 
@@ -9493,14 +9534,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2"
-    // InternalOptimisationLanguage.g:2979:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
+    // InternalOptimisationLanguage.g:3004:1: rule__DataReferenceRule__Group__2 : rule__DataReferenceRule__Group__2__Impl ;
     public final void rule__DataReferenceRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2983:1: ( rule__DataReferenceRule__Group__2__Impl )
-            // InternalOptimisationLanguage.g:2984:2: rule__DataReferenceRule__Group__2__Impl
+            // InternalOptimisationLanguage.g:3008:1: ( rule__DataReferenceRule__Group__2__Impl )
+            // InternalOptimisationLanguage.g:3009:2: rule__DataReferenceRule__Group__2__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__Group__2__Impl();
@@ -9526,21 +9567,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:2990:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
+    // InternalOptimisationLanguage.g:3015:1: rule__DataReferenceRule__Group__2__Impl : ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) ;
     public final void rule__DataReferenceRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:2994:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
-            // InternalOptimisationLanguage.g:2995:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalOptimisationLanguage.g:3019:1: ( ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:3020:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:2995:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
-            // InternalOptimisationLanguage.g:2996:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalOptimisationLanguage.g:3020:1: ( ( rule__DataReferenceRule__DefinitionAssignment_2 ) )
+            // InternalOptimisationLanguage.g:3021:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionAssignment_2()); 
-            // InternalOptimisationLanguage.g:2997:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
-            // InternalOptimisationLanguage.g:2997:3: rule__DataReferenceRule__DefinitionAssignment_2
+            // InternalOptimisationLanguage.g:3022:2: ( rule__DataReferenceRule__DefinitionAssignment_2 )
+            // InternalOptimisationLanguage.g:3022:3: rule__DataReferenceRule__DefinitionAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__DataReferenceRule__DefinitionAssignment_2();
@@ -9572,23 +9613,23 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // $ANTLR end "rule__DataReferenceRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0"
-    // InternalOptimisationLanguage.g:3006:1: rule__QualifiedNameRule__Group__0 : rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 ;
-    public final void rule__QualifiedNameRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3031:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
+    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3010:1: ( rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1 )
-            // InternalOptimisationLanguage.g:3011:2: rule__QualifiedNameRule__Group__0__Impl rule__QualifiedNameRule__Group__1
+            // InternalOptimisationLanguage.g:3035:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3036:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
             {
             pushFollow(FOLLOW_22);
-            rule__QualifiedNameRule__Group__0__Impl();
+            rule__OrExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1();
+            rule__OrExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -9607,29 +9648,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0"
+    // $ANTLR end "rule__OrExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3018:1: rule__QualifiedNameRule__Group__0__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3043:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3022:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:3023:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:3047:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3048:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            {
+            // InternalOptimisationLanguage.g:3048:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3049:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
             {
-            // InternalOptimisationLanguage.g:3023:1: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:3024:2: ruleStringOrId
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalOptimisationLanguage.g:3050:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3050:3: rule__OrExpressionRule__SubExpressionsAssignment_0
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -9648,21 +9695,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1"
-    // InternalOptimisationLanguage.g:3033:1: rule__QualifiedNameRule__Group__1 : rule__QualifiedNameRule__Group__1__Impl ;
-    public final void rule__QualifiedNameRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3058:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
+    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3037:1: ( rule__QualifiedNameRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3038:2: rule__QualifiedNameRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3062:1: ( rule__OrExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3063:2: rule__OrExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group__1__Impl();
+            rule__OrExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -9681,24 +9728,24 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1"
+    // $ANTLR end "rule__OrExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3044:1: rule__QualifiedNameRule__Group__1__Impl : ( ( rule__QualifiedNameRule__Group_1__0 )* ) ;
-    public final void rule__QualifiedNameRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3069:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
+    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3048:1: ( ( ( rule__QualifiedNameRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3049:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3073:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:3074:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:3049:1: ( ( rule__QualifiedNameRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3050:2: ( rule__QualifiedNameRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3074:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3075:2: ( rule__OrExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3051:2: ( rule__QualifiedNameRule__Group_1__0 )*
+             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3076:2: ( rule__OrExpressionRule__Group_1__0 )*
             loop21:
             do {
                 int alt21=2;
@@ -9711,10 +9758,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt21) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:3051:3: rule__QualifiedNameRule__Group_1__0
+            	    // InternalOptimisationLanguage.g:3076:3: rule__OrExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_23);
-            	    rule__QualifiedNameRule__Group_1__0();
+            	    rule__OrExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -9727,7 +9774,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
             } while (true);
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getGroup_1()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -9746,26 +9793,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3060:1: rule__QualifiedNameRule__Group_1__0 : rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 ;
-    public final void rule__QualifiedNameRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3085:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
+    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3064:1: ( rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3065:2: rule__QualifiedNameRule__Group_1__0__Impl rule__QualifiedNameRule__Group_1__1
+            // InternalOptimisationLanguage.g:3089:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3090:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_5);
-            rule__QualifiedNameRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__OrExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1();
+            rule__OrExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -9784,25 +9831,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3072:1: rule__QualifiedNameRule__Group_1__0__Impl : ( '.' ) ;
-    public final void rule__QualifiedNameRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3097:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
+    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3076:1: ( ( '.' ) )
-            // InternalOptimisationLanguage.g:3077:1: ( '.' )
+            // InternalOptimisationLanguage.g:3101:1: ( ( 'OR' ) )
+            // InternalOptimisationLanguage.g:3102:1: ( 'OR' )
             {
-            // InternalOptimisationLanguage.g:3077:1: ( '.' )
-            // InternalOptimisationLanguage.g:3078:2: '.'
+            // InternalOptimisationLanguage.g:3102:1: ( 'OR' )
+            // InternalOptimisationLanguage.g:3103:2: 'OR'
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
             match(input,63,FOLLOW_2); 
-             after(grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0()); 
+             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
 
             }
 
@@ -9821,21 +9868,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__0__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3087:1: rule__QualifiedNameRule__Group_1__1 : rule__QualifiedNameRule__Group_1__1__Impl ;
-    public final void rule__QualifiedNameRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3112:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
+    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3091:1: ( rule__QualifiedNameRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3092:2: rule__QualifiedNameRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3116:1: ( rule__OrExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3117:2: rule__OrExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__QualifiedNameRule__Group_1__1__Impl();
+            rule__OrExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -9854,29 +9901,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__QualifiedNameRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3098:1: rule__QualifiedNameRule__Group_1__1__Impl : ( ruleStringOrId ) ;
-    public final void rule__QualifiedNameRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3123:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3102:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:3103:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:3127:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3128:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3103:1: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:3104:2: ruleStringOrId
+            // InternalOptimisationLanguage.g:3128:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3129:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            {
+             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3130:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3130:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
             {
-             before(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
-            ruleStringOrId();
+            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
-             after(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1()); 
+
+            }
+
+             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -9895,26 +9948,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__QualifiedNameRule__Group_1__1__Impl"
+    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3114:1: rule__OrExpressionRule__Group__0 : rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 ;
-    public final void rule__OrExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3139:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
+    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3118:1: ( rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3119:2: rule__OrExpressionRule__Group__0__Impl rule__OrExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3143:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3144:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_24);
-            rule__OrExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_25);
+            rule__XorExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1();
+            rule__XorExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -9933,35 +9986,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0"
+    // $ANTLR end "rule__XorExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3126:1: rule__OrExpressionRule__Group__0__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__OrExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3151:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3130:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3131:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3155:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3156:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3131:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3132:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3156:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3157:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalOptimisationLanguage.g:3133:2: ( rule__OrExpressionRule__SubExpressionsAssignment_0 )
-            // InternalOptimisationLanguage.g:3133:3: rule__OrExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalOptimisationLanguage.g:3158:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3158:3: rule__XorExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_0();
+            rule__XorExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -9980,21 +10033,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3141:1: rule__OrExpressionRule__Group__1 : rule__OrExpressionRule__Group__1__Impl ;
-    public final void rule__OrExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3166:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
+    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3145:1: ( rule__OrExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3146:2: rule__OrExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3170:1: ( rule__XorExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3171:2: rule__XorExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group__1__Impl();
+            rule__XorExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10013,24 +10066,24 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1"
+    // $ANTLR end "rule__XorExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3152:1: rule__OrExpressionRule__Group__1__Impl : ( ( rule__OrExpressionRule__Group_1__0 )* ) ;
-    public final void rule__OrExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3177:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
+    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3156:1: ( ( ( rule__OrExpressionRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3157:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3181:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:3182:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:3157:1: ( ( rule__OrExpressionRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3158:2: ( rule__OrExpressionRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3182:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3183:2: ( rule__XorExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3159:2: ( rule__OrExpressionRule__Group_1__0 )*
+             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3184:2: ( rule__XorExpressionRule__Group_1__0 )*
             loop22:
             do {
                 int alt22=2;
@@ -10043,10 +10096,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt22) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:3159:3: rule__OrExpressionRule__Group_1__0
+            	    // InternalOptimisationLanguage.g:3184:3: rule__XorExpressionRule__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_25);
-            	    rule__OrExpressionRule__Group_1__0();
+            	    pushFollow(FOLLOW_26);
+            	    rule__XorExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -10059,7 +10112,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
             } while (true);
 
-             after(grammarAccess.getOrExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -10078,26 +10131,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3168:1: rule__OrExpressionRule__Group_1__0 : rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 ;
-    public final void rule__OrExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3193:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
+    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3172:1: ( rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3173:2: rule__OrExpressionRule__Group_1__0__Impl rule__OrExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3197:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3198:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_26);
-            rule__OrExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__XorExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1();
+            rule__XorExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -10116,25 +10169,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3180:1: rule__OrExpressionRule__Group_1__0__Impl : ( 'OR' ) ;
-    public final void rule__OrExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3205:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
+    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3184:1: ( ( 'OR' ) )
-            // InternalOptimisationLanguage.g:3185:1: ( 'OR' )
+            // InternalOptimisationLanguage.g:3209:1: ( ( 'XOR' ) )
+            // InternalOptimisationLanguage.g:3210:1: ( 'XOR' )
             {
-            // InternalOptimisationLanguage.g:3185:1: ( 'OR' )
-            // InternalOptimisationLanguage.g:3186:2: 'OR'
+            // InternalOptimisationLanguage.g:3210:1: ( 'XOR' )
+            // InternalOptimisationLanguage.g:3211:2: 'XOR'
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
             match(input,64,FOLLOW_2); 
-             after(grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
 
             }
 
@@ -10153,21 +10206,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3195:1: rule__OrExpressionRule__Group_1__1 : rule__OrExpressionRule__Group_1__1__Impl ;
-    public final void rule__OrExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3220:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
+    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3199:1: ( rule__OrExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3200:2: rule__OrExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3224:1: ( rule__XorExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3225:2: rule__XorExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__Group_1__1__Impl();
+            rule__XorExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -10186,35 +10239,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__OrExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3206:1: rule__OrExpressionRule__Group_1__1__Impl : ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__OrExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3231:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3210:1: ( ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3211:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3235:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3236:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3211:1: ( ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3212:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3236:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3237:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3213:2: ( rule__OrExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3213:3: rule__OrExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3238:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3238:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__OrExpressionRule__SubExpressionsAssignment_1_1();
+            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -10233,26 +10286,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__OrExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3222:1: rule__XorExpressionRule__Group__0 : rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 ;
-    public final void rule__XorExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3247:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
+    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3226:1: ( rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3227:2: rule__XorExpressionRule__Group__0__Impl rule__XorExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3251:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3252:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
             {
             pushFollow(FOLLOW_27);
-            rule__XorExpressionRule__Group__0__Impl();
+            rule__AndExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1();
+            rule__AndExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -10271,35 +10324,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0"
+    // $ANTLR end "rule__AndExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3234:1: rule__XorExpressionRule__Group__0__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__XorExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3259:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
+    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3238:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3239:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3263:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3264:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3239:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3240:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3264:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3265:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalOptimisationLanguage.g:3241:2: ( rule__XorExpressionRule__SubExpressionsAssignment_0 )
-            // InternalOptimisationLanguage.g:3241:3: rule__XorExpressionRule__SubExpressionsAssignment_0
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+            // InternalOptimisationLanguage.g:3266:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3266:3: rule__AndExpressionRule__SubExpressionsAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_0();
+            rule__AndExpressionRule__SubExpressionsAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
 
             }
 
@@ -10318,21 +10371,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3249:1: rule__XorExpressionRule__Group__1 : rule__XorExpressionRule__Group__1__Impl ;
-    public final void rule__XorExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3274:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
+    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3253:1: ( rule__XorExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3254:2: rule__XorExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3278:1: ( rule__AndExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3279:2: rule__AndExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group__1__Impl();
+            rule__AndExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10351,24 +10404,24 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1"
+    // $ANTLR end "rule__AndExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3260:1: rule__XorExpressionRule__Group__1__Impl : ( ( rule__XorExpressionRule__Group_1__0 )* ) ;
-    public final void rule__XorExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3285:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3264:1: ( ( ( rule__XorExpressionRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3265:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3289:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:3290:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:3265:1: ( ( rule__XorExpressionRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3266:2: ( rule__XorExpressionRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3290:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3291:2: ( rule__AndExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3267:2: ( rule__XorExpressionRule__Group_1__0 )*
+             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3292:2: ( rule__AndExpressionRule__Group_1__0 )*
             loop23:
             do {
                 int alt23=2;
@@ -10381,10 +10434,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
                 switch (alt23) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:3267:3: rule__XorExpressionRule__Group_1__0
+            	    // InternalOptimisationLanguage.g:3292:3: rule__AndExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_28);
-            	    rule__XorExpressionRule__Group_1__0();
+            	    rule__AndExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -10397,7 +10450,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
             } while (true);
 
-             after(grammarAccess.getXorExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -10416,26 +10469,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3276:1: rule__XorExpressionRule__Group_1__0 : rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 ;
-    public final void rule__XorExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3301:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
+    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3280:1: ( rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3281:2: rule__XorExpressionRule__Group_1__0__Impl rule__XorExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3305:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3306:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_26);
-            rule__XorExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__AndExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1();
+            rule__AndExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -10454,25 +10507,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3288:1: rule__XorExpressionRule__Group_1__0__Impl : ( 'XOR' ) ;
-    public final void rule__XorExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3313:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
+    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3292:1: ( ( 'XOR' ) )
-            // InternalOptimisationLanguage.g:3293:1: ( 'XOR' )
+            // InternalOptimisationLanguage.g:3317:1: ( ( 'AND' ) )
+            // InternalOptimisationLanguage.g:3318:1: ( 'AND' )
             {
-            // InternalOptimisationLanguage.g:3293:1: ( 'XOR' )
-            // InternalOptimisationLanguage.g:3294:2: 'XOR'
+            // InternalOptimisationLanguage.g:3318:1: ( 'AND' )
+            // InternalOptimisationLanguage.g:3319:2: 'AND'
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
             match(input,65,FOLLOW_2); 
-             after(grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
 
             }
 
@@ -10491,21 +10544,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3303:1: rule__XorExpressionRule__Group_1__1 : rule__XorExpressionRule__Group_1__1__Impl ;
-    public final void rule__XorExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3328:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
+    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3307:1: ( rule__XorExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3308:2: rule__XorExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3332:1: ( rule__AndExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3333:2: rule__AndExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__Group_1__1__Impl();
+            rule__AndExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -10524,35 +10577,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__XorExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3314:1: rule__XorExpressionRule__Group_1__1__Impl : ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__XorExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3339:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
+    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3318:1: ( ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3319:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3343:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3344:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3319:1: ( ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3320:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3344:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3345:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
             {
-             before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3321:2: ( rule__XorExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3321:3: rule__XorExpressionRule__SubExpressionsAssignment_1_1
+             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3346:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3346:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__XorExpressionRule__SubExpressionsAssignment_1_1();
+            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
 
             }
 
@@ -10571,26 +10624,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__XorExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3330:1: rule__AndExpressionRule__Group__0 : rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 ;
-    public final void rule__AndExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3355:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
+    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3334:1: ( rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3335:2: rule__AndExpressionRule__Group__0__Impl rule__AndExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3359:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3360:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_29);
-            rule__AndExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__NotExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1();
+            rule__NotExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -10609,35 +10662,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0"
+    // $ANTLR end "rule__NotExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3342:1: rule__AndExpressionRule__Group__0__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) ;
-    public final void rule__AndExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3367:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
+    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3346:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3347:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3371:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
+            // InternalOptimisationLanguage.g:3372:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
             {
-            // InternalOptimisationLanguage.g:3347:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3348:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
+            // InternalOptimisationLanguage.g:3372:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalOptimisationLanguage.g:3373:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
-            // InternalOptimisationLanguage.g:3349:2: ( rule__AndExpressionRule__SubExpressionsAssignment_0 )
-            // InternalOptimisationLanguage.g:3349:3: rule__AndExpressionRule__SubExpressionsAssignment_0
-            {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_0();
+             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+            // InternalOptimisationLanguage.g:3374:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            int alt24=2;
+            int LA24_0 = input.LA(1);
+
+            if ( (LA24_0==82) ) {
+                alt24=1;
+            }
+            switch (alt24) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:3374:3: rule__NotExpressionRule__NegatedAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__NotExpressionRule__NegatedAssignment_0();
+
+                    state._fsp--;
 
-            state._fsp--;
 
+                    }
+                    break;
 
             }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_0()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
 
             }
 
@@ -10656,21 +10720,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3357:1: rule__AndExpressionRule__Group__1 : rule__AndExpressionRule__Group__1__Impl ;
-    public final void rule__AndExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3382:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
+    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3361:1: ( rule__AndExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3362:2: rule__AndExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3386:1: ( rule__NotExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3387:2: rule__NotExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group__1__Impl();
+            rule__NotExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10689,53 +10753,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1"
+    // $ANTLR end "rule__NotExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3368:1: rule__AndExpressionRule__Group__1__Impl : ( ( rule__AndExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AndExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3393:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
+    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3372:1: ( ( ( rule__AndExpressionRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3373:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3397:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:3398:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:3373:1: ( ( rule__AndExpressionRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3374:2: ( rule__AndExpressionRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3398:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3399:2: ( rule__NotExpressionRule__OperandAssignment_1 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3375:2: ( rule__AndExpressionRule__Group_1__0 )*
-            loop24:
-            do {
-                int alt24=2;
-                int LA24_0 = input.LA(1);
-
-                if ( (LA24_0==66) ) {
-                    alt24=1;
-                }
-
-
-                switch (alt24) {
-            	case 1 :
-            	    // InternalOptimisationLanguage.g:3375:3: rule__AndExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_30);
-            	    rule__AndExpressionRule__Group_1__0();
-
-            	    state._fsp--;
+             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+            // InternalOptimisationLanguage.g:3400:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalOptimisationLanguage.g:3400:3: rule__NotExpressionRule__OperandAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__NotExpressionRule__OperandAssignment_1();
 
+            state._fsp--;
 
-            	    }
-            	    break;
 
-            	default :
-            	    break loop24;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getAndExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
 
             }
 
@@ -10754,26 +10800,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3384:1: rule__AndExpressionRule__Group_1__0 : rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 ;
-    public final void rule__AndExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3409:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
+    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3388:1: ( rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3389:2: rule__AndExpressionRule__Group_1__0__Impl rule__AndExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3413:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3414:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_26);
-            rule__AndExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_29);
+            rule__ComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1();
+            rule__ComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -10792,25 +10838,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3396:1: rule__AndExpressionRule__Group_1__0__Impl : ( 'AND' ) ;
-    public final void rule__AndExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3421:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3400:1: ( ( 'AND' ) )
-            // InternalOptimisationLanguage.g:3401:1: ( 'AND' )
+            // InternalOptimisationLanguage.g:3425:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3426:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3401:1: ( 'AND' )
-            // InternalOptimisationLanguage.g:3402:2: 'AND'
+            // InternalOptimisationLanguage.g:3426:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3427:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
-            match(input,66,FOLLOW_2); 
-             after(grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0()); 
+             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalOptimisationLanguage.g:3428:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3428:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+
+            state._fsp--;
+
+
+            }
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -10829,21 +10885,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3411:1: rule__AndExpressionRule__Group_1__1 : rule__AndExpressionRule__Group_1__1__Impl ;
-    public final void rule__AndExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3436:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3415:1: ( rule__AndExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3416:2: rule__AndExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3440:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3441:2: rule__ComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__Group_1__1__Impl();
+            rule__ComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -10862,35 +10918,53 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AndExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3422:1: rule__AndExpressionRule__Group_1__1__Impl : ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) ;
-    public final void rule__AndExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3447:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
+    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3426:1: ( ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3427:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3451:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
+            // InternalOptimisationLanguage.g:3452:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
             {
-            // InternalOptimisationLanguage.g:3427:1: ( ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3428:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            {
-             before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3429:2: ( rule__AndExpressionRule__SubExpressionsAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3429:3: rule__AndExpressionRule__SubExpressionsAssignment_1_1
+            // InternalOptimisationLanguage.g:3452:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalOptimisationLanguage.g:3453:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__AndExpressionRule__SubExpressionsAssignment_1_1();
+             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+            // InternalOptimisationLanguage.g:3454:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            loop25:
+            do {
+                int alt25=2;
+                int LA25_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA25_0>=16 && LA25_0<=21)) ) {
+                    alt25=1;
+                }
 
 
-            }
+                switch (alt25) {
+            	case 1 :
+            	    // InternalOptimisationLanguage.g:3454:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    {
+            	    pushFollow(FOLLOW_30);
+            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
 
-             after(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsAssignment_1_1()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop25;
+                }
+            } while (true);
+
+             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
 
             }
 
@@ -10909,26 +10983,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AndExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3438:1: rule__NotExpressionRule__Group__0 : rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 ;
-    public final void rule__NotExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3463:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
+    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3442:1: ( rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3443:2: rule__NotExpressionRule__Group__0__Impl rule__NotExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3467:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3468:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_26);
-            rule__NotExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__PartialComparisonExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1();
+            rule__PartialComparisonExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -10947,46 +11021,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3450:1: rule__NotExpressionRule__Group__0__Impl : ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) ;
-    public final void rule__NotExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3475:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3454:1: ( ( ( rule__NotExpressionRule__NegatedAssignment_0 )? ) )
-            // InternalOptimisationLanguage.g:3455:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
+            // InternalOptimisationLanguage.g:3479:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3480:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3455:1: ( ( rule__NotExpressionRule__NegatedAssignment_0 )? )
-            // InternalOptimisationLanguage.g:3456:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
+            // InternalOptimisationLanguage.g:3480:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3481:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
-            // InternalOptimisationLanguage.g:3457:2: ( rule__NotExpressionRule__NegatedAssignment_0 )?
-            int alt25=2;
-            int LA25_0 = input.LA(1);
-
-            if ( (LA25_0==81) ) {
-                alt25=1;
-            }
-            switch (alt25) {
-                case 1 :
-                    // InternalOptimisationLanguage.g:3457:3: rule__NotExpressionRule__NegatedAssignment_0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__NotExpressionRule__NegatedAssignment_0();
-
-                    state._fsp--;
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+            // InternalOptimisationLanguage.g:3482:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalOptimisationLanguage.g:3482:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getNegatedAssignment_0()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
 
             }
 
@@ -11005,21 +11068,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3465:1: rule__NotExpressionRule__Group__1 : rule__NotExpressionRule__Group__1__Impl ;
-    public final void rule__NotExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3490:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
+    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3469:1: ( rule__NotExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3470:2: rule__NotExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3494:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3495:2: rule__PartialComparisonExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__Group__1__Impl();
+            rule__PartialComparisonExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -11038,35 +11101,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__NotExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3476:1: rule__NotExpressionRule__Group__1__Impl : ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) ;
-    public final void rule__NotExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3501:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3480:1: ( ( ( rule__NotExpressionRule__OperandAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:3481:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3505:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:3506:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:3481:1: ( ( rule__NotExpressionRule__OperandAssignment_1 ) )
-            // InternalOptimisationLanguage.g:3482:2: ( rule__NotExpressionRule__OperandAssignment_1 )
+            // InternalOptimisationLanguage.g:3506:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3507:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
-            // InternalOptimisationLanguage.g:3483:2: ( rule__NotExpressionRule__OperandAssignment_1 )
-            // InternalOptimisationLanguage.g:3483:3: rule__NotExpressionRule__OperandAssignment_1
+             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalOptimisationLanguage.g:3508:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:3508:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__NotExpressionRule__OperandAssignment_1();
+            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getNotExpressionRuleAccess().getOperandAssignment_1()); 
+             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -11085,26 +11148,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__NotExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3492:1: rule__ComparisonExpressionRule__Group__0 : rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 ;
-    public final void rule__ComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3517:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3496:1: ( rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3497:2: rule__ComparisonExpressionRule__Group__0__Impl rule__ComparisonExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3521:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3522:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
             {
             pushFollow(FOLLOW_31);
-            rule__ComparisonExpressionRule__Group__0__Impl();
+            rule__AddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -11123,35 +11186,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3504:1: rule__ComparisonExpressionRule__Group__0__Impl : ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__ComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3529:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3508:1: ( ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3509:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3533:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3534:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3509:1: ( ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3510:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3534:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3535:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalOptimisationLanguage.g:3511:2: ( rule__ComparisonExpressionRule__LeftOperandAssignment_0 )
-            // InternalOptimisationLanguage.g:3511:3: rule__ComparisonExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalOptimisationLanguage.g:3536:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3536:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__LeftOperandAssignment_0();
+            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -11170,21 +11233,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3519:1: rule__ComparisonExpressionRule__Group__1 : rule__ComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__ComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3544:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3523:1: ( rule__ComparisonExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3524:2: rule__ComparisonExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3548:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3549:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -11203,40 +11266,40 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__ComparisonExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3530:1: rule__ComparisonExpressionRule__Group__1__Impl : ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) ;
-    public final void rule__ComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3555:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3534:1: ( ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* ) )
-            // InternalOptimisationLanguage.g:3535:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
+            // InternalOptimisationLanguage.g:3559:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:3560:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:3535:1: ( ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )* )
-            // InternalOptimisationLanguage.g:3536:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+            // InternalOptimisationLanguage.g:3560:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3561:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
-            // InternalOptimisationLanguage.g:3537:2: ( rule__ComparisonExpressionRule__ComparisonAssignment_1 )*
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3562:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
             loop26:
             do {
                 int alt26=2;
                 int LA26_0 = input.LA(1);
 
-                if ( ((LA26_0>=16 && LA26_0<=21)) ) {
+                if ( ((LA26_0>=22 && LA26_0<=23)) ) {
                     alt26=1;
                 }
 
 
                 switch (alt26) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:3537:3: rule__ComparisonExpressionRule__ComparisonAssignment_1
+            	    // InternalOptimisationLanguage.g:3562:3: rule__AddOrSubtractExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_32);
-            	    rule__ComparisonExpressionRule__ComparisonAssignment_1();
+            	    rule__AddOrSubtractExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -11249,7 +11312,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
             } while (true);
 
-             after(grammarAccess.getComparisonExpressionRuleAccess().getComparisonAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -11268,26 +11331,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3546:1: rule__PartialComparisonExpressionRule__Group__0 : rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 ;
-    public final void rule__PartialComparisonExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3571:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3550:1: ( rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3551:2: rule__PartialComparisonExpressionRule__Group__0__Impl rule__PartialComparisonExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3575:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3576:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_26);
-            rule__PartialComparisonExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1();
+            rule__AddOrSubtractExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -11306,35 +11369,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3558:1: rule__PartialComparisonExpressionRule__Group__0__Impl : ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3583:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3562:1: ( ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3563:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3587:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalOptimisationLanguage.g:3588:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalOptimisationLanguage.g:3563:1: ( ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3564:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
+            // InternalOptimisationLanguage.g:3588:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalOptimisationLanguage.g:3589:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
-            // InternalOptimisationLanguage.g:3565:2: ( rule__PartialComparisonExpressionRule__OperatorAssignment_0 )
-            // InternalOptimisationLanguage.g:3565:3: rule__PartialComparisonExpressionRule__OperatorAssignment_0
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalOptimisationLanguage.g:3590:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalOptimisationLanguage.g:3590:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__OperatorAssignment_0();
+            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorAssignment_0()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -11353,21 +11416,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3573:1: rule__PartialComparisonExpressionRule__Group__1 : rule__PartialComparisonExpressionRule__Group__1__Impl ;
-    public final void rule__PartialComparisonExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3598:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3577:1: ( rule__PartialComparisonExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3578:2: rule__PartialComparisonExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3602:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3603:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__Group__1__Impl();
+            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -11386,35 +11449,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__PartialComparisonExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3584:1: rule__PartialComparisonExpressionRule__Group__1__Impl : ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__PartialComparisonExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3609:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3588:1: ( ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:3589:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3613:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3614:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3589:1: ( ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalOptimisationLanguage.g:3590:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:3614:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3615:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalOptimisationLanguage.g:3591:2: ( rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 )
-            // InternalOptimisationLanguage.g:3591:3: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3616:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3616:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__PartialComparisonExpressionRule__SubExpressionAssignment_1();
+            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -11433,26 +11496,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PartialComparisonExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3600:1: rule__AddOrSubtractExpressionRule__Group__0 : rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3625:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3604:1: ( rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3605:2: rule__AddOrSubtractExpressionRule__Group__0__Impl rule__AddOrSubtractExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3629:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3630:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
             {
             pushFollow(FOLLOW_33);
-            rule__AddOrSubtractExpressionRule__Group__0__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1();
+            rule__MultiplyDivideModuloExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -11471,35 +11534,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3612:1: rule__AddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3637:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3616:1: ( ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3617:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3641:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3642:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3617:1: ( ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3618:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3642:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3643:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalOptimisationLanguage.g:3619:2: ( rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 )
-            // InternalOptimisationLanguage.g:3619:3: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalOptimisationLanguage.g:3644:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3644:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0();
+            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -11518,21 +11581,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3627:1: rule__AddOrSubtractExpressionRule__Group__1 : rule__AddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3652:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3631:1: ( rule__AddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3632:2: rule__AddOrSubtractExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3656:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3657:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -11551,40 +11614,40 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3638:1: rule__AddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3663:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3642:1: ( ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3643:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3667:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:3668:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:3643:1: ( ( rule__AddOrSubtractExpressionRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3644:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3668:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3669:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3645:2: ( rule__AddOrSubtractExpressionRule__Group_1__0 )*
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3670:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
             loop27:
             do {
                 int alt27=2;
                 int LA27_0 = input.LA(1);
 
-                if ( ((LA27_0>=22 && LA27_0<=23)) ) {
+                if ( ((LA27_0>=24 && LA27_0<=26)) ) {
                     alt27=1;
                 }
 
 
                 switch (alt27) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:3645:3: rule__AddOrSubtractExpressionRule__Group_1__0
+            	    // InternalOptimisationLanguage.g:3670:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
             	    {
             	    pushFollow(FOLLOW_34);
-            	    rule__AddOrSubtractExpressionRule__Group_1__0();
+            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
 
             	    state._fsp--;
 
@@ -11597,7 +11660,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
                 }
             } while (true);
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -11616,26 +11679,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3654:1: rule__AddOrSubtractExpressionRule__Group_1__0 : rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3679:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3658:1: ( rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3659:2: rule__AddOrSubtractExpressionRule__Group_1__0__Impl rule__AddOrSubtractExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3683:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3684:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_26);
-            rule__AddOrSubtractExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -11654,35 +11717,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3666:1: rule__AddOrSubtractExpressionRule__Group_1__0__Impl : ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3691:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3670:1: ( ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalOptimisationLanguage.g:3671:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalOptimisationLanguage.g:3695:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
+            // InternalOptimisationLanguage.g:3696:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
             {
-            // InternalOptimisationLanguage.g:3671:1: ( ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalOptimisationLanguage.g:3672:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
+            // InternalOptimisationLanguage.g:3696:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
+            // InternalOptimisationLanguage.g:3697:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalOptimisationLanguage.g:3673:2: ( rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 )
-            // InternalOptimisationLanguage.g:3673:3: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+            // InternalOptimisationLanguage.g:3698:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalOptimisationLanguage.g:3698:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0();
+            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
 
             }
 
@@ -11701,21 +11764,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3681:1: rule__AddOrSubtractExpressionRule__Group_1__1 : rule__AddOrSubtractExpressionRule__Group_1__1__Impl ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3706:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3685:1: ( rule__AddOrSubtractExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3686:2: rule__AddOrSubtractExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3710:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3711:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__Group_1__1__Impl();
+            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -11734,35 +11797,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3692:1: rule__AddOrSubtractExpressionRule__Group_1__1__Impl : ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__AddOrSubtractExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3717:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
+    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3696:1: ( ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3697:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3721:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3722:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3697:1: ( ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3698:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3722:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3723:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
             {
-             before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3699:2: ( rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3699:3: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3724:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3724:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1();
+            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
 
             }
 
@@ -11781,26 +11844,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__AddOrSubtractExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3708:1: rule__MultiplyDivideModuloExpressionRule__Group__0 : rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3733:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
+    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3712:1: ( rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3713:2: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl rule__MultiplyDivideModuloExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3737:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3738:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
             {
             pushFollow(FOLLOW_35);
-            rule__MultiplyDivideModuloExpressionRule__Group__0__Impl();
+            rule__PowerOfExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1();
+            rule__PowerOfExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -11819,35 +11882,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3720:1: rule__MultiplyDivideModuloExpressionRule__Group__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3745:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3724:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3725:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3749:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3750:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3725:1: ( ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3726:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3750:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3751:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalOptimisationLanguage.g:3727:2: ( rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 )
-            // InternalOptimisationLanguage.g:3727:3: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            // InternalOptimisationLanguage.g:3752:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3752:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0();
+            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandAssignment_0()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
 
             }
 
@@ -11866,21 +11929,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3735:1: rule__MultiplyDivideModuloExpressionRule__Group__1 : rule__MultiplyDivideModuloExpressionRule__Group__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3760:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3739:1: ( rule__MultiplyDivideModuloExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3740:2: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3764:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3765:2: rule__PowerOfExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group__1__Impl();
+            rule__PowerOfExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -11899,53 +11962,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3746:1: rule__MultiplyDivideModuloExpressionRule__Group__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3771:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
+    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3750:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:3751:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:3775:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
+            // InternalOptimisationLanguage.g:3776:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
             {
-            // InternalOptimisationLanguage.g:3751:1: ( ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:3752:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
+            // InternalOptimisationLanguage.g:3776:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalOptimisationLanguage.g:3777:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3753:2: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0 )*
-            loop28:
-            do {
-                int alt28=2;
-                int LA28_0 = input.LA(1);
-
-                if ( ((LA28_0>=24 && LA28_0<=26)) ) {
-                    alt28=1;
-                }
-
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+            // InternalOptimisationLanguage.g:3778:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
 
-                switch (alt28) {
-            	case 1 :
-            	    // InternalOptimisationLanguage.g:3753:3: rule__MultiplyDivideModuloExpressionRule__Group_1__0
-            	    {
-            	    pushFollow(FOLLOW_36);
-            	    rule__MultiplyDivideModuloExpressionRule__Group_1__0();
+            if ( (LA28_0==66) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:3778:3: rule__PowerOfExpressionRule__Group_1__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__PowerOfExpressionRule__Group_1__0();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop28;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
 
             }
 
@@ -11964,26 +12020,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3762:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0 : rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
+    // InternalOptimisationLanguage.g:3787:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
+    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3766:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3767:2: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl rule__MultiplyDivideModuloExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3791:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
+            // InternalOptimisationLanguage.g:3792:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
             {
-            pushFollow(FOLLOW_26);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__PowerOfExpressionRule__Group_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1();
+            rule__PowerOfExpressionRule__Group_1__1();
 
             state._fsp--;
 
@@ -12002,35 +12058,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3774:1: rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // InternalOptimisationLanguage.g:3799:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3778:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) ) )
-            // InternalOptimisationLanguage.g:3779:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            {
-            // InternalOptimisationLanguage.g:3779:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 ) )
-            // InternalOptimisationLanguage.g:3780:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
+            // InternalOptimisationLanguage.g:3803:1: ( ( '^' ) )
+            // InternalOptimisationLanguage.g:3804:1: ( '^' )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
-            // InternalOptimisationLanguage.g:3781:2: ( rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 )
-            // InternalOptimisationLanguage.g:3781:3: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0
+            // InternalOptimisationLanguage.g:3804:1: ( '^' )
+            // InternalOptimisationLanguage.g:3805:2: '^'
             {
-            pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0();
-
-            state._fsp--;
-
-
-            }
-
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsAssignment_1_0()); 
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+            match(input,66,FOLLOW_2); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
 
             }
 
@@ -12049,21 +12095,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3789:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1 : rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
+    // InternalOptimisationLanguage.g:3814:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
+    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3793:1: ( rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3794:2: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3818:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:3819:2: rule__PowerOfExpressionRule__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl();
+            rule__PowerOfExpressionRule__Group_1__1__Impl();
 
             state._fsp--;
 
@@ -12082,35 +12128,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
 
 
-    // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3800:1: rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl : ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) ;
-    public final void rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // InternalOptimisationLanguage.g:3825:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
+    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3804:1: ( ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3805:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3829:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
+            // InternalOptimisationLanguage.g:3830:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
             {
-            // InternalOptimisationLanguage.g:3805:1: ( ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3806:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3830:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3831:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
             {
-             before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3807:2: ( rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3807:3: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1
+             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+            // InternalOptimisationLanguage.g:3832:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3832:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
             {
             pushFollow(FOLLOW_2);
-            rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1();
+            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsAssignment_1_1()); 
+             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
 
             }
 
@@ -12129,26 +12175,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__MultiplyDivideModuloExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3816:1: rule__PowerOfExpressionRule__Group__0 : rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 ;
-    public final void rule__PowerOfExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // InternalOptimisationLanguage.g:3841:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3820:1: ( rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3821:2: rule__PowerOfExpressionRule__Group__0__Impl rule__PowerOfExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3845:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
+            // InternalOptimisationLanguage.g:3846:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
             {
-            pushFollow(FOLLOW_37);
-            rule__PowerOfExpressionRule__Group__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1();
 
             state._fsp--;
 
@@ -12167,35 +12213,53 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3828:1: rule__PowerOfExpressionRule__Group__0__Impl : ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3853:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3832:1: ( ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:3833:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            {
-            // InternalOptimisationLanguage.g:3833:1: ( ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 ) )
-            // InternalOptimisationLanguage.g:3834:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
+            // InternalOptimisationLanguage.g:3857:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
+            // InternalOptimisationLanguage.g:3858:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
-            // InternalOptimisationLanguage.g:3835:2: ( rule__PowerOfExpressionRule__LeftOperandAssignment_0 )
-            // InternalOptimisationLanguage.g:3835:3: rule__PowerOfExpressionRule__LeftOperandAssignment_0
+            // InternalOptimisationLanguage.g:3858:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalOptimisationLanguage.g:3859:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
             {
-            pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__LeftOperandAssignment_0();
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+            // InternalOptimisationLanguage.g:3860:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            loop29:
+            do {
+                int alt29=2;
+                int LA29_0 = input.LA(1);
 
-            state._fsp--;
+                if ( ((LA29_0>=22 && LA29_0<=23)) ) {
+                    alt29=1;
+                }
 
 
-            }
+                switch (alt29) {
+            	case 1 :
+            	    // InternalOptimisationLanguage.g:3860:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
+            	    {
+            	    pushFollow(FOLLOW_32);
+            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandAssignment_0()); 
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop29;
+                }
+            } while (true);
+
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
 
             }
 
@@ -12214,21 +12278,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3843:1: rule__PowerOfExpressionRule__Group__1 : rule__PowerOfExpressionRule__Group__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // InternalOptimisationLanguage.g:3868:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3847:1: ( rule__PowerOfExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3848:2: rule__PowerOfExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3872:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:3873:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group__1__Impl();
+            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -12247,46 +12311,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3854:1: rule__PowerOfExpressionRule__Group__1__Impl : ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) ;
-    public final void rule__PowerOfExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3879:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3858:1: ( ( ( rule__PowerOfExpressionRule__Group_1__0 )? ) )
-            // InternalOptimisationLanguage.g:3859:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
+            // InternalOptimisationLanguage.g:3883:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:3884:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:3859:1: ( ( rule__PowerOfExpressionRule__Group_1__0 )? )
-            // InternalOptimisationLanguage.g:3860:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
+            // InternalOptimisationLanguage.g:3884:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3885:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:3861:2: ( rule__PowerOfExpressionRule__Group_1__0 )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
-
-            if ( (LA29_0==67) ) {
-                alt29=1;
-            }
-            switch (alt29) {
-                case 1 :
-                    // InternalOptimisationLanguage.g:3861:3: rule__PowerOfExpressionRule__Group_1__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__PowerOfExpressionRule__Group_1__0();
-
-                    state._fsp--;
+             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalOptimisationLanguage.g:3886:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:3886:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+            {
+            pushFollow(FOLLOW_2);
+            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
 
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getGroup_1()); 
+             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -12305,26 +12358,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0"
-    // InternalOptimisationLanguage.g:3870:1: rule__PowerOfExpressionRule__Group_1__0 : rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 ;
-    public final void rule__PowerOfExpressionRule__Group_1__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0"
+    // InternalOptimisationLanguage.g:3895:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
+    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3874:1: ( rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1 )
-            // InternalOptimisationLanguage.g:3875:2: rule__PowerOfExpressionRule__Group_1__0__Impl rule__PowerOfExpressionRule__Group_1__1
+            // InternalOptimisationLanguage.g:3899:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
+            // InternalOptimisationLanguage.g:3900:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
             {
-            pushFollow(FOLLOW_26);
-            rule__PowerOfExpressionRule__Group_1__0__Impl();
+            pushFollow(FOLLOW_24);
+            rule__ParanthesesRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1();
+            rule__ParanthesesRule__Group__1();
 
             state._fsp--;
 
@@ -12343,25 +12396,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__0"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:3882:1: rule__PowerOfExpressionRule__Group_1__0__Impl : ( '^' ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3907:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
+    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3886:1: ( ( '^' ) )
-            // InternalOptimisationLanguage.g:3887:1: ( '^' )
+            // InternalOptimisationLanguage.g:3911:1: ( ( '(' ) )
+            // InternalOptimisationLanguage.g:3912:1: ( '(' )
             {
-            // InternalOptimisationLanguage.g:3887:1: ( '^' )
-            // InternalOptimisationLanguage.g:3888:2: '^'
+            // InternalOptimisationLanguage.g:3912:1: ( '(' )
+            // InternalOptimisationLanguage.g:3913:2: '('
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
             match(input,67,FOLLOW_2); 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0()); 
+             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
 
             }
 
@@ -12380,21 +12433,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1"
-    // InternalOptimisationLanguage.g:3897:1: rule__PowerOfExpressionRule__Group_1__1 : rule__PowerOfExpressionRule__Group_1__1__Impl ;
-    public final void rule__PowerOfExpressionRule__Group_1__1() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1"
+    // InternalOptimisationLanguage.g:3922:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
+    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3901:1: ( rule__PowerOfExpressionRule__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:3902:2: rule__PowerOfExpressionRule__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:3926:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
+            // InternalOptimisationLanguage.g:3927:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
             {
+            pushFollow(FOLLOW_36);
+            rule__ParanthesesRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__Group_1__1__Impl();
+            rule__ParanthesesRule__Group__2();
 
             state._fsp--;
 
@@ -12413,35 +12471,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1"
+    // $ANTLR end "rule__ParanthesesRule__Group__1"
 
 
-    // $ANTLR start "rule__PowerOfExpressionRule__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:3908:1: rule__PowerOfExpressionRule__Group_1__1__Impl : ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) ;
-    public final void rule__PowerOfExpressionRule__Group_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:3934:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
+    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3912:1: ( ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) ) )
-            // InternalOptimisationLanguage.g:3913:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
+            // InternalOptimisationLanguage.g:3938:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:3939:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:3913:1: ( ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 ) )
-            // InternalOptimisationLanguage.g:3914:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
+            // InternalOptimisationLanguage.g:3939:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3940:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
             {
-             before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
-            // InternalOptimisationLanguage.g:3915:2: ( rule__PowerOfExpressionRule__RightOperandAssignment_1_1 )
-            // InternalOptimisationLanguage.g:3915:3: rule__PowerOfExpressionRule__RightOperandAssignment_1_1
+             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+            // InternalOptimisationLanguage.g:3941:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:3941:3: rule__ParanthesesRule__SubExpressionAssignment_1
             {
             pushFollow(FOLLOW_2);
-            rule__PowerOfExpressionRule__RightOperandAssignment_1_1();
+            rule__ParanthesesRule__SubExpressionAssignment_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandAssignment_1_1()); 
+             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
 
             }
 
@@ -12460,26 +12518,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__PowerOfExpressionRule__Group_1__1__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0"
-    // InternalOptimisationLanguage.g:3924:1: rule__UnaryAddOrSubtractExpressionRule__Group__0 : rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2"
+    // InternalOptimisationLanguage.g:3949:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
+    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3928:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1 )
-            // InternalOptimisationLanguage.g:3929:2: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl rule__UnaryAddOrSubtractExpressionRule__Group__1
+            // InternalOptimisationLanguage.g:3953:1: ( rule__ParanthesesRule__Group__2__Impl )
+            // InternalOptimisationLanguage.g:3954:2: rule__ParanthesesRule__Group__2__Impl
             {
-            pushFollow(FOLLOW_26);
-            rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl();
-
-            state._fsp--;
-
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1();
+            rule__ParanthesesRule__Group__2__Impl();
 
             state._fsp--;
 
@@ -12498,53 +12551,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0"
+    // $ANTLR end "rule__ParanthesesRule__Group__2"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3936:1: rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
+    // InternalOptimisationLanguage.g:3960:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
+    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3940:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* ) )
-            // InternalOptimisationLanguage.g:3941:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
+            // InternalOptimisationLanguage.g:3964:1: ( ( ')' ) )
+            // InternalOptimisationLanguage.g:3965:1: ( ')' )
             {
-            // InternalOptimisationLanguage.g:3941:1: ( ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )* )
-            // InternalOptimisationLanguage.g:3942:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
+            // InternalOptimisationLanguage.g:3965:1: ( ')' )
+            // InternalOptimisationLanguage.g:3966:2: ')'
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
-            // InternalOptimisationLanguage.g:3943:2: ( rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 )*
-            loop30:
-            do {
-                int alt30=2;
-                int LA30_0 = input.LA(1);
-
-                if ( ((LA30_0>=22 && LA30_0<=23)) ) {
-                    alt30=1;
-                }
-
-
-                switch (alt30) {
-            	case 1 :
-            	    // InternalOptimisationLanguage.g:3943:3: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0
-            	    {
-            	    pushFollow(FOLLOW_34);
-            	    rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0();
-
-            	    state._fsp--;
-
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop30;
-                }
-            } while (true);
-
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAssignment_0()); 
+             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+            match(input,68,FOLLOW_2); 
+             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
 
             }
 
@@ -12563,21 +12588,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__0__Impl"
+    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1"
-    // InternalOptimisationLanguage.g:3951:1: rule__UnaryAddOrSubtractExpressionRule__Group__1 : rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0"
+    // InternalOptimisationLanguage.g:3976:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
+    public final void rule__CallRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3955:1: ( rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:3956:2: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:3980:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
+            // InternalOptimisationLanguage.g:3981:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
             {
+            pushFollow(FOLLOW_37);
+            rule__CallRule__Group__0__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl();
+            rule__CallRule__Group__1();
 
             state._fsp--;
 
@@ -12596,35 +12626,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__0"
 
 
-    // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:3962:1: rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl : ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:3988:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
+    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3966:1: ( ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:3967:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:3992:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:3993:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:3967:1: ( ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 ) )
-            // InternalOptimisationLanguage.g:3968:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:3993:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:3994:2: ( rule__CallRule__FunctionAssignment_0 )
             {
-             before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalOptimisationLanguage.g:3969:2: ( rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 )
-            // InternalOptimisationLanguage.g:3969:3: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1
+             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+            // InternalOptimisationLanguage.g:3995:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalOptimisationLanguage.g:3995:3: rule__CallRule__FunctionAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1();
+            rule__CallRule__FunctionAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
 
             }
 
@@ -12643,26 +12673,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__UnaryAddOrSubtractExpressionRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0"
-    // InternalOptimisationLanguage.g:3978:1: rule__ParanthesesRule__Group__0 : rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 ;
-    public final void rule__ParanthesesRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1"
+    // InternalOptimisationLanguage.g:4003:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
+    public final void rule__CallRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3982:1: ( rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1 )
-            // InternalOptimisationLanguage.g:3983:2: rule__ParanthesesRule__Group__0__Impl rule__ParanthesesRule__Group__1
+            // InternalOptimisationLanguage.g:4007:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
+            // InternalOptimisationLanguage.g:4008:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
             {
-            pushFollow(FOLLOW_26);
-            rule__ParanthesesRule__Group__0__Impl();
+            pushFollow(FOLLOW_38);
+            rule__CallRule__Group__1__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__1();
+            rule__CallRule__Group__2();
 
             state._fsp--;
 
@@ -12681,25 +12711,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group__1"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:3990:1: rule__ParanthesesRule__Group__0__Impl : ( '(' ) ;
-    public final void rule__ParanthesesRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:4015:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
+    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:3994:1: ( ( '(' ) )
-            // InternalOptimisationLanguage.g:3995:1: ( '(' )
+            // InternalOptimisationLanguage.g:4019:1: ( ( '(' ) )
+            // InternalOptimisationLanguage.g:4020:1: ( '(' )
             {
-            // InternalOptimisationLanguage.g:3995:1: ( '(' )
-            // InternalOptimisationLanguage.g:3996:2: '('
+            // InternalOptimisationLanguage.g:4020:1: ( '(' )
+            // InternalOptimisationLanguage.g:4021:2: '('
             {
-             before(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
-            match(input,68,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0()); 
+             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+            match(input,67,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
 
             }
 
@@ -12718,26 +12748,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1"
-    // InternalOptimisationLanguage.g:4005:1: rule__ParanthesesRule__Group__1 : rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 ;
-    public final void rule__ParanthesesRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2"
+    // InternalOptimisationLanguage.g:4030:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
+    public final void rule__CallRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4009:1: ( rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2 )
-            // InternalOptimisationLanguage.g:4010:2: rule__ParanthesesRule__Group__1__Impl rule__ParanthesesRule__Group__2
+            // InternalOptimisationLanguage.g:4034:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
+            // InternalOptimisationLanguage.g:4035:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
             {
             pushFollow(FOLLOW_38);
-            rule__ParanthesesRule__Group__1__Impl();
+            rule__CallRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2();
+            rule__CallRule__Group__3();
 
             state._fsp--;
 
@@ -12756,35 +12786,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group__2"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4017:1: rule__ParanthesesRule__Group__1__Impl : ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) ;
-    public final void rule__ParanthesesRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__2__Impl"
+    // InternalOptimisationLanguage.g:4042:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
+    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4021:1: ( ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:4022:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
+            // InternalOptimisationLanguage.g:4046:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
+            // InternalOptimisationLanguage.g:4047:1: ( ( rule__CallRule__Group_2__0 )? )
             {
-            // InternalOptimisationLanguage.g:4022:1: ( ( rule__ParanthesesRule__SubExpressionAssignment_1 ) )
-            // InternalOptimisationLanguage.g:4023:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
+            // InternalOptimisationLanguage.g:4047:1: ( ( rule__CallRule__Group_2__0 )? )
+            // InternalOptimisationLanguage.g:4048:2: ( rule__CallRule__Group_2__0 )?
             {
-             before(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
-            // InternalOptimisationLanguage.g:4024:2: ( rule__ParanthesesRule__SubExpressionAssignment_1 )
-            // InternalOptimisationLanguage.g:4024:3: rule__ParanthesesRule__SubExpressionAssignment_1
-            {
-            pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__SubExpressionAssignment_1();
+             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
+            // InternalOptimisationLanguage.g:4049:2: ( rule__CallRule__Group_2__0 )?
+            int alt30=2;
+            int LA30_0 = input.LA(1);
 
-            state._fsp--;
+            if ( ((LA30_0>=RULE_QUOTED_ID && LA30_0<=RULE_STRING)||LA30_0==15||(LA30_0>=22 && LA30_0<=23)||LA30_0==67||(LA30_0>=82 && LA30_0<=83)) ) {
+                alt30=1;
+            }
+            switch (alt30) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:4049:3: rule__CallRule__Group_2__0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__CallRule__Group_2__0();
+
+                    state._fsp--;
 
 
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getParanthesesRuleAccess().getSubExpressionAssignment_1()); 
+             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
 
             }
 
@@ -12803,21 +12844,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2"
-    // InternalOptimisationLanguage.g:4032:1: rule__ParanthesesRule__Group__2 : rule__ParanthesesRule__Group__2__Impl ;
-    public final void rule__ParanthesesRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3"
+    // InternalOptimisationLanguage.g:4057:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
+    public final void rule__CallRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4036:1: ( rule__ParanthesesRule__Group__2__Impl )
-            // InternalOptimisationLanguage.g:4037:2: rule__ParanthesesRule__Group__2__Impl
+            // InternalOptimisationLanguage.g:4061:1: ( rule__CallRule__Group__3__Impl )
+            // InternalOptimisationLanguage.g:4062:2: rule__CallRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__ParanthesesRule__Group__2__Impl();
+            rule__CallRule__Group__3__Impl();
 
             state._fsp--;
 
@@ -12836,25 +12877,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group__3"
 
 
-    // $ANTLR start "rule__ParanthesesRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:4043:1: rule__ParanthesesRule__Group__2__Impl : ( ')' ) ;
-    public final void rule__ParanthesesRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group__3__Impl"
+    // InternalOptimisationLanguage.g:4068:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
+    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4047:1: ( ( ')' ) )
-            // InternalOptimisationLanguage.g:4048:1: ( ')' )
+            // InternalOptimisationLanguage.g:4072:1: ( ( ')' ) )
+            // InternalOptimisationLanguage.g:4073:1: ( ')' )
             {
-            // InternalOptimisationLanguage.g:4048:1: ( ')' )
-            // InternalOptimisationLanguage.g:4049:2: ')'
+            // InternalOptimisationLanguage.g:4073:1: ( ')' )
+            // InternalOptimisationLanguage.g:4074:2: ')'
             {
-             before(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
-            match(input,69,FOLLOW_2); 
-             after(grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2()); 
+             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+            match(input,68,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
 
             }
 
@@ -12873,26 +12914,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ParanthesesRule__Group__2__Impl"
+    // $ANTLR end "rule__CallRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__0"
-    // InternalOptimisationLanguage.g:4059:1: rule__CallRule__Group__0 : rule__CallRule__Group__0__Impl rule__CallRule__Group__1 ;
-    public final void rule__CallRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0"
+    // InternalOptimisationLanguage.g:4084:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
+    public final void rule__CallRule__Group_2__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4063:1: ( rule__CallRule__Group__0__Impl rule__CallRule__Group__1 )
-            // InternalOptimisationLanguage.g:4064:2: rule__CallRule__Group__0__Impl rule__CallRule__Group__1
+            // InternalOptimisationLanguage.g:4088:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
+            // InternalOptimisationLanguage.g:4089:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
             {
-            pushFollow(FOLLOW_39);
-            rule__CallRule__Group__0__Impl();
+            pushFollow(FOLLOW_19);
+            rule__CallRule__Group_2__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__1();
+            rule__CallRule__Group_2__1();
 
             state._fsp--;
 
@@ -12911,35 +12952,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0"
+    // $ANTLR end "rule__CallRule__Group_2__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4071:1: rule__CallRule__Group__0__Impl : ( ( rule__CallRule__FunctionAssignment_0 ) ) ;
-    public final void rule__CallRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
+    // InternalOptimisationLanguage.g:4096:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
+    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4075:1: ( ( ( rule__CallRule__FunctionAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:4076:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4100:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
+            // InternalOptimisationLanguage.g:4101:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
             {
-            // InternalOptimisationLanguage.g:4076:1: ( ( rule__CallRule__FunctionAssignment_0 ) )
-            // InternalOptimisationLanguage.g:4077:2: ( rule__CallRule__FunctionAssignment_0 )
+            // InternalOptimisationLanguage.g:4101:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalOptimisationLanguage.g:4102:2: ( rule__CallRule__ParametersAssignment_2_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
-            // InternalOptimisationLanguage.g:4078:2: ( rule__CallRule__FunctionAssignment_0 )
-            // InternalOptimisationLanguage.g:4078:3: rule__CallRule__FunctionAssignment_0
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+            // InternalOptimisationLanguage.g:4103:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalOptimisationLanguage.g:4103:3: rule__CallRule__ParametersAssignment_2_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__FunctionAssignment_0();
+            rule__CallRule__ParametersAssignment_2_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getFunctionAssignment_0()); 
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
 
             }
 
@@ -12958,26 +12999,124 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__0__Impl"
+    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__1"
-    // InternalOptimisationLanguage.g:4086:1: rule__CallRule__Group__1 : rule__CallRule__Group__1__Impl rule__CallRule__Group__2 ;
-    public final void rule__CallRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2__1"
+    // InternalOptimisationLanguage.g:4111:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
+    public final void rule__CallRule__Group_2__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4090:1: ( rule__CallRule__Group__1__Impl rule__CallRule__Group__2 )
-            // InternalOptimisationLanguage.g:4091:2: rule__CallRule__Group__1__Impl rule__CallRule__Group__2
+            // InternalOptimisationLanguage.g:4115:1: ( rule__CallRule__Group_2__1__Impl )
+            // InternalOptimisationLanguage.g:4116:2: rule__CallRule__Group_2__1__Impl
             {
-            pushFollow(FOLLOW_40);
-            rule__CallRule__Group__1__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2__1__Impl();
+
+            state._fsp--;
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
+    // InternalOptimisationLanguage.g:4122:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
+    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4126:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
+            // InternalOptimisationLanguage.g:4127:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            {
+            // InternalOptimisationLanguage.g:4127:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalOptimisationLanguage.g:4128:2: ( rule__CallRule__Group_2_1__0 )*
+            {
+             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+            // InternalOptimisationLanguage.g:4129:2: ( rule__CallRule__Group_2_1__0 )*
+            loop31:
+            do {
+                int alt31=2;
+                int LA31_0 = input.LA(1);
+
+                if ( (LA31_0==61) ) {
+                    alt31=1;
+                }
+
+
+                switch (alt31) {
+            	case 1 :
+            	    // InternalOptimisationLanguage.g:4129:3: rule__CallRule__Group_2_1__0
+            	    {
+            	    pushFollow(FOLLOW_20);
+            	    rule__CallRule__Group_2_1__0();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop31;
+                }
+            } while (true);
+
+             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__0"
+    // InternalOptimisationLanguage.g:4138:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
+    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4142:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
+            // InternalOptimisationLanguage.g:4143:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            {
+            pushFollow(FOLLOW_24);
+            rule__CallRule__Group_2_1__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__2();
+            rule__CallRule__Group_2_1__1();
 
             state._fsp--;
 
@@ -12996,25 +13135,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1"
+    // $ANTLR end "rule__CallRule__Group_2_1__0"
 
 
-    // $ANTLR start "rule__CallRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4098:1: rule__CallRule__Group__1__Impl : ( '(' ) ;
-    public final void rule__CallRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
+    // InternalOptimisationLanguage.g:4150:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
+    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4102:1: ( ( '(' ) )
-            // InternalOptimisationLanguage.g:4103:1: ( '(' )
+            // InternalOptimisationLanguage.g:4154:1: ( ( ',' ) )
+            // InternalOptimisationLanguage.g:4155:1: ( ',' )
             {
-            // InternalOptimisationLanguage.g:4103:1: ( '(' )
-            // InternalOptimisationLanguage.g:4104:2: '('
+            // InternalOptimisationLanguage.g:4155:1: ( ',' )
+            // InternalOptimisationLanguage.g:4156:2: ','
             {
-             before(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
-            match(input,68,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1()); 
+             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+            match(input,61,FOLLOW_2); 
+             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
 
             }
 
@@ -13033,30 +13172,72 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__1__Impl"
+    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2"
-    // InternalOptimisationLanguage.g:4113:1: rule__CallRule__Group__2 : rule__CallRule__Group__2__Impl rule__CallRule__Group__3 ;
-    public final void rule__CallRule__Group__2() throws RecognitionException {
+    // $ANTLR start "rule__CallRule__Group_2_1__1"
+    // InternalOptimisationLanguage.g:4165:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
+    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4117:1: ( rule__CallRule__Group__2__Impl rule__CallRule__Group__3 )
-            // InternalOptimisationLanguage.g:4118:2: rule__CallRule__Group__2__Impl rule__CallRule__Group__3
+            // InternalOptimisationLanguage.g:4169:1: ( rule__CallRule__Group_2_1__1__Impl )
+            // InternalOptimisationLanguage.g:4170:2: rule__CallRule__Group_2_1__1__Impl
             {
-            pushFollow(FOLLOW_40);
-            rule__CallRule__Group__2__Impl();
+            pushFollow(FOLLOW_2);
+            rule__CallRule__Group_2_1__1__Impl();
 
             state._fsp--;
 
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__CallRule__Group_2_1__1"
+
+
+    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
+    // InternalOptimisationLanguage.g:4176:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
+    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4180:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
+            // InternalOptimisationLanguage.g:4181:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            {
+            // InternalOptimisationLanguage.g:4181:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalOptimisationLanguage.g:4182:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            {
+             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+            // InternalOptimisationLanguage.g:4183:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalOptimisationLanguage.g:4183:3: rule__CallRule__ParametersAssignment_2_1_1
+            {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3();
+            rule__CallRule__ParametersAssignment_2_1_1();
 
             state._fsp--;
 
 
+            }
+
+             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+
+            }
+
+
             }
 
         }
@@ -13071,46 +13252,73 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2"
+    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:4125:1: rule__CallRule__Group__2__Impl : ( ( rule__CallRule__Group_2__0 )? ) ;
-    public final void rule__CallRule__Group__2__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
+    // InternalOptimisationLanguage.g:4192:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
+    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4129:1: ( ( ( rule__CallRule__Group_2__0 )? ) )
-            // InternalOptimisationLanguage.g:4130:1: ( ( rule__CallRule__Group_2__0 )? )
-            {
-            // InternalOptimisationLanguage.g:4130:1: ( ( rule__CallRule__Group_2__0 )? )
-            // InternalOptimisationLanguage.g:4131:2: ( rule__CallRule__Group_2__0 )?
+            // InternalOptimisationLanguage.g:4196:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
+            // InternalOptimisationLanguage.g:4197:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2()); 
-            // InternalOptimisationLanguage.g:4132:2: ( rule__CallRule__Group_2__0 )?
-            int alt31=2;
-            int LA31_0 = input.LA(1);
+            pushFollow(FOLLOW_39);
+            rule__DoubleLiteralRule__Group__0__Impl();
+
+            state._fsp--;
+
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__Group__1();
+
+            state._fsp--;
+
 
-            if ( ((LA31_0>=RULE_QUOTED_ID && LA31_0<=RULE_STRING)||LA31_0==15||(LA31_0>=22 && LA31_0<=23)||LA31_0==68||LA31_0==70||(LA31_0>=81 && LA31_0<=82)) ) {
-                alt31=1;
             }
-            switch (alt31) {
-                case 1 :
-                    // InternalOptimisationLanguage.g:4132:3: rule__CallRule__Group_2__0
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__CallRule__Group_2__0();
 
-                    state._fsp--;
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
 
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+
+
+    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:4204:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4208:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:4209:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            {
+            // InternalOptimisationLanguage.g:4209:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4210:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            {
+             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalOptimisationLanguage.g:4211:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalOptimisationLanguage.g:4211:3: rule__DoubleLiteralRule__LiteralAssignment_0
+            {
+            pushFollow(FOLLOW_2);
+            rule__DoubleLiteralRule__LiteralAssignment_0();
+
+            state._fsp--;
 
-                    }
-                    break;
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2()); 
+             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -13129,21 +13337,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__2__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group__3"
-    // InternalOptimisationLanguage.g:4140:1: rule__CallRule__Group__3 : rule__CallRule__Group__3__Impl ;
-    public final void rule__CallRule__Group__3() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
+    // InternalOptimisationLanguage.g:4219:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
+    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4144:1: ( rule__CallRule__Group__3__Impl )
-            // InternalOptimisationLanguage.g:4145:2: rule__CallRule__Group__3__Impl
+            // InternalOptimisationLanguage.g:4223:1: ( rule__DoubleLiteralRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:4224:2: rule__DoubleLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group__3__Impl();
+            rule__DoubleLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -13162,25 +13370,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:4151:1: rule__CallRule__Group__3__Impl : ( ')' ) ;
-    public final void rule__CallRule__Group__3__Impl() throws RecognitionException {
+    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:4230:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4155:1: ( ( ')' ) )
-            // InternalOptimisationLanguage.g:4156:1: ( ')' )
+            // InternalOptimisationLanguage.g:4234:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
+            // InternalOptimisationLanguage.g:4235:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalOptimisationLanguage.g:4156:1: ( ')' )
-            // InternalOptimisationLanguage.g:4157:2: ')'
+            // InternalOptimisationLanguage.g:4235:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalOptimisationLanguage.g:4236:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
-            match(input,69,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3()); 
+             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalOptimisationLanguage.g:4237:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            int alt32=2;
+            int LA32_0 = input.LA(1);
+
+            if ( ((LA32_0>=27 && LA32_0<=46)) ) {
+                alt32=1;
+            }
+            switch (alt32) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:4237:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__DoubleLiteralRule__FactorAssignment_1();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
+            }
+
+             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -13199,26 +13428,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group__3__Impl"
+    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0"
-    // InternalOptimisationLanguage.g:4167:1: rule__CallRule__Group_2__0 : rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 ;
-    public final void rule__CallRule__Group_2__0() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
+    // InternalOptimisationLanguage.g:4246:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
+    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4171:1: ( rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1 )
-            // InternalOptimisationLanguage.g:4172:2: rule__CallRule__Group_2__0__Impl rule__CallRule__Group_2__1
+            // InternalOptimisationLanguage.g:4250:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
+            // InternalOptimisationLanguage.g:4251:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_19);
-            rule__CallRule__Group_2__0__Impl();
+            pushFollow(FOLLOW_39);
+            rule__IntegerLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1();
+            rule__IntegerLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -13237,35 +13466,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__0__Impl"
-    // InternalOptimisationLanguage.g:4179:1: rule__CallRule__Group_2__0__Impl : ( ( rule__CallRule__ParametersAssignment_2_0 ) ) ;
-    public final void rule__CallRule__Group_2__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:4258:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
+    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4183:1: ( ( ( rule__CallRule__ParametersAssignment_2_0 ) ) )
-            // InternalOptimisationLanguage.g:4184:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
+            // InternalOptimisationLanguage.g:4262:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:4263:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:4184:1: ( ( rule__CallRule__ParametersAssignment_2_0 ) )
-            // InternalOptimisationLanguage.g:4185:2: ( rule__CallRule__ParametersAssignment_2_0 )
+            // InternalOptimisationLanguage.g:4263:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4264:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
-            // InternalOptimisationLanguage.g:4186:2: ( rule__CallRule__ParametersAssignment_2_0 )
-            // InternalOptimisationLanguage.g:4186:3: rule__CallRule__ParametersAssignment_2_0
+             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+            // InternalOptimisationLanguage.g:4265:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalOptimisationLanguage.g:4265:3: rule__IntegerLiteralRule__LiteralAssignment_0
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_0();
+            rule__IntegerLiteralRule__LiteralAssignment_0();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_0()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
 
             }
 
@@ -13284,21 +13513,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__0__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1"
-    // InternalOptimisationLanguage.g:4194:1: rule__CallRule__Group_2__1 : rule__CallRule__Group_2__1__Impl ;
-    public final void rule__CallRule__Group_2__1() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
+    // InternalOptimisationLanguage.g:4273:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
+    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4198:1: ( rule__CallRule__Group_2__1__Impl )
-            // InternalOptimisationLanguage.g:4199:2: rule__CallRule__Group_2__1__Impl
+            // InternalOptimisationLanguage.g:4277:1: ( rule__IntegerLiteralRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:4278:2: rule__IntegerLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2__1__Impl();
+            rule__IntegerLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -13317,53 +13546,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2__1__Impl"
-    // InternalOptimisationLanguage.g:4205:1: rule__CallRule__Group_2__1__Impl : ( ( rule__CallRule__Group_2_1__0 )* ) ;
-    public final void rule__CallRule__Group_2__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:4284:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
+    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4209:1: ( ( ( rule__CallRule__Group_2_1__0 )* ) )
-            // InternalOptimisationLanguage.g:4210:1: ( ( rule__CallRule__Group_2_1__0 )* )
+            // InternalOptimisationLanguage.g:4288:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
+            // InternalOptimisationLanguage.g:4289:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
             {
-            // InternalOptimisationLanguage.g:4210:1: ( ( rule__CallRule__Group_2_1__0 )* )
-            // InternalOptimisationLanguage.g:4211:2: ( rule__CallRule__Group_2_1__0 )*
+            // InternalOptimisationLanguage.g:4289:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalOptimisationLanguage.g:4290:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
             {
-             before(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
-            // InternalOptimisationLanguage.g:4212:2: ( rule__CallRule__Group_2_1__0 )*
-            loop32:
-            do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
-
-                if ( (LA32_0==61) ) {
-                    alt32=1;
-                }
-
+             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+            // InternalOptimisationLanguage.g:4291:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            int alt33=2;
+            int LA33_0 = input.LA(1);
 
-                switch (alt32) {
-            	case 1 :
-            	    // InternalOptimisationLanguage.g:4212:3: rule__CallRule__Group_2_1__0
-            	    {
-            	    pushFollow(FOLLOW_20);
-            	    rule__CallRule__Group_2_1__0();
+            if ( ((LA33_0>=27 && LA33_0<=46)) ) {
+                alt33=1;
+            }
+            switch (alt33) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:4291:3: rule__IntegerLiteralRule__FactorAssignment_1
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__IntegerLiteralRule__FactorAssignment_1();
 
-            	    state._fsp--;
+                    state._fsp--;
 
 
-            	    }
-            	    break;
+                    }
+                    break;
 
-            	default :
-            	    break loop32;
-                }
-            } while (true);
+            }
 
-             after(grammarAccess.getCallRuleAccess().getGroup_2_1()); 
+             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
 
             }
 
@@ -13382,26 +13604,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2__1__Impl"
+    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0"
-    // InternalOptimisationLanguage.g:4221:1: rule__CallRule__Group_2_1__0 : rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 ;
-    public final void rule__CallRule__Group_2_1__0() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
+    // InternalOptimisationLanguage.g:4300:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
+    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4225:1: ( rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1 )
-            // InternalOptimisationLanguage.g:4226:2: rule__CallRule__Group_2_1__0__Impl rule__CallRule__Group_2_1__1
+            // InternalOptimisationLanguage.g:4304:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
+            // InternalOptimisationLanguage.g:4305:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
             {
-            pushFollow(FOLLOW_26);
-            rule__CallRule__Group_2_1__0__Impl();
+            pushFollow(FOLLOW_17);
+            rule__BooleanLiteralRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1();
+            rule__BooleanLiteralRule__Group__1();
 
             state._fsp--;
 
@@ -13420,25 +13642,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__0__Impl"
-    // InternalOptimisationLanguage.g:4233:1: rule__CallRule__Group_2_1__0__Impl : ( ',' ) ;
-    public final void rule__CallRule__Group_2_1__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:4312:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
+    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4237:1: ( ( ',' ) )
-            // InternalOptimisationLanguage.g:4238:1: ( ',' )
+            // InternalOptimisationLanguage.g:4316:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:4317:1: ( () )
             {
-            // InternalOptimisationLanguage.g:4238:1: ( ',' )
-            // InternalOptimisationLanguage.g:4239:2: ','
+            // InternalOptimisationLanguage.g:4317:1: ( () )
+            // InternalOptimisationLanguage.g:4318:2: ()
             {
-             before(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
-            match(input,61,FOLLOW_2); 
-             after(grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0()); 
+             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+            // InternalOptimisationLanguage.g:4319:2: ()
+            // InternalOptimisationLanguage.g:4319:3: 
+            {
+            }
+
+             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
 
             }
 
@@ -13446,10 +13672,6 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
 
         }
-        catch (RecognitionException re) {
-            reportError(re);
-            recover(input,re);
-        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -13457,21 +13679,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__0__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1"
-    // InternalOptimisationLanguage.g:4248:1: rule__CallRule__Group_2_1__1 : rule__CallRule__Group_2_1__1__Impl ;
-    public final void rule__CallRule__Group_2_1__1() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
+    // InternalOptimisationLanguage.g:4327:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
+    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4252:1: ( rule__CallRule__Group_2_1__1__Impl )
-            // InternalOptimisationLanguage.g:4253:2: rule__CallRule__Group_2_1__1__Impl
+            // InternalOptimisationLanguage.g:4331:1: ( rule__BooleanLiteralRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:4332:2: rule__BooleanLiteralRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__Group_2_1__1__Impl();
+            rule__BooleanLiteralRule__Group__1__Impl();
 
             state._fsp--;
 
@@ -13490,35 +13712,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
 
 
-    // $ANTLR start "rule__CallRule__Group_2_1__1__Impl"
-    // InternalOptimisationLanguage.g:4259:1: rule__CallRule__Group_2_1__1__Impl : ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) ;
-    public final void rule__CallRule__Group_2_1__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:4338:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
+    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4263:1: ( ( ( rule__CallRule__ParametersAssignment_2_1_1 ) ) )
-            // InternalOptimisationLanguage.g:4264:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
+            // InternalOptimisationLanguage.g:4342:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
+            // InternalOptimisationLanguage.g:4343:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
             {
-            // InternalOptimisationLanguage.g:4264:1: ( ( rule__CallRule__ParametersAssignment_2_1_1 ) )
-            // InternalOptimisationLanguage.g:4265:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
+            // InternalOptimisationLanguage.g:4343:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalOptimisationLanguage.g:4344:2: ( rule__BooleanLiteralRule__Alternatives_1 )
             {
-             before(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
-            // InternalOptimisationLanguage.g:4266:2: ( rule__CallRule__ParametersAssignment_2_1_1 )
-            // InternalOptimisationLanguage.g:4266:3: rule__CallRule__ParametersAssignment_2_1_1
+             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+            // InternalOptimisationLanguage.g:4345:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalOptimisationLanguage.g:4345:3: rule__BooleanLiteralRule__Alternatives_1
             {
             pushFollow(FOLLOW_2);
-            rule__CallRule__ParametersAssignment_2_1_1();
+            rule__BooleanLiteralRule__Alternatives_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getCallRuleAccess().getParametersAssignment_2_1_1()); 
+             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
 
             }
 
@@ -13537,26 +13759,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__CallRule__Group_2_1__1__Impl"
+    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0"
-    // InternalOptimisationLanguage.g:4275:1: rule__ValueReferenceRule__Group__0 : rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 ;
-    public final void rule__ValueReferenceRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0"
+    // InternalOptimisationLanguage.g:4354:1: rule__TypeDefinitionRule__Group__0 : rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 ;
+    public final void rule__TypeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4279:1: ( rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1 )
-            // InternalOptimisationLanguage.g:4280:2: rule__ValueReferenceRule__Group__0__Impl rule__ValueReferenceRule__Group__1
+            // InternalOptimisationLanguage.g:4358:1: ( rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1 )
+            // InternalOptimisationLanguage.g:4359:2: rule__TypeDefinitionRule__Group__0__Impl rule__TypeDefinitionRule__Group__1
             {
-            pushFollow(FOLLOW_26);
-            rule__ValueReferenceRule__Group__0__Impl();
+            pushFollow(FOLLOW_40);
+            rule__TypeDefinitionRule__Group__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1();
+            rule__TypeDefinitionRule__Group__1();
 
             state._fsp--;
 
@@ -13575,29 +13797,46 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4287:1: rule__ValueReferenceRule__Group__0__Impl : ( () ) ;
-    public final void rule__ValueReferenceRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__0__Impl"
+    // InternalOptimisationLanguage.g:4366:1: rule__TypeDefinitionRule__Group__0__Impl : ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4291:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4292:1: ( () )
-            {
-            // InternalOptimisationLanguage.g:4292:1: ( () )
-            // InternalOptimisationLanguage.g:4293:2: ()
+            // InternalOptimisationLanguage.g:4370:1: ( ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? ) )
+            // InternalOptimisationLanguage.g:4371:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
-            // InternalOptimisationLanguage.g:4294:2: ()
-            // InternalOptimisationLanguage.g:4294:3: 
+            // InternalOptimisationLanguage.g:4371:1: ( ( rule__TypeDefinitionRule__AbstractAssignment_0 )? )
+            // InternalOptimisationLanguage.g:4372:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
             {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
+            // InternalOptimisationLanguage.g:4373:2: ( rule__TypeDefinitionRule__AbstractAssignment_0 )?
+            int alt34=2;
+            int LA34_0 = input.LA(1);
+
+            if ( (LA34_0==84) ) {
+                alt34=1;
+            }
+            switch (alt34) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:4373:3: rule__TypeDefinitionRule__AbstractAssignment_0
+                    {
+                    pushFollow(FOLLOW_2);
+                    rule__TypeDefinitionRule__AbstractAssignment_0();
+
+                    state._fsp--;
+
+
+                    }
+                    break;
+
             }
 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAssignment_0()); 
 
             }
 
@@ -13605,6 +13844,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -13612,21 +13855,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__0__Impl"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1"
-    // InternalOptimisationLanguage.g:4302:1: rule__ValueReferenceRule__Group__1 : rule__ValueReferenceRule__Group__1__Impl ;
-    public final void rule__ValueReferenceRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1"
+    // InternalOptimisationLanguage.g:4381:1: rule__TypeDefinitionRule__Group__1 : rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 ;
+    public final void rule__TypeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4306:1: ( rule__ValueReferenceRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4307:2: rule__ValueReferenceRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:4385:1: ( rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2 )
+            // InternalOptimisationLanguage.g:4386:2: rule__TypeDefinitionRule__Group__1__Impl rule__TypeDefinitionRule__Group__2
             {
+            pushFollow(FOLLOW_5);
+            rule__TypeDefinitionRule__Group__1__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__ValueReferenceRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__2();
 
             state._fsp--;
 
@@ -13645,25 +13893,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1"
 
 
-    // $ANTLR start "rule__ValueReferenceRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4313:1: rule__ValueReferenceRule__Group__1__Impl : ( 'value' ) ;
-    public final void rule__ValueReferenceRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__1__Impl"
+    // InternalOptimisationLanguage.g:4393:1: rule__TypeDefinitionRule__Group__1__Impl : ( 'type' ) ;
+    public final void rule__TypeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4317:1: ( ( 'value' ) )
-            // InternalOptimisationLanguage.g:4318:1: ( 'value' )
+            // InternalOptimisationLanguage.g:4397:1: ( ( 'type' ) )
+            // InternalOptimisationLanguage.g:4398:1: ( 'type' )
             {
-            // InternalOptimisationLanguage.g:4318:1: ( 'value' )
-            // InternalOptimisationLanguage.g:4319:2: 'value'
+            // InternalOptimisationLanguage.g:4398:1: ( 'type' )
+            // InternalOptimisationLanguage.g:4399:2: 'type'
             {
-             before(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
-            match(input,70,FOLLOW_2); 
-             after(grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
+            match(input,69,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1()); 
 
             }
 
@@ -13682,26 +13930,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__ValueReferenceRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__1__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0"
-    // InternalOptimisationLanguage.g:4329:1: rule__DoubleLiteralRule__Group__0 : rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 ;
-    public final void rule__DoubleLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2"
+    // InternalOptimisationLanguage.g:4408:1: rule__TypeDefinitionRule__Group__2 : rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 ;
+    public final void rule__TypeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4333:1: ( rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1 )
-            // InternalOptimisationLanguage.g:4334:2: rule__DoubleLiteralRule__Group__0__Impl rule__DoubleLiteralRule__Group__1
+            // InternalOptimisationLanguage.g:4412:1: ( rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3 )
+            // InternalOptimisationLanguage.g:4413:2: rule__TypeDefinitionRule__Group__2__Impl rule__TypeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_41);
-            rule__DoubleLiteralRule__Group__0__Impl();
+            rule__TypeDefinitionRule__Group__2__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__3();
 
             state._fsp--;
 
@@ -13720,35 +13968,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4341:1: rule__DoubleLiteralRule__Group__0__Impl : ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__DoubleLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__2__Impl"
+    // InternalOptimisationLanguage.g:4420:1: rule__TypeDefinitionRule__Group__2__Impl : ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) ;
+    public final void rule__TypeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4345:1: ( ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:4346:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4424:1: ( ( ( rule__TypeDefinitionRule__NameAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:4425:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:4346:1: ( ( rule__DoubleLiteralRule__LiteralAssignment_0 ) )
-            // InternalOptimisationLanguage.g:4347:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
+            // InternalOptimisationLanguage.g:4425:1: ( ( rule__TypeDefinitionRule__NameAssignment_2 ) )
+            // InternalOptimisationLanguage.g:4426:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalOptimisationLanguage.g:4348:2: ( rule__DoubleLiteralRule__LiteralAssignment_0 )
-            // InternalOptimisationLanguage.g:4348:3: rule__DoubleLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
+            // InternalOptimisationLanguage.g:4427:2: ( rule__TypeDefinitionRule__NameAssignment_2 )
+            // InternalOptimisationLanguage.g:4427:3: rule__TypeDefinitionRule__NameAssignment_2
             {
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__NameAssignment_2();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameAssignment_2()); 
 
             }
 
@@ -13767,21 +14015,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__2__Impl"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1"
-    // InternalOptimisationLanguage.g:4356:1: rule__DoubleLiteralRule__Group__1 : rule__DoubleLiteralRule__Group__1__Impl ;
-    public final void rule__DoubleLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3"
+    // InternalOptimisationLanguage.g:4435:1: rule__TypeDefinitionRule__Group__3 : rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 ;
+    public final void rule__TypeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4360:1: ( rule__DoubleLiteralRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4361:2: rule__DoubleLiteralRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:4439:1: ( rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4 )
+            // InternalOptimisationLanguage.g:4440:2: rule__TypeDefinitionRule__Group__3__Impl rule__TypeDefinitionRule__Group__4
             {
+            pushFollow(FOLLOW_41);
+            rule__TypeDefinitionRule__Group__3__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__DoubleLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__4();
 
             state._fsp--;
 
@@ -13800,36 +14053,36 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3"
 
 
-    // $ANTLR start "rule__DoubleLiteralRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4367:1: rule__DoubleLiteralRule__Group__1__Impl : ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__DoubleLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__3__Impl"
+    // InternalOptimisationLanguage.g:4447:1: rule__TypeDefinitionRule__Group__3__Impl : ( ( rule__TypeDefinitionRule__Group_3__0 )? ) ;
+    public final void rule__TypeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4371:1: ( ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? ) )
-            // InternalOptimisationLanguage.g:4372:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
+            // InternalOptimisationLanguage.g:4451:1: ( ( ( rule__TypeDefinitionRule__Group_3__0 )? ) )
+            // InternalOptimisationLanguage.g:4452:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
             {
-            // InternalOptimisationLanguage.g:4372:1: ( ( rule__DoubleLiteralRule__FactorAssignment_1 )? )
-            // InternalOptimisationLanguage.g:4373:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
+            // InternalOptimisationLanguage.g:4452:1: ( ( rule__TypeDefinitionRule__Group_3__0 )? )
+            // InternalOptimisationLanguage.g:4453:2: ( rule__TypeDefinitionRule__Group_3__0 )?
             {
-             before(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalOptimisationLanguage.g:4374:2: ( rule__DoubleLiteralRule__FactorAssignment_1 )?
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+             before(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
+            // InternalOptimisationLanguage.g:4454:2: ( rule__TypeDefinitionRule__Group_3__0 )?
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( ((LA33_0>=27 && LA33_0<=46)) ) {
-                alt33=1;
+            if ( (LA35_0==70) ) {
+                alt35=1;
             }
-            switch (alt33) {
+            switch (alt35) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:4374:3: rule__DoubleLiteralRule__FactorAssignment_1
+                    // InternalOptimisationLanguage.g:4454:3: rule__TypeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
-                    rule__DoubleLiteralRule__FactorAssignment_1();
+                    rule__TypeDefinitionRule__Group_3__0();
 
                     state._fsp--;
 
@@ -13839,7 +14092,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
             }
 
-             after(grammarAccess.getDoubleLiteralRuleAccess().getFactorAssignment_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getGroup_3()); 
 
             }
 
@@ -13858,26 +14111,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__DoubleLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__3__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0"
-    // InternalOptimisationLanguage.g:4383:1: rule__IntegerLiteralRule__Group__0 : rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 ;
-    public final void rule__IntegerLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4"
+    // InternalOptimisationLanguage.g:4462:1: rule__TypeDefinitionRule__Group__4 : rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 ;
+    public final void rule__TypeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4387:1: ( rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1 )
-            // InternalOptimisationLanguage.g:4388:2: rule__IntegerLiteralRule__Group__0__Impl rule__IntegerLiteralRule__Group__1
+            // InternalOptimisationLanguage.g:4466:1: ( rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5 )
+            // InternalOptimisationLanguage.g:4467:2: rule__TypeDefinitionRule__Group__4__Impl rule__TypeDefinitionRule__Group__5
             {
-            pushFollow(FOLLOW_41);
-            rule__IntegerLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_15);
+            rule__TypeDefinitionRule__Group__4__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group__5();
 
             state._fsp--;
 
@@ -13896,35 +14149,128 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4395:1: rule__IntegerLiteralRule__Group__0__Impl : ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) ;
-    public final void rule__IntegerLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__4__Impl"
+    // InternalOptimisationLanguage.g:4474:1: rule__TypeDefinitionRule__Group__4__Impl : ( '{' ) ;
+    public final void rule__TypeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4399:1: ( ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:4400:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4478:1: ( ( '{' ) )
+            // InternalOptimisationLanguage.g:4479:1: ( '{' )
             {
-            // InternalOptimisationLanguage.g:4400:1: ( ( rule__IntegerLiteralRule__LiteralAssignment_0 ) )
-            // InternalOptimisationLanguage.g:4401:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
+            // InternalOptimisationLanguage.g:4479:1: ( '{' )
+            // InternalOptimisationLanguage.g:4480:2: '{'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
-            // InternalOptimisationLanguage.g:4402:2: ( rule__IntegerLiteralRule__LiteralAssignment_0 )
-            // InternalOptimisationLanguage.g:4402:3: rule__IntegerLiteralRule__LiteralAssignment_0
+             before(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+            match(input,57,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__4__Impl"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5"
+    // InternalOptimisationLanguage.g:4489:1: rule__TypeDefinitionRule__Group__5 : rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 ;
+    public final void rule__TypeDefinitionRule__Group__5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4493:1: ( rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6 )
+            // InternalOptimisationLanguage.g:4494:2: rule__TypeDefinitionRule__Group__5__Impl rule__TypeDefinitionRule__Group__6
             {
+            pushFollow(FOLLOW_15);
+            rule__TypeDefinitionRule__Group__5__Impl();
+
+            state._fsp--;
+
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__LiteralAssignment_0();
+            rule__TypeDefinitionRule__Group__6();
 
             state._fsp--;
 
 
-            }
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__Group__5__Impl"
+    // InternalOptimisationLanguage.g:4501:1: rule__TypeDefinitionRule__Group__5__Impl : ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) ;
+    public final void rule__TypeDefinitionRule__Group__5__Impl() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:4505:1: ( ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* ) )
+            // InternalOptimisationLanguage.g:4506:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            {
+            // InternalOptimisationLanguage.g:4506:1: ( ( rule__TypeDefinitionRule__AttributesAssignment_5 )* )
+            // InternalOptimisationLanguage.g:4507:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
+            // InternalOptimisationLanguage.g:4508:2: ( rule__TypeDefinitionRule__AttributesAssignment_5 )*
+            loop36:
+            do {
+                int alt36=2;
+                int LA36_0 = input.LA(1);
+
+                if ( ((LA36_0>=RULE_QUOTED_ID && LA36_0<=RULE_ID)) ) {
+                    alt36=1;
+                }
+
+
+                switch (alt36) {
+            	case 1 :
+            	    // InternalOptimisationLanguage.g:4508:3: rule__TypeDefinitionRule__AttributesAssignment_5
+            	    {
+            	    pushFollow(FOLLOW_16);
+            	    rule__TypeDefinitionRule__AttributesAssignment_5();
+
+            	    state._fsp--;
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop36;
+                }
+            } while (true);
 
-             after(grammarAccess.getIntegerLiteralRuleAccess().getLiteralAssignment_0()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAssignment_5()); 
 
             }
 
@@ -13943,21 +14289,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__5__Impl"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1"
-    // InternalOptimisationLanguage.g:4410:1: rule__IntegerLiteralRule__Group__1 : rule__IntegerLiteralRule__Group__1__Impl ;
-    public final void rule__IntegerLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6"
+    // InternalOptimisationLanguage.g:4516:1: rule__TypeDefinitionRule__Group__6 : rule__TypeDefinitionRule__Group__6__Impl ;
+    public final void rule__TypeDefinitionRule__Group__6() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4414:1: ( rule__IntegerLiteralRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4415:2: rule__IntegerLiteralRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:4520:1: ( rule__TypeDefinitionRule__Group__6__Impl )
+            // InternalOptimisationLanguage.g:4521:2: rule__TypeDefinitionRule__Group__6__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__IntegerLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group__6__Impl();
 
             state._fsp--;
 
@@ -13976,46 +14322,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6"
 
 
-    // $ANTLR start "rule__IntegerLiteralRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4421:1: rule__IntegerLiteralRule__Group__1__Impl : ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) ;
-    public final void rule__IntegerLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group__6__Impl"
+    // InternalOptimisationLanguage.g:4527:1: rule__TypeDefinitionRule__Group__6__Impl : ( '}' ) ;
+    public final void rule__TypeDefinitionRule__Group__6__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4425:1: ( ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? ) )
-            // InternalOptimisationLanguage.g:4426:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
+            // InternalOptimisationLanguage.g:4531:1: ( ( '}' ) )
+            // InternalOptimisationLanguage.g:4532:1: ( '}' )
             {
-            // InternalOptimisationLanguage.g:4426:1: ( ( rule__IntegerLiteralRule__FactorAssignment_1 )? )
-            // InternalOptimisationLanguage.g:4427:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
+            // InternalOptimisationLanguage.g:4532:1: ( '}' )
+            // InternalOptimisationLanguage.g:4533:2: '}'
             {
-             before(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
-            // InternalOptimisationLanguage.g:4428:2: ( rule__IntegerLiteralRule__FactorAssignment_1 )?
-            int alt34=2;
-            int LA34_0 = input.LA(1);
-
-            if ( ((LA34_0>=27 && LA34_0<=46)) ) {
-                alt34=1;
-            }
-            switch (alt34) {
-                case 1 :
-                    // InternalOptimisationLanguage.g:4428:3: rule__IntegerLiteralRule__FactorAssignment_1
-                    {
-                    pushFollow(FOLLOW_2);
-                    rule__IntegerLiteralRule__FactorAssignment_1();
-
-                    state._fsp--;
-
-
-                    }
-                    break;
-
-            }
-
-             after(grammarAccess.getIntegerLiteralRuleAccess().getFactorAssignment_1()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
+            match(input,58,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6()); 
 
             }
 
@@ -14034,26 +14359,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__IntegerLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group__6__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0"
-    // InternalOptimisationLanguage.g:4437:1: rule__BooleanLiteralRule__Group__0 : rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 ;
-    public final void rule__BooleanLiteralRule__Group__0() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0"
+    // InternalOptimisationLanguage.g:4543:1: rule__TypeDefinitionRule__Group_3__0 : rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 ;
+    public final void rule__TypeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4441:1: ( rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1 )
-            // InternalOptimisationLanguage.g:4442:2: rule__BooleanLiteralRule__Group__0__Impl rule__BooleanLiteralRule__Group__1
+            // InternalOptimisationLanguage.g:4547:1: ( rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1 )
+            // InternalOptimisationLanguage.g:4548:2: rule__TypeDefinitionRule__Group_3__0__Impl rule__TypeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_17);
-            rule__BooleanLiteralRule__Group__0__Impl();
+            pushFollow(FOLLOW_5);
+            rule__TypeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
 
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1();
+            rule__TypeDefinitionRule__Group_3__1();
 
             state._fsp--;
 
@@ -14072,29 +14397,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4449:1: rule__BooleanLiteralRule__Group__0__Impl : ( () ) ;
-    public final void rule__BooleanLiteralRule__Group__0__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__0__Impl"
+    // InternalOptimisationLanguage.g:4555:1: rule__TypeDefinitionRule__Group_3__0__Impl : ( 'extends' ) ;
+    public final void rule__TypeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4453:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4454:1: ( () )
-            {
-            // InternalOptimisationLanguage.g:4454:1: ( () )
-            // InternalOptimisationLanguage.g:4455:2: ()
+            // InternalOptimisationLanguage.g:4559:1: ( ( 'extends' ) )
+            // InternalOptimisationLanguage.g:4560:1: ( 'extends' )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
-            // InternalOptimisationLanguage.g:4456:2: ()
-            // InternalOptimisationLanguage.g:4456:3: 
+            // InternalOptimisationLanguage.g:4560:1: ( 'extends' )
+            // InternalOptimisationLanguage.g:4561:2: 'extends'
             {
-            }
-
-             after(grammarAccess.getBooleanLiteralRuleAccess().getBooleanLiteralAction_0()); 
+             before(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
+            match(input,70,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0()); 
 
             }
 
@@ -14102,6 +14423,10 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             }
 
         }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
         finally {
 
             	restoreStackSize(stackSize);
@@ -14109,21 +14434,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__0__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__0__Impl"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1"
-    // InternalOptimisationLanguage.g:4464:1: rule__BooleanLiteralRule__Group__1 : rule__BooleanLiteralRule__Group__1__Impl ;
-    public final void rule__BooleanLiteralRule__Group__1() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1"
+    // InternalOptimisationLanguage.g:4570:1: rule__TypeDefinitionRule__Group_3__1 : rule__TypeDefinitionRule__Group_3__1__Impl ;
+    public final void rule__TypeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4468:1: ( rule__BooleanLiteralRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4469:2: rule__BooleanLiteralRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:4574:1: ( rule__TypeDefinitionRule__Group_3__1__Impl )
+            // InternalOptimisationLanguage.g:4575:2: rule__TypeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Group__1__Impl();
+            rule__TypeDefinitionRule__Group_3__1__Impl();
 
             state._fsp--;
 
@@ -14142,35 +14467,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1"
 
 
-    // $ANTLR start "rule__BooleanLiteralRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4475:1: rule__BooleanLiteralRule__Group__1__Impl : ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) ;
-    public final void rule__BooleanLiteralRule__Group__1__Impl() throws RecognitionException {
+    // $ANTLR start "rule__TypeDefinitionRule__Group_3__1__Impl"
+    // InternalOptimisationLanguage.g:4581:1: rule__TypeDefinitionRule__Group_3__1__Impl : ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) ;
+    public final void rule__TypeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4479:1: ( ( ( rule__BooleanLiteralRule__Alternatives_1 ) ) )
-            // InternalOptimisationLanguage.g:4480:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
+            // InternalOptimisationLanguage.g:4585:1: ( ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) ) )
+            // InternalOptimisationLanguage.g:4586:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
             {
-            // InternalOptimisationLanguage.g:4480:1: ( ( rule__BooleanLiteralRule__Alternatives_1 ) )
-            // InternalOptimisationLanguage.g:4481:2: ( rule__BooleanLiteralRule__Alternatives_1 )
+            // InternalOptimisationLanguage.g:4586:1: ( ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 ) )
+            // InternalOptimisationLanguage.g:4587:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
             {
-             before(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
-            // InternalOptimisationLanguage.g:4482:2: ( rule__BooleanLiteralRule__Alternatives_1 )
-            // InternalOptimisationLanguage.g:4482:3: rule__BooleanLiteralRule__Alternatives_1
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
+            // InternalOptimisationLanguage.g:4588:2: ( rule__TypeDefinitionRule__SuperTypeAssignment_3_1 )
+            // InternalOptimisationLanguage.g:4588:3: rule__TypeDefinitionRule__SuperTypeAssignment_3_1
             {
             pushFollow(FOLLOW_2);
-            rule__BooleanLiteralRule__Alternatives_1();
+            rule__TypeDefinitionRule__SuperTypeAssignment_3_1();
 
             state._fsp--;
 
 
             }
 
-             after(grammarAccess.getBooleanLiteralRuleAccess().getAlternatives_1()); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeAssignment_3_1()); 
 
             }
 
@@ -14189,18 +14514,18 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
         }
         return ;
     }
-    // $ANTLR end "rule__BooleanLiteralRule__Group__1__Impl"
+    // $ANTLR end "rule__TypeDefinitionRule__Group_3__1__Impl"
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0"
-    // InternalOptimisationLanguage.g:4491:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
+    // InternalOptimisationLanguage.g:4597:1: rule__AttributeDefinitionRule__Group__0 : rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 ;
     public final void rule__AttributeDefinitionRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4495:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
-            // InternalOptimisationLanguage.g:4496:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
+            // InternalOptimisationLanguage.g:4601:1: ( rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1 )
+            // InternalOptimisationLanguage.g:4602:2: rule__AttributeDefinitionRule__Group__0__Impl rule__AttributeDefinitionRule__Group__1
             {
             pushFollow(FOLLOW_42);
             rule__AttributeDefinitionRule__Group__0__Impl();
@@ -14231,21 +14556,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4503:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
+    // InternalOptimisationLanguage.g:4609:1: rule__AttributeDefinitionRule__Group__0__Impl : ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4507:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:4508:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4613:1: ( ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:4614:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:4508:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
-            // InternalOptimisationLanguage.g:4509:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalOptimisationLanguage.g:4614:1: ( ( rule__AttributeDefinitionRule__NameAssignment_0 ) )
+            // InternalOptimisationLanguage.g:4615:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameAssignment_0()); 
-            // InternalOptimisationLanguage.g:4510:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
-            // InternalOptimisationLanguage.g:4510:3: rule__AttributeDefinitionRule__NameAssignment_0
+            // InternalOptimisationLanguage.g:4616:2: ( rule__AttributeDefinitionRule__NameAssignment_0 )
+            // InternalOptimisationLanguage.g:4616:3: rule__AttributeDefinitionRule__NameAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__NameAssignment_0();
@@ -14278,14 +14603,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1"
-    // InternalOptimisationLanguage.g:4518:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
+    // InternalOptimisationLanguage.g:4624:1: rule__AttributeDefinitionRule__Group__1 : rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 ;
     public final void rule__AttributeDefinitionRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4522:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
-            // InternalOptimisationLanguage.g:4523:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
+            // InternalOptimisationLanguage.g:4628:1: ( rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2 )
+            // InternalOptimisationLanguage.g:4629:2: rule__AttributeDefinitionRule__Group__1__Impl rule__AttributeDefinitionRule__Group__2
             {
             pushFollow(FOLLOW_43);
             rule__AttributeDefinitionRule__Group__1__Impl();
@@ -14316,17 +14641,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4530:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
+    // InternalOptimisationLanguage.g:4636:1: rule__AttributeDefinitionRule__Group__1__Impl : ( ':' ) ;
     public final void rule__AttributeDefinitionRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4534:1: ( ( ':' ) )
-            // InternalOptimisationLanguage.g:4535:1: ( ':' )
+            // InternalOptimisationLanguage.g:4640:1: ( ( ':' ) )
+            // InternalOptimisationLanguage.g:4641:1: ( ':' )
             {
-            // InternalOptimisationLanguage.g:4535:1: ( ':' )
-            // InternalOptimisationLanguage.g:4536:2: ':'
+            // InternalOptimisationLanguage.g:4641:1: ( ':' )
+            // InternalOptimisationLanguage.g:4642:2: ':'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1()); 
             match(input,71,FOLLOW_2); 
@@ -14353,14 +14678,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2"
-    // InternalOptimisationLanguage.g:4545:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
+    // InternalOptimisationLanguage.g:4651:1: rule__AttributeDefinitionRule__Group__2 : rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 ;
     public final void rule__AttributeDefinitionRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4549:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
-            // InternalOptimisationLanguage.g:4550:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
+            // InternalOptimisationLanguage.g:4655:1: ( rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3 )
+            // InternalOptimisationLanguage.g:4656:2: rule__AttributeDefinitionRule__Group__2__Impl rule__AttributeDefinitionRule__Group__3
             {
             pushFollow(FOLLOW_44);
             rule__AttributeDefinitionRule__Group__2__Impl();
@@ -14391,21 +14716,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:4557:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
+    // InternalOptimisationLanguage.g:4663:1: rule__AttributeDefinitionRule__Group__2__Impl : ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) ;
     public final void rule__AttributeDefinitionRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4561:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
-            // InternalOptimisationLanguage.g:4562:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalOptimisationLanguage.g:4667:1: ( ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:4668:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:4562:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
-            // InternalOptimisationLanguage.g:4563:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalOptimisationLanguage.g:4668:1: ( ( rule__AttributeDefinitionRule__TypeAssignment_2 ) )
+            // InternalOptimisationLanguage.g:4669:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeAssignment_2()); 
-            // InternalOptimisationLanguage.g:4564:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
-            // InternalOptimisationLanguage.g:4564:3: rule__AttributeDefinitionRule__TypeAssignment_2
+            // InternalOptimisationLanguage.g:4670:2: ( rule__AttributeDefinitionRule__TypeAssignment_2 )
+            // InternalOptimisationLanguage.g:4670:3: rule__AttributeDefinitionRule__TypeAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__TypeAssignment_2();
@@ -14438,14 +14763,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3"
-    // InternalOptimisationLanguage.g:4572:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
+    // InternalOptimisationLanguage.g:4678:1: rule__AttributeDefinitionRule__Group__3 : rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 ;
     public final void rule__AttributeDefinitionRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4576:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
-            // InternalOptimisationLanguage.g:4577:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
+            // InternalOptimisationLanguage.g:4682:1: ( rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4 )
+            // InternalOptimisationLanguage.g:4683:2: rule__AttributeDefinitionRule__Group__3__Impl rule__AttributeDefinitionRule__Group__4
             {
             pushFollow(FOLLOW_44);
             rule__AttributeDefinitionRule__Group__3__Impl();
@@ -14476,29 +14801,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:4584:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
+    // InternalOptimisationLanguage.g:4690:1: rule__AttributeDefinitionRule__Group__3__Impl : ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) ;
     public final void rule__AttributeDefinitionRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4588:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
-            // InternalOptimisationLanguage.g:4589:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalOptimisationLanguage.g:4694:1: ( ( ( rule__AttributeDefinitionRule__Group_3__0 )? ) )
+            // InternalOptimisationLanguage.g:4695:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
             {
-            // InternalOptimisationLanguage.g:4589:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
-            // InternalOptimisationLanguage.g:4590:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            // InternalOptimisationLanguage.g:4695:1: ( ( rule__AttributeDefinitionRule__Group_3__0 )? )
+            // InternalOptimisationLanguage.g:4696:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getGroup_3()); 
-            // InternalOptimisationLanguage.g:4591:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:4697:2: ( rule__AttributeDefinitionRule__Group_3__0 )?
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( (LA35_0==52) ) {
-                alt35=1;
+            if ( (LA37_0==52) ) {
+                alt37=1;
             }
-            switch (alt35) {
+            switch (alt37) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:4591:3: rule__AttributeDefinitionRule__Group_3__0
+                    // InternalOptimisationLanguage.g:4697:3: rule__AttributeDefinitionRule__Group_3__0
                     {
                     pushFollow(FOLLOW_2);
                     rule__AttributeDefinitionRule__Group_3__0();
@@ -14534,14 +14859,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4"
-    // InternalOptimisationLanguage.g:4599:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
+    // InternalOptimisationLanguage.g:4705:1: rule__AttributeDefinitionRule__Group__4 : rule__AttributeDefinitionRule__Group__4__Impl ;
     public final void rule__AttributeDefinitionRule__Group__4() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4603:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
-            // InternalOptimisationLanguage.g:4604:2: rule__AttributeDefinitionRule__Group__4__Impl
+            // InternalOptimisationLanguage.g:4709:1: ( rule__AttributeDefinitionRule__Group__4__Impl )
+            // InternalOptimisationLanguage.g:4710:2: rule__AttributeDefinitionRule__Group__4__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group__4__Impl();
@@ -14567,17 +14892,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group__4__Impl"
-    // InternalOptimisationLanguage.g:4610:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
+    // InternalOptimisationLanguage.g:4716:1: rule__AttributeDefinitionRule__Group__4__Impl : ( ';' ) ;
     public final void rule__AttributeDefinitionRule__Group__4__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4614:1: ( ( ';' ) )
-            // InternalOptimisationLanguage.g:4615:1: ( ';' )
+            // InternalOptimisationLanguage.g:4720:1: ( ( ';' ) )
+            // InternalOptimisationLanguage.g:4721:1: ( ';' )
             {
-            // InternalOptimisationLanguage.g:4615:1: ( ';' )
-            // InternalOptimisationLanguage.g:4616:2: ';'
+            // InternalOptimisationLanguage.g:4721:1: ( ';' )
+            // InternalOptimisationLanguage.g:4722:2: ';'
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getSemicolonKeyword_4()); 
             match(input,48,FOLLOW_2); 
@@ -14604,16 +14929,16 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0"
-    // InternalOptimisationLanguage.g:4626:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
+    // InternalOptimisationLanguage.g:4732:1: rule__AttributeDefinitionRule__Group_3__0 : rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 ;
     public final void rule__AttributeDefinitionRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4630:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
-            // InternalOptimisationLanguage.g:4631:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
+            // InternalOptimisationLanguage.g:4736:1: ( rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1 )
+            // InternalOptimisationLanguage.g:4737:2: rule__AttributeDefinitionRule__Group_3__0__Impl rule__AttributeDefinitionRule__Group_3__1
             {
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_24);
             rule__AttributeDefinitionRule__Group_3__0__Impl();
 
             state._fsp--;
@@ -14642,17 +14967,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__0__Impl"
-    // InternalOptimisationLanguage.g:4638:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
+    // InternalOptimisationLanguage.g:4744:1: rule__AttributeDefinitionRule__Group_3__0__Impl : ( ':=' ) ;
     public final void rule__AttributeDefinitionRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4642:1: ( ( ':=' ) )
-            // InternalOptimisationLanguage.g:4643:1: ( ':=' )
+            // InternalOptimisationLanguage.g:4748:1: ( ( ':=' ) )
+            // InternalOptimisationLanguage.g:4749:1: ( ':=' )
             {
-            // InternalOptimisationLanguage.g:4643:1: ( ':=' )
-            // InternalOptimisationLanguage.g:4644:2: ':='
+            // InternalOptimisationLanguage.g:4749:1: ( ':=' )
+            // InternalOptimisationLanguage.g:4750:2: ':='
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0()); 
             match(input,52,FOLLOW_2); 
@@ -14679,14 +15004,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1"
-    // InternalOptimisationLanguage.g:4653:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
+    // InternalOptimisationLanguage.g:4759:1: rule__AttributeDefinitionRule__Group_3__1 : rule__AttributeDefinitionRule__Group_3__1__Impl ;
     public final void rule__AttributeDefinitionRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4657:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
-            // InternalOptimisationLanguage.g:4658:2: rule__AttributeDefinitionRule__Group_3__1__Impl
+            // InternalOptimisationLanguage.g:4763:1: ( rule__AttributeDefinitionRule__Group_3__1__Impl )
+            // InternalOptimisationLanguage.g:4764:2: rule__AttributeDefinitionRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__Group_3__1__Impl();
@@ -14712,21 +15037,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__Group_3__1__Impl"
-    // InternalOptimisationLanguage.g:4664:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
+    // InternalOptimisationLanguage.g:4770:1: rule__AttributeDefinitionRule__Group_3__1__Impl : ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) ;
     public final void rule__AttributeDefinitionRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4668:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
-            // InternalOptimisationLanguage.g:4669:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalOptimisationLanguage.g:4774:1: ( ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) ) )
+            // InternalOptimisationLanguage.g:4775:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
             {
-            // InternalOptimisationLanguage.g:4669:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
-            // InternalOptimisationLanguage.g:4670:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalOptimisationLanguage.g:4775:1: ( ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 ) )
+            // InternalOptimisationLanguage.g:4776:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationAssignment_3_1()); 
-            // InternalOptimisationLanguage.g:4671:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
-            // InternalOptimisationLanguage.g:4671:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
+            // InternalOptimisationLanguage.g:4777:2: ( rule__AttributeDefinitionRule__InitialisationAssignment_3_1 )
+            // InternalOptimisationLanguage.g:4777:3: rule__AttributeDefinitionRule__InitialisationAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__AttributeDefinitionRule__InitialisationAssignment_3_1();
@@ -14759,14 +15084,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:4680:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:4786:1: rule__LiteralTypeRule__Group__0 : rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 ;
     public final void rule__LiteralTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4684:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:4685:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
+            // InternalOptimisationLanguage.g:4790:1: ( rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:4791:2: rule__LiteralTypeRule__Group__0__Impl rule__LiteralTypeRule__Group__1
             {
             pushFollow(FOLLOW_45);
             rule__LiteralTypeRule__Group__0__Impl();
@@ -14797,21 +15122,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4692:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:4798:1: rule__LiteralTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__LiteralTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4696:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4697:1: ( () )
+            // InternalOptimisationLanguage.g:4802:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:4803:1: ( () )
             {
-            // InternalOptimisationLanguage.g:4697:1: ( () )
-            // InternalOptimisationLanguage.g:4698:2: ()
+            // InternalOptimisationLanguage.g:4803:1: ( () )
+            // InternalOptimisationLanguage.g:4804:2: ()
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralTypeAction_0()); 
-            // InternalOptimisationLanguage.g:4699:2: ()
-            // InternalOptimisationLanguage.g:4699:3: 
+            // InternalOptimisationLanguage.g:4805:2: ()
+            // InternalOptimisationLanguage.g:4805:3: 
             {
             }
 
@@ -14834,14 +15159,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:4707:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:4813:1: rule__LiteralTypeRule__Group__1 : rule__LiteralTypeRule__Group__1__Impl ;
     public final void rule__LiteralTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4711:1: ( rule__LiteralTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4712:2: rule__LiteralTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:4817:1: ( rule__LiteralTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:4818:2: rule__LiteralTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__LiteralTypeRule__Group__1__Impl();
@@ -14867,17 +15192,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4718:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
+    // InternalOptimisationLanguage.g:4824:1: rule__LiteralTypeRule__Group__1__Impl : ( 'literal' ) ;
     public final void rule__LiteralTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4722:1: ( ( 'literal' ) )
-            // InternalOptimisationLanguage.g:4723:1: ( 'literal' )
+            // InternalOptimisationLanguage.g:4828:1: ( ( 'literal' ) )
+            // InternalOptimisationLanguage.g:4829:1: ( 'literal' )
             {
-            // InternalOptimisationLanguage.g:4723:1: ( 'literal' )
-            // InternalOptimisationLanguage.g:4724:2: 'literal'
+            // InternalOptimisationLanguage.g:4829:1: ( 'literal' )
+            // InternalOptimisationLanguage.g:4830:2: 'literal'
             {
              before(grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1()); 
             match(input,72,FOLLOW_2); 
@@ -14904,14 +15229,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:4734:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:4840:1: rule__InstanceTypeRule__Group__0 : rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 ;
     public final void rule__InstanceTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4738:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:4739:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
+            // InternalOptimisationLanguage.g:4844:1: ( rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:4845:2: rule__InstanceTypeRule__Group__0__Impl rule__InstanceTypeRule__Group__1
             {
             pushFollow(FOLLOW_46);
             rule__InstanceTypeRule__Group__0__Impl();
@@ -14942,21 +15267,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4746:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:4852:1: rule__InstanceTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__InstanceTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4750:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4751:1: ( () )
+            // InternalOptimisationLanguage.g:4856:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:4857:1: ( () )
             {
-            // InternalOptimisationLanguage.g:4751:1: ( () )
-            // InternalOptimisationLanguage.g:4752:2: ()
+            // InternalOptimisationLanguage.g:4857:1: ( () )
+            // InternalOptimisationLanguage.g:4858:2: ()
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceTypeAction_0()); 
-            // InternalOptimisationLanguage.g:4753:2: ()
-            // InternalOptimisationLanguage.g:4753:3: 
+            // InternalOptimisationLanguage.g:4859:2: ()
+            // InternalOptimisationLanguage.g:4859:3: 
             {
             }
 
@@ -14979,14 +15304,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:4761:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
+    // InternalOptimisationLanguage.g:4867:1: rule__InstanceTypeRule__Group__1 : rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 ;
     public final void rule__InstanceTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4765:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
-            // InternalOptimisationLanguage.g:4766:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
+            // InternalOptimisationLanguage.g:4871:1: ( rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2 )
+            // InternalOptimisationLanguage.g:4872:2: rule__InstanceTypeRule__Group__1__Impl rule__InstanceTypeRule__Group__2
             {
             pushFollow(FOLLOW_5);
             rule__InstanceTypeRule__Group__1__Impl();
@@ -15017,17 +15342,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4773:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
+    // InternalOptimisationLanguage.g:4879:1: rule__InstanceTypeRule__Group__1__Impl : ( 'instance' ) ;
     public final void rule__InstanceTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4777:1: ( ( 'instance' ) )
-            // InternalOptimisationLanguage.g:4778:1: ( 'instance' )
+            // InternalOptimisationLanguage.g:4883:1: ( ( 'instance' ) )
+            // InternalOptimisationLanguage.g:4884:1: ( 'instance' )
             {
-            // InternalOptimisationLanguage.g:4778:1: ( 'instance' )
-            // InternalOptimisationLanguage.g:4779:2: 'instance'
+            // InternalOptimisationLanguage.g:4884:1: ( 'instance' )
+            // InternalOptimisationLanguage.g:4885:2: 'instance'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1()); 
             match(input,53,FOLLOW_2); 
@@ -15054,14 +15379,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2"
-    // InternalOptimisationLanguage.g:4788:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
+    // InternalOptimisationLanguage.g:4894:1: rule__InstanceTypeRule__Group__2 : rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 ;
     public final void rule__InstanceTypeRule__Group__2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4792:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
-            // InternalOptimisationLanguage.g:4793:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
+            // InternalOptimisationLanguage.g:4898:1: ( rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3 )
+            // InternalOptimisationLanguage.g:4899:2: rule__InstanceTypeRule__Group__2__Impl rule__InstanceTypeRule__Group__3
             {
             pushFollow(FOLLOW_47);
             rule__InstanceTypeRule__Group__2__Impl();
@@ -15092,21 +15417,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__2__Impl"
-    // InternalOptimisationLanguage.g:4800:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
+    // InternalOptimisationLanguage.g:4906:1: rule__InstanceTypeRule__Group__2__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) ;
     public final void rule__InstanceTypeRule__Group__2__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4804:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
-            // InternalOptimisationLanguage.g:4805:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalOptimisationLanguage.g:4910:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) ) )
+            // InternalOptimisationLanguage.g:4911:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
             {
-            // InternalOptimisationLanguage.g:4805:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
-            // InternalOptimisationLanguage.g:4806:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalOptimisationLanguage.g:4911:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_2 ) )
+            // InternalOptimisationLanguage.g:4912:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_2()); 
-            // InternalOptimisationLanguage.g:4807:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
-            // InternalOptimisationLanguage.g:4807:3: rule__InstanceTypeRule__DefinitionsAssignment_2
+            // InternalOptimisationLanguage.g:4913:2: ( rule__InstanceTypeRule__DefinitionsAssignment_2 )
+            // InternalOptimisationLanguage.g:4913:3: rule__InstanceTypeRule__DefinitionsAssignment_2
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_2();
@@ -15139,14 +15464,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3"
-    // InternalOptimisationLanguage.g:4815:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
+    // InternalOptimisationLanguage.g:4921:1: rule__InstanceTypeRule__Group__3 : rule__InstanceTypeRule__Group__3__Impl ;
     public final void rule__InstanceTypeRule__Group__3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4819:1: ( rule__InstanceTypeRule__Group__3__Impl )
-            // InternalOptimisationLanguage.g:4820:2: rule__InstanceTypeRule__Group__3__Impl
+            // InternalOptimisationLanguage.g:4925:1: ( rule__InstanceTypeRule__Group__3__Impl )
+            // InternalOptimisationLanguage.g:4926:2: rule__InstanceTypeRule__Group__3__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group__3__Impl();
@@ -15172,33 +15497,33 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group__3__Impl"
-    // InternalOptimisationLanguage.g:4826:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
+    // InternalOptimisationLanguage.g:4932:1: rule__InstanceTypeRule__Group__3__Impl : ( ( rule__InstanceTypeRule__Group_3__0 )* ) ;
     public final void rule__InstanceTypeRule__Group__3__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4830:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
-            // InternalOptimisationLanguage.g:4831:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalOptimisationLanguage.g:4936:1: ( ( ( rule__InstanceTypeRule__Group_3__0 )* ) )
+            // InternalOptimisationLanguage.g:4937:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
             {
-            // InternalOptimisationLanguage.g:4831:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
-            // InternalOptimisationLanguage.g:4832:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            // InternalOptimisationLanguage.g:4937:1: ( ( rule__InstanceTypeRule__Group_3__0 )* )
+            // InternalOptimisationLanguage.g:4938:2: ( rule__InstanceTypeRule__Group_3__0 )*
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getGroup_3()); 
-            // InternalOptimisationLanguage.g:4833:2: ( rule__InstanceTypeRule__Group_3__0 )*
-            loop36:
+            // InternalOptimisationLanguage.g:4939:2: ( rule__InstanceTypeRule__Group_3__0 )*
+            loop38:
             do {
-                int alt36=2;
-                int LA36_0 = input.LA(1);
+                int alt38=2;
+                int LA38_0 = input.LA(1);
 
-                if ( (LA36_0==73) ) {
-                    alt36=1;
+                if ( (LA38_0==73) ) {
+                    alt38=1;
                 }
 
 
-                switch (alt36) {
+                switch (alt38) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:4833:3: rule__InstanceTypeRule__Group_3__0
+            	    // InternalOptimisationLanguage.g:4939:3: rule__InstanceTypeRule__Group_3__0
             	    {
             	    pushFollow(FOLLOW_48);
             	    rule__InstanceTypeRule__Group_3__0();
@@ -15210,7 +15535,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             	    break;
 
             	default :
-            	    break loop36;
+            	    break loop38;
                 }
             } while (true);
 
@@ -15237,14 +15562,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0"
-    // InternalOptimisationLanguage.g:4842:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
+    // InternalOptimisationLanguage.g:4948:1: rule__InstanceTypeRule__Group_3__0 : rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 ;
     public final void rule__InstanceTypeRule__Group_3__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4846:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
-            // InternalOptimisationLanguage.g:4847:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
+            // InternalOptimisationLanguage.g:4952:1: ( rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1 )
+            // InternalOptimisationLanguage.g:4953:2: rule__InstanceTypeRule__Group_3__0__Impl rule__InstanceTypeRule__Group_3__1
             {
             pushFollow(FOLLOW_5);
             rule__InstanceTypeRule__Group_3__0__Impl();
@@ -15275,17 +15600,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__0__Impl"
-    // InternalOptimisationLanguage.g:4854:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
+    // InternalOptimisationLanguage.g:4960:1: rule__InstanceTypeRule__Group_3__0__Impl : ( '|' ) ;
     public final void rule__InstanceTypeRule__Group_3__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4858:1: ( ( '|' ) )
-            // InternalOptimisationLanguage.g:4859:1: ( '|' )
+            // InternalOptimisationLanguage.g:4964:1: ( ( '|' ) )
+            // InternalOptimisationLanguage.g:4965:1: ( '|' )
             {
-            // InternalOptimisationLanguage.g:4859:1: ( '|' )
-            // InternalOptimisationLanguage.g:4860:2: '|'
+            // InternalOptimisationLanguage.g:4965:1: ( '|' )
+            // InternalOptimisationLanguage.g:4966:2: '|'
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0()); 
             match(input,73,FOLLOW_2); 
@@ -15312,14 +15637,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1"
-    // InternalOptimisationLanguage.g:4869:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
+    // InternalOptimisationLanguage.g:4975:1: rule__InstanceTypeRule__Group_3__1 : rule__InstanceTypeRule__Group_3__1__Impl ;
     public final void rule__InstanceTypeRule__Group_3__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4873:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
-            // InternalOptimisationLanguage.g:4874:2: rule__InstanceTypeRule__Group_3__1__Impl
+            // InternalOptimisationLanguage.g:4979:1: ( rule__InstanceTypeRule__Group_3__1__Impl )
+            // InternalOptimisationLanguage.g:4980:2: rule__InstanceTypeRule__Group_3__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__Group_3__1__Impl();
@@ -15345,21 +15670,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__Group_3__1__Impl"
-    // InternalOptimisationLanguage.g:4880:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
+    // InternalOptimisationLanguage.g:4986:1: rule__InstanceTypeRule__Group_3__1__Impl : ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) ;
     public final void rule__InstanceTypeRule__Group_3__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4884:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
-            // InternalOptimisationLanguage.g:4885:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalOptimisationLanguage.g:4990:1: ( ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) ) )
+            // InternalOptimisationLanguage.g:4991:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
             {
-            // InternalOptimisationLanguage.g:4885:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
-            // InternalOptimisationLanguage.g:4886:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalOptimisationLanguage.g:4991:1: ( ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 ) )
+            // InternalOptimisationLanguage.g:4992:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsAssignment_3_1()); 
-            // InternalOptimisationLanguage.g:4887:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
-            // InternalOptimisationLanguage.g:4887:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
+            // InternalOptimisationLanguage.g:4993:2: ( rule__InstanceTypeRule__DefinitionsAssignment_3_1 )
+            // InternalOptimisationLanguage.g:4993:3: rule__InstanceTypeRule__DefinitionsAssignment_3_1
             {
             pushFollow(FOLLOW_2);
             rule__InstanceTypeRule__DefinitionsAssignment_3_1();
@@ -15392,14 +15717,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:4896:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5002:1: rule__StringTypeRule__Group__0 : rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 ;
     public final void rule__StringTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4900:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:4901:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5006:1: ( rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5007:2: rule__StringTypeRule__Group__0__Impl rule__StringTypeRule__Group__1
             {
             pushFollow(FOLLOW_49);
             rule__StringTypeRule__Group__0__Impl();
@@ -15430,21 +15755,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4908:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5014:1: rule__StringTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__StringTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4912:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4913:1: ( () )
+            // InternalOptimisationLanguage.g:5018:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5019:1: ( () )
             {
-            // InternalOptimisationLanguage.g:4913:1: ( () )
-            // InternalOptimisationLanguage.g:4914:2: ()
+            // InternalOptimisationLanguage.g:5019:1: ( () )
+            // InternalOptimisationLanguage.g:5020:2: ()
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringTypeAction_0()); 
-            // InternalOptimisationLanguage.g:4915:2: ()
-            // InternalOptimisationLanguage.g:4915:3: 
+            // InternalOptimisationLanguage.g:5021:2: ()
+            // InternalOptimisationLanguage.g:5021:3: 
             {
             }
 
@@ -15467,14 +15792,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:4923:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5029:1: rule__StringTypeRule__Group__1 : rule__StringTypeRule__Group__1__Impl ;
     public final void rule__StringTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4927:1: ( rule__StringTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4928:2: rule__StringTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5033:1: ( rule__StringTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5034:2: rule__StringTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__StringTypeRule__Group__1__Impl();
@@ -15500,17 +15825,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4934:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
+    // InternalOptimisationLanguage.g:5040:1: rule__StringTypeRule__Group__1__Impl : ( 'string' ) ;
     public final void rule__StringTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4938:1: ( ( 'string' ) )
-            // InternalOptimisationLanguage.g:4939:1: ( 'string' )
+            // InternalOptimisationLanguage.g:5044:1: ( ( 'string' ) )
+            // InternalOptimisationLanguage.g:5045:1: ( 'string' )
             {
-            // InternalOptimisationLanguage.g:4939:1: ( 'string' )
-            // InternalOptimisationLanguage.g:4940:2: 'string'
+            // InternalOptimisationLanguage.g:5045:1: ( 'string' )
+            // InternalOptimisationLanguage.g:5046:2: 'string'
             {
              before(grammarAccess.getStringTypeRuleAccess().getStringKeyword_1()); 
             match(input,74,FOLLOW_2); 
@@ -15537,14 +15862,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:4950:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5056:1: rule__ExpressionTypeRule__Group__0 : rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 ;
     public final void rule__ExpressionTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4954:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:4955:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5060:1: ( rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5061:2: rule__ExpressionTypeRule__Group__0__Impl rule__ExpressionTypeRule__Group__1
             {
             pushFollow(FOLLOW_50);
             rule__ExpressionTypeRule__Group__0__Impl();
@@ -15575,21 +15900,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:4962:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5068:1: rule__ExpressionTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__ExpressionTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4966:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:4967:1: ( () )
+            // InternalOptimisationLanguage.g:5072:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5073:1: ( () )
             {
-            // InternalOptimisationLanguage.g:4967:1: ( () )
-            // InternalOptimisationLanguage.g:4968:2: ()
+            // InternalOptimisationLanguage.g:5073:1: ( () )
+            // InternalOptimisationLanguage.g:5074:2: ()
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionTypeAction_0()); 
-            // InternalOptimisationLanguage.g:4969:2: ()
-            // InternalOptimisationLanguage.g:4969:3: 
+            // InternalOptimisationLanguage.g:5075:2: ()
+            // InternalOptimisationLanguage.g:5075:3: 
             {
             }
 
@@ -15612,14 +15937,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:4977:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5083:1: rule__ExpressionTypeRule__Group__1 : rule__ExpressionTypeRule__Group__1__Impl ;
     public final void rule__ExpressionTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4981:1: ( rule__ExpressionTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:4982:2: rule__ExpressionTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5087:1: ( rule__ExpressionTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5088:2: rule__ExpressionTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ExpressionTypeRule__Group__1__Impl();
@@ -15645,17 +15970,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ExpressionTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:4988:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
+    // InternalOptimisationLanguage.g:5094:1: rule__ExpressionTypeRule__Group__1__Impl : ( 'expression' ) ;
     public final void rule__ExpressionTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:4992:1: ( ( 'expression' ) )
-            // InternalOptimisationLanguage.g:4993:1: ( 'expression' )
+            // InternalOptimisationLanguage.g:5098:1: ( ( 'expression' ) )
+            // InternalOptimisationLanguage.g:5099:1: ( 'expression' )
             {
-            // InternalOptimisationLanguage.g:4993:1: ( 'expression' )
-            // InternalOptimisationLanguage.g:4994:2: 'expression'
+            // InternalOptimisationLanguage.g:5099:1: ( 'expression' )
+            // InternalOptimisationLanguage.g:5100:2: 'expression'
             {
              before(grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1()); 
             match(input,75,FOLLOW_2); 
@@ -15682,14 +16007,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5004:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5110:1: rule__IntTypeRule__Group__0 : rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 ;
     public final void rule__IntTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5008:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5009:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5114:1: ( rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5115:2: rule__IntTypeRule__Group__0__Impl rule__IntTypeRule__Group__1
             {
             pushFollow(FOLLOW_51);
             rule__IntTypeRule__Group__0__Impl();
@@ -15720,21 +16045,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5016:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5122:1: rule__IntTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__IntTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5020:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:5021:1: ( () )
+            // InternalOptimisationLanguage.g:5126:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5127:1: ( () )
             {
-            // InternalOptimisationLanguage.g:5021:1: ( () )
-            // InternalOptimisationLanguage.g:5022:2: ()
+            // InternalOptimisationLanguage.g:5127:1: ( () )
+            // InternalOptimisationLanguage.g:5128:2: ()
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntTypeAction_0()); 
-            // InternalOptimisationLanguage.g:5023:2: ()
-            // InternalOptimisationLanguage.g:5023:3: 
+            // InternalOptimisationLanguage.g:5129:2: ()
+            // InternalOptimisationLanguage.g:5129:3: 
             {
             }
 
@@ -15757,14 +16082,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5031:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5137:1: rule__IntTypeRule__Group__1 : rule__IntTypeRule__Group__1__Impl ;
     public final void rule__IntTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5035:1: ( rule__IntTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5036:2: rule__IntTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5141:1: ( rule__IntTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5142:2: rule__IntTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__IntTypeRule__Group__1__Impl();
@@ -15790,17 +16115,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5042:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
+    // InternalOptimisationLanguage.g:5148:1: rule__IntTypeRule__Group__1__Impl : ( 'int' ) ;
     public final void rule__IntTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5046:1: ( ( 'int' ) )
-            // InternalOptimisationLanguage.g:5047:1: ( 'int' )
+            // InternalOptimisationLanguage.g:5152:1: ( ( 'int' ) )
+            // InternalOptimisationLanguage.g:5153:1: ( 'int' )
             {
-            // InternalOptimisationLanguage.g:5047:1: ( 'int' )
-            // InternalOptimisationLanguage.g:5048:2: 'int'
+            // InternalOptimisationLanguage.g:5153:1: ( 'int' )
+            // InternalOptimisationLanguage.g:5154:2: 'int'
             {
              before(grammarAccess.getIntTypeRuleAccess().getIntKeyword_1()); 
             match(input,76,FOLLOW_2); 
@@ -15827,14 +16152,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5058:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5164:1: rule__FloatTypeRule__Group__0 : rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 ;
     public final void rule__FloatTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5062:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5063:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5168:1: ( rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5169:2: rule__FloatTypeRule__Group__0__Impl rule__FloatTypeRule__Group__1
             {
             pushFollow(FOLLOW_52);
             rule__FloatTypeRule__Group__0__Impl();
@@ -15865,21 +16190,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5070:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5176:1: rule__FloatTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__FloatTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5074:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:5075:1: ( () )
+            // InternalOptimisationLanguage.g:5180:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5181:1: ( () )
             {
-            // InternalOptimisationLanguage.g:5075:1: ( () )
-            // InternalOptimisationLanguage.g:5076:2: ()
+            // InternalOptimisationLanguage.g:5181:1: ( () )
+            // InternalOptimisationLanguage.g:5182:2: ()
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatTypeAction_0()); 
-            // InternalOptimisationLanguage.g:5077:2: ()
-            // InternalOptimisationLanguage.g:5077:3: 
+            // InternalOptimisationLanguage.g:5183:2: ()
+            // InternalOptimisationLanguage.g:5183:3: 
             {
             }
 
@@ -15902,14 +16227,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5085:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5191:1: rule__FloatTypeRule__Group__1 : rule__FloatTypeRule__Group__1__Impl ;
     public final void rule__FloatTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5089:1: ( rule__FloatTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5090:2: rule__FloatTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5195:1: ( rule__FloatTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5196:2: rule__FloatTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__FloatTypeRule__Group__1__Impl();
@@ -15935,17 +16260,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FloatTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5096:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
+    // InternalOptimisationLanguage.g:5202:1: rule__FloatTypeRule__Group__1__Impl : ( 'float' ) ;
     public final void rule__FloatTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5100:1: ( ( 'float' ) )
-            // InternalOptimisationLanguage.g:5101:1: ( 'float' )
+            // InternalOptimisationLanguage.g:5206:1: ( ( 'float' ) )
+            // InternalOptimisationLanguage.g:5207:1: ( 'float' )
             {
-            // InternalOptimisationLanguage.g:5101:1: ( 'float' )
-            // InternalOptimisationLanguage.g:5102:2: 'float'
+            // InternalOptimisationLanguage.g:5207:1: ( 'float' )
+            // InternalOptimisationLanguage.g:5208:2: 'float'
             {
              before(grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1()); 
             match(input,77,FOLLOW_2); 
@@ -15972,14 +16297,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5112:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5218:1: rule__BooleanTypeRule__Group__0 : rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 ;
     public final void rule__BooleanTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5116:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5117:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5222:1: ( rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5223:2: rule__BooleanTypeRule__Group__0__Impl rule__BooleanTypeRule__Group__1
             {
             pushFollow(FOLLOW_53);
             rule__BooleanTypeRule__Group__0__Impl();
@@ -16010,21 +16335,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5124:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5230:1: rule__BooleanTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__BooleanTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5128:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:5129:1: ( () )
+            // InternalOptimisationLanguage.g:5234:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5235:1: ( () )
             {
-            // InternalOptimisationLanguage.g:5129:1: ( () )
-            // InternalOptimisationLanguage.g:5130:2: ()
+            // InternalOptimisationLanguage.g:5235:1: ( () )
+            // InternalOptimisationLanguage.g:5236:2: ()
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanTypeAction_0()); 
-            // InternalOptimisationLanguage.g:5131:2: ()
-            // InternalOptimisationLanguage.g:5131:3: 
+            // InternalOptimisationLanguage.g:5237:2: ()
+            // InternalOptimisationLanguage.g:5237:3: 
             {
             }
 
@@ -16047,14 +16372,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5139:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5245:1: rule__BooleanTypeRule__Group__1 : rule__BooleanTypeRule__Group__1__Impl ;
     public final void rule__BooleanTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5143:1: ( rule__BooleanTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5144:2: rule__BooleanTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5249:1: ( rule__BooleanTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5250:2: rule__BooleanTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__BooleanTypeRule__Group__1__Impl();
@@ -16080,17 +16405,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5150:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
+    // InternalOptimisationLanguage.g:5256:1: rule__BooleanTypeRule__Group__1__Impl : ( 'boolean' ) ;
     public final void rule__BooleanTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5154:1: ( ( 'boolean' ) )
-            // InternalOptimisationLanguage.g:5155:1: ( 'boolean' )
+            // InternalOptimisationLanguage.g:5260:1: ( ( 'boolean' ) )
+            // InternalOptimisationLanguage.g:5261:1: ( 'boolean' )
             {
-            // InternalOptimisationLanguage.g:5155:1: ( 'boolean' )
-            // InternalOptimisationLanguage.g:5156:2: 'boolean'
+            // InternalOptimisationLanguage.g:5261:1: ( 'boolean' )
+            // InternalOptimisationLanguage.g:5262:2: 'boolean'
             {
              before(grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1()); 
             match(input,78,FOLLOW_2); 
@@ -16117,14 +16442,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5166:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5272:1: rule__VoidTypeRule__Group__0 : rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 ;
     public final void rule__VoidTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5170:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5171:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5276:1: ( rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5277:2: rule__VoidTypeRule__Group__0__Impl rule__VoidTypeRule__Group__1
             {
             pushFollow(FOLLOW_54);
             rule__VoidTypeRule__Group__0__Impl();
@@ -16155,21 +16480,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5178:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5284:1: rule__VoidTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__VoidTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5182:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:5183:1: ( () )
+            // InternalOptimisationLanguage.g:5288:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5289:1: ( () )
             {
-            // InternalOptimisationLanguage.g:5183:1: ( () )
-            // InternalOptimisationLanguage.g:5184:2: ()
+            // InternalOptimisationLanguage.g:5289:1: ( () )
+            // InternalOptimisationLanguage.g:5290:2: ()
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidTypeAction_0()); 
-            // InternalOptimisationLanguage.g:5185:2: ()
-            // InternalOptimisationLanguage.g:5185:3: 
+            // InternalOptimisationLanguage.g:5291:2: ()
+            // InternalOptimisationLanguage.g:5291:3: 
             {
             }
 
@@ -16192,14 +16517,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5193:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5299:1: rule__VoidTypeRule__Group__1 : rule__VoidTypeRule__Group__1__Impl ;
     public final void rule__VoidTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5197:1: ( rule__VoidTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5198:2: rule__VoidTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5303:1: ( rule__VoidTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5304:2: rule__VoidTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__VoidTypeRule__Group__1__Impl();
@@ -16225,17 +16550,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__VoidTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5204:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
+    // InternalOptimisationLanguage.g:5310:1: rule__VoidTypeRule__Group__1__Impl : ( 'void' ) ;
     public final void rule__VoidTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5208:1: ( ( 'void' ) )
-            // InternalOptimisationLanguage.g:5209:1: ( 'void' )
+            // InternalOptimisationLanguage.g:5314:1: ( ( 'void' ) )
+            // InternalOptimisationLanguage.g:5315:1: ( 'void' )
             {
-            // InternalOptimisationLanguage.g:5209:1: ( 'void' )
-            // InternalOptimisationLanguage.g:5210:2: 'void'
+            // InternalOptimisationLanguage.g:5315:1: ( 'void' )
+            // InternalOptimisationLanguage.g:5316:2: 'void'
             {
              before(grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1()); 
             match(input,79,FOLLOW_2); 
@@ -16262,14 +16587,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5220:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5326:1: rule__DataTypeRule__Group__0 : rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 ;
     public final void rule__DataTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5224:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5225:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5330:1: ( rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5331:2: rule__DataTypeRule__Group__0__Impl rule__DataTypeRule__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__DataTypeRule__Group__0__Impl();
@@ -16300,21 +16625,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5232:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
+    // InternalOptimisationLanguage.g:5338:1: rule__DataTypeRule__Group__0__Impl : ( () ) ;
     public final void rule__DataTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5236:1: ( ( () ) )
-            // InternalOptimisationLanguage.g:5237:1: ( () )
+            // InternalOptimisationLanguage.g:5342:1: ( ( () ) )
+            // InternalOptimisationLanguage.g:5343:1: ( () )
             {
-            // InternalOptimisationLanguage.g:5237:1: ( () )
-            // InternalOptimisationLanguage.g:5238:2: ()
+            // InternalOptimisationLanguage.g:5343:1: ( () )
+            // InternalOptimisationLanguage.g:5344:2: ()
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataTypeAction_0()); 
-            // InternalOptimisationLanguage.g:5239:2: ()
-            // InternalOptimisationLanguage.g:5239:3: 
+            // InternalOptimisationLanguage.g:5345:2: ()
+            // InternalOptimisationLanguage.g:5345:3: 
             {
             }
 
@@ -16337,14 +16662,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5247:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5353:1: rule__DataTypeRule__Group__1 : rule__DataTypeRule__Group__1__Impl ;
     public final void rule__DataTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5251:1: ( rule__DataTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5252:2: rule__DataTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5357:1: ( rule__DataTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5358:2: rule__DataTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__DataTypeRule__Group__1__Impl();
@@ -16370,17 +16695,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5258:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
+    // InternalOptimisationLanguage.g:5364:1: rule__DataTypeRule__Group__1__Impl : ( 'data' ) ;
     public final void rule__DataTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5262:1: ( ( 'data' ) )
-            // InternalOptimisationLanguage.g:5263:1: ( 'data' )
+            // InternalOptimisationLanguage.g:5368:1: ( ( 'data' ) )
+            // InternalOptimisationLanguage.g:5369:1: ( 'data' )
             {
-            // InternalOptimisationLanguage.g:5263:1: ( 'data' )
-            // InternalOptimisationLanguage.g:5264:2: 'data'
+            // InternalOptimisationLanguage.g:5369:1: ( 'data' )
+            // InternalOptimisationLanguage.g:5370:2: 'data'
             {
              before(grammarAccess.getDataTypeRuleAccess().getDataKeyword_1()); 
             match(input,62,FOLLOW_2); 
@@ -16407,14 +16732,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0"
-    // InternalOptimisationLanguage.g:5274:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5380:1: rule__ArrayTypeRule__Group__0 : rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 ;
     public final void rule__ArrayTypeRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5278:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
-            // InternalOptimisationLanguage.g:5279:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
+            // InternalOptimisationLanguage.g:5384:1: ( rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1 )
+            // InternalOptimisationLanguage.g:5385:2: rule__ArrayTypeRule__Group__0__Impl rule__ArrayTypeRule__Group__1
             {
             pushFollow(FOLLOW_43);
             rule__ArrayTypeRule__Group__0__Impl();
@@ -16445,17 +16770,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5286:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
+    // InternalOptimisationLanguage.g:5392:1: rule__ArrayTypeRule__Group__0__Impl : ( 'array' ) ;
     public final void rule__ArrayTypeRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5290:1: ( ( 'array' ) )
-            // InternalOptimisationLanguage.g:5291:1: ( 'array' )
+            // InternalOptimisationLanguage.g:5396:1: ( ( 'array' ) )
+            // InternalOptimisationLanguage.g:5397:1: ( 'array' )
             {
-            // InternalOptimisationLanguage.g:5291:1: ( 'array' )
-            // InternalOptimisationLanguage.g:5292:2: 'array'
+            // InternalOptimisationLanguage.g:5397:1: ( 'array' )
+            // InternalOptimisationLanguage.g:5398:2: 'array'
             {
              before(grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0()); 
             match(input,80,FOLLOW_2); 
@@ -16482,14 +16807,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1"
-    // InternalOptimisationLanguage.g:5301:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5407:1: rule__ArrayTypeRule__Group__1 : rule__ArrayTypeRule__Group__1__Impl ;
     public final void rule__ArrayTypeRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5305:1: ( rule__ArrayTypeRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5306:2: rule__ArrayTypeRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5411:1: ( rule__ArrayTypeRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5412:2: rule__ArrayTypeRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__Group__1__Impl();
@@ -16515,21 +16840,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayTypeRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5312:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
+    // InternalOptimisationLanguage.g:5418:1: rule__ArrayTypeRule__Group__1__Impl : ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) ;
     public final void rule__ArrayTypeRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5316:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:5317:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalOptimisationLanguage.g:5422:1: ( ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:5423:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:5317:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
-            // InternalOptimisationLanguage.g:5318:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalOptimisationLanguage.g:5423:1: ( ( rule__ArrayTypeRule__ElementsAssignment_1 ) )
+            // InternalOptimisationLanguage.g:5424:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsAssignment_1()); 
-            // InternalOptimisationLanguage.g:5319:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
-            // InternalOptimisationLanguage.g:5319:3: rule__ArrayTypeRule__ElementsAssignment_1
+            // InternalOptimisationLanguage.g:5425:2: ( rule__ArrayTypeRule__ElementsAssignment_1 )
+            // InternalOptimisationLanguage.g:5425:3: rule__ArrayTypeRule__ElementsAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ArrayTypeRule__ElementsAssignment_1();
@@ -16562,14 +16887,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__Group__0"
-    // InternalOptimisationLanguage.g:5328:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
+    // InternalOptimisationLanguage.g:5434:1: rule__ParameterRule__Group__0 : rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 ;
     public final void rule__ParameterRule__Group__0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5332:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
-            // InternalOptimisationLanguage.g:5333:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
+            // InternalOptimisationLanguage.g:5438:1: ( rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1 )
+            // InternalOptimisationLanguage.g:5439:2: rule__ParameterRule__Group__0__Impl rule__ParameterRule__Group__1
             {
             pushFollow(FOLLOW_5);
             rule__ParameterRule__Group__0__Impl();
@@ -16600,21 +16925,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5340:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
+    // InternalOptimisationLanguage.g:5446:1: rule__ParameterRule__Group__0__Impl : ( ( rule__ParameterRule__TypeAssignment_0 ) ) ;
     public final void rule__ParameterRule__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5344:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
-            // InternalOptimisationLanguage.g:5345:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalOptimisationLanguage.g:5450:1: ( ( ( rule__ParameterRule__TypeAssignment_0 ) ) )
+            // InternalOptimisationLanguage.g:5451:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
             {
-            // InternalOptimisationLanguage.g:5345:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
-            // InternalOptimisationLanguage.g:5346:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalOptimisationLanguage.g:5451:1: ( ( rule__ParameterRule__TypeAssignment_0 ) )
+            // InternalOptimisationLanguage.g:5452:2: ( rule__ParameterRule__TypeAssignment_0 )
             {
              before(grammarAccess.getParameterRuleAccess().getTypeAssignment_0()); 
-            // InternalOptimisationLanguage.g:5347:2: ( rule__ParameterRule__TypeAssignment_0 )
-            // InternalOptimisationLanguage.g:5347:3: rule__ParameterRule__TypeAssignment_0
+            // InternalOptimisationLanguage.g:5453:2: ( rule__ParameterRule__TypeAssignment_0 )
+            // InternalOptimisationLanguage.g:5453:3: rule__ParameterRule__TypeAssignment_0
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__TypeAssignment_0();
@@ -16647,14 +16972,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__Group__1"
-    // InternalOptimisationLanguage.g:5355:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5461:1: rule__ParameterRule__Group__1 : rule__ParameterRule__Group__1__Impl ;
     public final void rule__ParameterRule__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5359:1: ( rule__ParameterRule__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5360:2: rule__ParameterRule__Group__1__Impl
+            // InternalOptimisationLanguage.g:5465:1: ( rule__ParameterRule__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5466:2: rule__ParameterRule__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__Group__1__Impl();
@@ -16680,21 +17005,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5366:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
+    // InternalOptimisationLanguage.g:5472:1: rule__ParameterRule__Group__1__Impl : ( ( rule__ParameterRule__NameAssignment_1 ) ) ;
     public final void rule__ParameterRule__Group__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5370:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
-            // InternalOptimisationLanguage.g:5371:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalOptimisationLanguage.g:5476:1: ( ( ( rule__ParameterRule__NameAssignment_1 ) ) )
+            // InternalOptimisationLanguage.g:5477:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
             {
-            // InternalOptimisationLanguage.g:5371:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
-            // InternalOptimisationLanguage.g:5372:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalOptimisationLanguage.g:5477:1: ( ( rule__ParameterRule__NameAssignment_1 ) )
+            // InternalOptimisationLanguage.g:5478:2: ( rule__ParameterRule__NameAssignment_1 )
             {
              before(grammarAccess.getParameterRuleAccess().getNameAssignment_1()); 
-            // InternalOptimisationLanguage.g:5373:2: ( rule__ParameterRule__NameAssignment_1 )
-            // InternalOptimisationLanguage.g:5373:3: rule__ParameterRule__NameAssignment_1
+            // InternalOptimisationLanguage.g:5479:2: ( rule__ParameterRule__NameAssignment_1 )
+            // InternalOptimisationLanguage.g:5479:3: rule__ParameterRule__NameAssignment_1
             {
             pushFollow(FOLLOW_2);
             rule__ParameterRule__NameAssignment_1();
@@ -16727,16 +17052,16 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group__0"
-    // InternalOptimisationLanguage.g:5382:1: rule__QualifiedName__Group__0 : rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 ;
+    // InternalOptimisationLanguage.g:5488: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 {
-            // InternalOptimisationLanguage.g:5386:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
-            // InternalOptimisationLanguage.g:5387:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
+            // InternalOptimisationLanguage.g:5492:1: ( rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1 )
+            // InternalOptimisationLanguage.g:5493:2: rule__QualifiedName__Group__0__Impl rule__QualifiedName__Group__1
             {
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_55);
             rule__QualifiedName__Group__0__Impl();
 
             state._fsp--;
@@ -16765,17 +17090,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group__0__Impl"
-    // InternalOptimisationLanguage.g:5394:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
+    // InternalOptimisationLanguage.g:5500:1: rule__QualifiedName__Group__0__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5398:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:5399:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5504:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5505:1: ( ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:5399:1: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:5400:2: ruleStringOrId
+            // InternalOptimisationLanguage.g:5505:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5506:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -16806,14 +17131,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group__1"
-    // InternalOptimisationLanguage.g:5409:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
+    // InternalOptimisationLanguage.g:5515:1: rule__QualifiedName__Group__1 : rule__QualifiedName__Group__1__Impl ;
     public final void rule__QualifiedName__Group__1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5413:1: ( rule__QualifiedName__Group__1__Impl )
-            // InternalOptimisationLanguage.g:5414:2: rule__QualifiedName__Group__1__Impl
+            // InternalOptimisationLanguage.g:5519:1: ( rule__QualifiedName__Group__1__Impl )
+            // InternalOptimisationLanguage.g:5520:2: rule__QualifiedName__Group__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group__1__Impl();
@@ -16839,35 +17164,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group__1__Impl"
-    // InternalOptimisationLanguage.g:5420:1: rule__QualifiedName__Group__1__Impl : ( ( rule__QualifiedName__Group_1__0 )* ) ;
+    // InternalOptimisationLanguage.g:5526: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 {
-            // InternalOptimisationLanguage.g:5424:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
-            // InternalOptimisationLanguage.g:5425:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:5530:1: ( ( ( rule__QualifiedName__Group_1__0 )* ) )
+            // InternalOptimisationLanguage.g:5531:1: ( ( rule__QualifiedName__Group_1__0 )* )
             {
-            // InternalOptimisationLanguage.g:5425:1: ( ( rule__QualifiedName__Group_1__0 )* )
-            // InternalOptimisationLanguage.g:5426:2: ( rule__QualifiedName__Group_1__0 )*
+            // InternalOptimisationLanguage.g:5531:1: ( ( rule__QualifiedName__Group_1__0 )* )
+            // InternalOptimisationLanguage.g:5532:2: ( rule__QualifiedName__Group_1__0 )*
             {
              before(grammarAccess.getQualifiedNameAccess().getGroup_1()); 
-            // InternalOptimisationLanguage.g:5427:2: ( rule__QualifiedName__Group_1__0 )*
-            loop37:
+            // InternalOptimisationLanguage.g:5533:2: ( rule__QualifiedName__Group_1__0 )*
+            loop39:
             do {
-                int alt37=2;
-                int LA37_0 = input.LA(1);
+                int alt39=2;
+                int LA39_0 = input.LA(1);
 
-                if ( (LA37_0==63) ) {
-                    alt37=1;
+                if ( (LA39_0==81) ) {
+                    alt39=1;
                 }
 
 
-                switch (alt37) {
+                switch (alt39) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:5427:3: rule__QualifiedName__Group_1__0
+            	    // InternalOptimisationLanguage.g:5533:3: rule__QualifiedName__Group_1__0
             	    {
-            	    pushFollow(FOLLOW_23);
+            	    pushFollow(FOLLOW_56);
             	    rule__QualifiedName__Group_1__0();
 
             	    state._fsp--;
@@ -16877,7 +17202,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
             	    break;
 
             	default :
-            	    break loop37;
+            	    break loop39;
                 }
             } while (true);
 
@@ -16904,14 +17229,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0"
-    // InternalOptimisationLanguage.g:5436:1: rule__QualifiedName__Group_1__0 : rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 ;
+    // InternalOptimisationLanguage.g:5542: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 {
-            // InternalOptimisationLanguage.g:5440:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
-            // InternalOptimisationLanguage.g:5441:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
+            // InternalOptimisationLanguage.g:5546:1: ( rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1 )
+            // InternalOptimisationLanguage.g:5547:2: rule__QualifiedName__Group_1__0__Impl rule__QualifiedName__Group_1__1
             {
             pushFollow(FOLLOW_5);
             rule__QualifiedName__Group_1__0__Impl();
@@ -16942,20 +17267,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__0__Impl"
-    // InternalOptimisationLanguage.g:5448:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
+    // InternalOptimisationLanguage.g:5554:1: rule__QualifiedName__Group_1__0__Impl : ( '.' ) ;
     public final void rule__QualifiedName__Group_1__0__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5452:1: ( ( '.' ) )
-            // InternalOptimisationLanguage.g:5453:1: ( '.' )
+            // InternalOptimisationLanguage.g:5558:1: ( ( '.' ) )
+            // InternalOptimisationLanguage.g:5559:1: ( '.' )
             {
-            // InternalOptimisationLanguage.g:5453:1: ( '.' )
-            // InternalOptimisationLanguage.g:5454:2: '.'
+            // InternalOptimisationLanguage.g:5559:1: ( '.' )
+            // InternalOptimisationLanguage.g:5560:2: '.'
             {
              before(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
-            match(input,63,FOLLOW_2); 
+            match(input,81,FOLLOW_2); 
              after(grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0()); 
 
             }
@@ -16979,14 +17304,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1"
-    // InternalOptimisationLanguage.g:5463:1: rule__QualifiedName__Group_1__1 : rule__QualifiedName__Group_1__1__Impl ;
+    // InternalOptimisationLanguage.g:5569: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 {
-            // InternalOptimisationLanguage.g:5467:1: ( rule__QualifiedName__Group_1__1__Impl )
-            // InternalOptimisationLanguage.g:5468:2: rule__QualifiedName__Group_1__1__Impl
+            // InternalOptimisationLanguage.g:5573:1: ( rule__QualifiedName__Group_1__1__Impl )
+            // InternalOptimisationLanguage.g:5574:2: rule__QualifiedName__Group_1__1__Impl
             {
             pushFollow(FOLLOW_2);
             rule__QualifiedName__Group_1__1__Impl();
@@ -17012,17 +17337,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__QualifiedName__Group_1__1__Impl"
-    // InternalOptimisationLanguage.g:5474:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
+    // InternalOptimisationLanguage.g:5580:1: rule__QualifiedName__Group_1__1__Impl : ( ruleStringOrId ) ;
     public final void rule__QualifiedName__Group_1__1__Impl() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5478:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:5479:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5584:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5585:1: ( ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:5479:1: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:5480:2: ruleStringOrId
+            // InternalOptimisationLanguage.g:5585:1: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5586:2: ruleStringOrId
             {
              before(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1()); 
             pushFollow(FOLLOW_2);
@@ -17053,17 +17378,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__ImportsAssignment_0"
-    // InternalOptimisationLanguage.g:5490:1: rule__OptimisationModelRule__ImportsAssignment_0 : ( ruleImportRule ) ;
+    // InternalOptimisationLanguage.g:5596:1: rule__OptimisationModelRule__ImportsAssignment_0 : ( ruleImportRule ) ;
     public final void rule__OptimisationModelRule__ImportsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5494:1: ( ( ruleImportRule ) )
-            // InternalOptimisationLanguage.g:5495:2: ( ruleImportRule )
+            // InternalOptimisationLanguage.g:5600:1: ( ( ruleImportRule ) )
+            // InternalOptimisationLanguage.g:5601:2: ( ruleImportRule )
             {
-            // InternalOptimisationLanguage.g:5495:2: ( ruleImportRule )
-            // InternalOptimisationLanguage.g:5496:3: ruleImportRule
+            // InternalOptimisationLanguage.g:5601:2: ( ruleImportRule )
+            // InternalOptimisationLanguage.g:5602:3: ruleImportRule
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getImportsImportRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -17094,17 +17419,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__ProblemAssignment_1"
-    // InternalOptimisationLanguage.g:5505:1: rule__OptimisationModelRule__ProblemAssignment_1 : ( ruleProblemRule ) ;
+    // InternalOptimisationLanguage.g:5611:1: rule__OptimisationModelRule__ProblemAssignment_1 : ( ruleProblemRule ) ;
     public final void rule__OptimisationModelRule__ProblemAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5509:1: ( ( ruleProblemRule ) )
-            // InternalOptimisationLanguage.g:5510:2: ( ruleProblemRule )
+            // InternalOptimisationLanguage.g:5615:1: ( ( ruleProblemRule ) )
+            // InternalOptimisationLanguage.g:5616:2: ( ruleProblemRule )
             {
-            // InternalOptimisationLanguage.g:5510:2: ( ruleProblemRule )
-            // InternalOptimisationLanguage.g:5511:3: ruleProblemRule
+            // InternalOptimisationLanguage.g:5616:2: ( ruleProblemRule )
+            // InternalOptimisationLanguage.g:5617:3: ruleProblemRule
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getProblemProblemRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17135,17 +17460,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OptimisationModelRule__AlgorithmAssignment_2"
-    // InternalOptimisationLanguage.g:5520:1: rule__OptimisationModelRule__AlgorithmAssignment_2 : ( ruleAlgorithmInstanceRule ) ;
+    // InternalOptimisationLanguage.g:5626:1: rule__OptimisationModelRule__AlgorithmAssignment_2 : ( ruleAlgorithmInstanceRule ) ;
     public final void rule__OptimisationModelRule__AlgorithmAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5524:1: ( ( ruleAlgorithmInstanceRule ) )
-            // InternalOptimisationLanguage.g:5525:2: ( ruleAlgorithmInstanceRule )
+            // InternalOptimisationLanguage.g:5630:1: ( ( ruleAlgorithmInstanceRule ) )
+            // InternalOptimisationLanguage.g:5631:2: ( ruleAlgorithmInstanceRule )
             {
-            // InternalOptimisationLanguage.g:5525:2: ( ruleAlgorithmInstanceRule )
-            // InternalOptimisationLanguage.g:5526:3: ruleAlgorithmInstanceRule
+            // InternalOptimisationLanguage.g:5631:2: ( ruleAlgorithmInstanceRule )
+            // InternalOptimisationLanguage.g:5632:3: ruleAlgorithmInstanceRule
             {
              before(grammarAccess.getOptimisationModelRuleAccess().getAlgorithmAlgorithmInstanceRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -17176,25 +17501,25 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ImportRule__ImportedNamespaceAssignment_1"
-    // InternalOptimisationLanguage.g:5535:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedNameRule ) ;
+    // InternalOptimisationLanguage.g:5641:1: rule__ImportRule__ImportedNamespaceAssignment_1 : ( ruleQualifiedName ) ;
     public final void rule__ImportRule__ImportedNamespaceAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5539:1: ( ( ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:5540:2: ( ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:5645:1: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:5646:2: ( ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:5540:2: ( ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:5541:3: ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:5646:2: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:5647:3: ruleQualifiedName
             {
-             before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0()); 
+             before(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
-             after(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0()); 
+             after(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0()); 
 
             }
 
@@ -17217,17 +17542,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__NameAssignment_1"
-    // InternalOptimisationLanguage.g:5550:1: rule__ProblemRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalOptimisationLanguage.g:5656:1: rule__ProblemRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ProblemRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5554:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:5555:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5660:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5661:2: ( ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:5555:2: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:5556:3: ruleStringOrId
+            // InternalOptimisationLanguage.g:5661:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5662:3: ruleStringOrId
             {
              before(grammarAccess.getProblemRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17258,17 +17583,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__ProblemAssignment_3"
-    // InternalOptimisationLanguage.g:5565:1: rule__ProblemRule__ProblemAssignment_3 : ( ruleInstanceRule ) ;
+    // InternalOptimisationLanguage.g:5671:1: rule__ProblemRule__ProblemAssignment_3 : ( ruleInstanceRule ) ;
     public final void rule__ProblemRule__ProblemAssignment_3() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5569:1: ( ( ruleInstanceRule ) )
-            // InternalOptimisationLanguage.g:5570:2: ( ruleInstanceRule )
+            // InternalOptimisationLanguage.g:5675:1: ( ( ruleInstanceRule ) )
+            // InternalOptimisationLanguage.g:5676:2: ( ruleInstanceRule )
             {
-            // InternalOptimisationLanguage.g:5570:2: ( ruleInstanceRule )
-            // InternalOptimisationLanguage.g:5571:3: ruleInstanceRule
+            // InternalOptimisationLanguage.g:5676:2: ( ruleInstanceRule )
+            // InternalOptimisationLanguage.g:5677:3: ruleInstanceRule
             {
              before(grammarAccess.getProblemRuleAccess().getProblemInstanceRuleParserRuleCall_3_0()); 
             pushFollow(FOLLOW_2);
@@ -17299,17 +17624,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ProblemRule__DocumentationAssignment_4_2"
-    // InternalOptimisationLanguage.g:5580:1: rule__ProblemRule__DocumentationAssignment_4_2 : ( ruleArrayRule ) ;
+    // InternalOptimisationLanguage.g:5686:1: rule__ProblemRule__DocumentationAssignment_4_2 : ( ruleArrayRule ) ;
     public final void rule__ProblemRule__DocumentationAssignment_4_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5584:1: ( ( ruleArrayRule ) )
-            // InternalOptimisationLanguage.g:5585:2: ( ruleArrayRule )
+            // InternalOptimisationLanguage.g:5690:1: ( ( ruleArrayRule ) )
+            // InternalOptimisationLanguage.g:5691:2: ( ruleArrayRule )
             {
-            // InternalOptimisationLanguage.g:5585:2: ( ruleArrayRule )
-            // InternalOptimisationLanguage.g:5586:3: ruleArrayRule
+            // InternalOptimisationLanguage.g:5691:2: ( ruleArrayRule )
+            // InternalOptimisationLanguage.g:5692:3: ruleArrayRule
             {
              before(grammarAccess.getProblemRuleAccess().getDocumentationArrayRuleParserRuleCall_4_2_0()); 
             pushFollow(FOLLOW_2);
@@ -17340,29 +17665,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__ProblemAssignment_2"
-    // InternalOptimisationLanguage.g:5595:1: rule__AlgorithmInstanceRule__ProblemAssignment_2 : ( ( ruleQualifiedNameRule ) ) ;
+    // InternalOptimisationLanguage.g:5701:1: rule__AlgorithmInstanceRule__ProblemAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__AlgorithmInstanceRule__ProblemAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5599:1: ( ( ( ruleQualifiedNameRule ) ) )
-            // InternalOptimisationLanguage.g:5600:2: ( ( ruleQualifiedNameRule ) )
+            // InternalOptimisationLanguage.g:5705:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:5706:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:5600:2: ( ( ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:5601:3: ( ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:5706:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:5707:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemCrossReference_2_0()); 
-            // InternalOptimisationLanguage.g:5602:3: ( ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:5603:4: ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:5708:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:5709:4: ruleQualifiedName
             {
-             before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameRuleParserRuleCall_2_0_1()); 
+             before(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
-             after(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameRuleParserRuleCall_2_0_1()); 
+             after(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemQualifiedNameParserRuleCall_2_0_1()); 
 
             }
 
@@ -17389,17 +17714,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__AlgorithmAssignment_5"
-    // InternalOptimisationLanguage.g:5614:1: rule__AlgorithmInstanceRule__AlgorithmAssignment_5 : ( ruleInstanceRule ) ;
+    // InternalOptimisationLanguage.g:5720:1: rule__AlgorithmInstanceRule__AlgorithmAssignment_5 : ( ruleInstanceRule ) ;
     public final void rule__AlgorithmInstanceRule__AlgorithmAssignment_5() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5618:1: ( ( ruleInstanceRule ) )
-            // InternalOptimisationLanguage.g:5619:2: ( ruleInstanceRule )
+            // InternalOptimisationLanguage.g:5724:1: ( ( ruleInstanceRule ) )
+            // InternalOptimisationLanguage.g:5725:2: ( ruleInstanceRule )
             {
-            // InternalOptimisationLanguage.g:5619:2: ( ruleInstanceRule )
-            // InternalOptimisationLanguage.g:5620:3: ruleInstanceRule
+            // InternalOptimisationLanguage.g:5725:2: ( ruleInstanceRule )
+            // InternalOptimisationLanguage.g:5726:3: ruleInstanceRule
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getAlgorithmInstanceRuleParserRuleCall_5_0()); 
             pushFollow(FOLLOW_2);
@@ -17430,17 +17755,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AlgorithmInstanceRule__DocumentationAssignment_6_2"
-    // InternalOptimisationLanguage.g:5629:1: rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 : ( ruleArrayRule ) ;
+    // InternalOptimisationLanguage.g:5735:1: rule__AlgorithmInstanceRule__DocumentationAssignment_6_2 : ( ruleArrayRule ) ;
     public final void rule__AlgorithmInstanceRule__DocumentationAssignment_6_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5633:1: ( ( ruleArrayRule ) )
-            // InternalOptimisationLanguage.g:5634:2: ( ruleArrayRule )
+            // InternalOptimisationLanguage.g:5739:1: ( ( ruleArrayRule ) )
+            // InternalOptimisationLanguage.g:5740:2: ( ruleArrayRule )
             {
-            // InternalOptimisationLanguage.g:5634:2: ( ruleArrayRule )
-            // InternalOptimisationLanguage.g:5635:3: ruleArrayRule
+            // InternalOptimisationLanguage.g:5740:2: ( ruleArrayRule )
+            // InternalOptimisationLanguage.g:5741:3: ruleArrayRule
             {
              before(grammarAccess.getAlgorithmInstanceRuleAccess().getDocumentationArrayRuleParserRuleCall_6_2_0()); 
             pushFollow(FOLLOW_2);
@@ -17471,29 +17796,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__DefinitionAssignment_0"
-    // InternalOptimisationLanguage.g:5644:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedNameRule ) ) ;
+    // InternalOptimisationLanguage.g:5750:1: rule__InstanceRule__DefinitionAssignment_0 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5648:1: ( ( ( ruleQualifiedNameRule ) ) )
-            // InternalOptimisationLanguage.g:5649:2: ( ( ruleQualifiedNameRule ) )
+            // InternalOptimisationLanguage.g:5754:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:5755:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:5649:2: ( ( ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:5650:3: ( ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:5755:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:5756:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0()); 
-            // InternalOptimisationLanguage.g:5651:3: ( ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:5652:4: ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:5757:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:5758:4: ruleQualifiedName
             {
-             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             before(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
-             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameRuleParserRuleCall_0_0_1()); 
+             after(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionQualifiedNameParserRuleCall_0_0_1()); 
 
             }
 
@@ -17520,17 +17845,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceRule__AttributesAssignment_1_1"
-    // InternalOptimisationLanguage.g:5663:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
+    // InternalOptimisationLanguage.g:5769:1: rule__InstanceRule__AttributesAssignment_1_1 : ( ruleAttributeRule ) ;
     public final void rule__InstanceRule__AttributesAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5667:1: ( ( ruleAttributeRule ) )
-            // InternalOptimisationLanguage.g:5668:2: ( ruleAttributeRule )
+            // InternalOptimisationLanguage.g:5773:1: ( ( ruleAttributeRule ) )
+            // InternalOptimisationLanguage.g:5774:2: ( ruleAttributeRule )
             {
-            // InternalOptimisationLanguage.g:5668:2: ( ruleAttributeRule )
-            // InternalOptimisationLanguage.g:5669:3: ruleAttributeRule
+            // InternalOptimisationLanguage.g:5774:2: ( ruleAttributeRule )
+            // InternalOptimisationLanguage.g:5775:3: ruleAttributeRule
             {
              before(grammarAccess.getInstanceRuleAccess().getAttributesAttributeRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17561,21 +17886,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__DefinitionAssignment_0"
-    // InternalOptimisationLanguage.g:5678:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
+    // InternalOptimisationLanguage.g:5784:1: rule__AttributeRule__DefinitionAssignment_0 : ( ( ruleStringOrId ) ) ;
     public final void rule__AttributeRule__DefinitionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5682:1: ( ( ( ruleStringOrId ) ) )
-            // InternalOptimisationLanguage.g:5683:2: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5788:1: ( ( ( ruleStringOrId ) ) )
+            // InternalOptimisationLanguage.g:5789:2: ( ( ruleStringOrId ) )
             {
-            // InternalOptimisationLanguage.g:5683:2: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:5684:3: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5789:2: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5790:3: ( ruleStringOrId )
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionCrossReference_0_0()); 
-            // InternalOptimisationLanguage.g:5685:3: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:5686:4: ruleStringOrId
+            // InternalOptimisationLanguage.g:5791:3: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5792:4: ruleStringOrId
             {
              before(grammarAccess.getAttributeRuleAccess().getDefinitionAttributeDefinitionStringOrIdParserRuleCall_0_0_1()); 
             pushFollow(FOLLOW_2);
@@ -17610,17 +17935,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeRule__ValueAssignment_2"
-    // InternalOptimisationLanguage.g:5697:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
+    // InternalOptimisationLanguage.g:5803:1: rule__AttributeRule__ValueAssignment_2 : ( ruleValueRule ) ;
     public final void rule__AttributeRule__ValueAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5701:1: ( ( ruleValueRule ) )
-            // InternalOptimisationLanguage.g:5702:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5807:1: ( ( ruleValueRule ) )
+            // InternalOptimisationLanguage.g:5808:2: ( ruleValueRule )
             {
-            // InternalOptimisationLanguage.g:5702:2: ( ruleValueRule )
-            // InternalOptimisationLanguage.g:5703:3: ruleValueRule
+            // InternalOptimisationLanguage.g:5808:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5809:3: ruleValueRule
             {
              before(grammarAccess.getAttributeRuleAccess().getValueValueRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -17651,17 +17976,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_0"
-    // InternalOptimisationLanguage.g:5712:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
+    // InternalOptimisationLanguage.g:5818:1: rule__ArrayRule__ValuesAssignment_2_0 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5716:1: ( ( ruleValueRule ) )
-            // InternalOptimisationLanguage.g:5717:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5822:1: ( ( ruleValueRule ) )
+            // InternalOptimisationLanguage.g:5823:2: ( ruleValueRule )
             {
-            // InternalOptimisationLanguage.g:5717:2: ( ruleValueRule )
-            // InternalOptimisationLanguage.g:5718:3: ruleValueRule
+            // InternalOptimisationLanguage.g:5823:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5824:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -17692,17 +18017,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayRule__ValuesAssignment_2_1_1"
-    // InternalOptimisationLanguage.g:5727:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
+    // InternalOptimisationLanguage.g:5833:1: rule__ArrayRule__ValuesAssignment_2_1_1 : ( ruleValueRule ) ;
     public final void rule__ArrayRule__ValuesAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5731:1: ( ( ruleValueRule ) )
-            // InternalOptimisationLanguage.g:5732:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5837:1: ( ( ruleValueRule ) )
+            // InternalOptimisationLanguage.g:5838:2: ( ruleValueRule )
             {
-            // InternalOptimisationLanguage.g:5732:2: ( ruleValueRule )
-            // InternalOptimisationLanguage.g:5733:3: ruleValueRule
+            // InternalOptimisationLanguage.g:5838:2: ( ruleValueRule )
+            // InternalOptimisationLanguage.g:5839:3: ruleValueRule
             {
              before(grammarAccess.getArrayRuleAccess().getValuesValueRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17733,17 +18058,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__LiteralValueRule__LiteralAssignment"
-    // InternalOptimisationLanguage.g:5742:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
+    // InternalOptimisationLanguage.g:5848:1: rule__LiteralValueRule__LiteralAssignment : ( ruleLiteralRule ) ;
     public final void rule__LiteralValueRule__LiteralAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5746:1: ( ( ruleLiteralRule ) )
-            // InternalOptimisationLanguage.g:5747:2: ( ruleLiteralRule )
+            // InternalOptimisationLanguage.g:5852:1: ( ( ruleLiteralRule ) )
+            // InternalOptimisationLanguage.g:5853:2: ( ruleLiteralRule )
             {
-            // InternalOptimisationLanguage.g:5747:2: ( ruleLiteralRule )
-            // InternalOptimisationLanguage.g:5748:3: ruleLiteralRule
+            // InternalOptimisationLanguage.g:5853:2: ( ruleLiteralRule )
+            // InternalOptimisationLanguage.g:5854:3: ruleLiteralRule
             {
              before(grammarAccess.getLiteralValueRuleAccess().getLiteralLiteralRuleParserRuleCall_0()); 
             pushFollow(FOLLOW_2);
@@ -17774,21 +18099,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DataReferenceRule__DefinitionAssignment_2"
-    // InternalOptimisationLanguage.g:5757:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
+    // InternalOptimisationLanguage.g:5863:1: rule__DataReferenceRule__DefinitionAssignment_2 : ( ( ruleStringOrId ) ) ;
     public final void rule__DataReferenceRule__DefinitionAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5761:1: ( ( ( ruleStringOrId ) ) )
-            // InternalOptimisationLanguage.g:5762:2: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5867:1: ( ( ( ruleStringOrId ) ) )
+            // InternalOptimisationLanguage.g:5868:2: ( ( ruleStringOrId ) )
             {
-            // InternalOptimisationLanguage.g:5762:2: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:5763:3: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5868:2: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:5869:3: ( ruleStringOrId )
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionCrossReference_2_0()); 
-            // InternalOptimisationLanguage.g:5764:3: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:5765:4: ruleStringOrId
+            // InternalOptimisationLanguage.g:5870:3: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:5871:4: ruleStringOrId
             {
              before(grammarAccess.getDataReferenceRuleAccess().getDefinitionDataDescriptionStringOrIdParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -17823,17 +18148,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_0"
-    // InternalOptimisationLanguage.g:5776:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5882:1: rule__OrExpressionRule__SubExpressionsAssignment_0 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5780:1: ( ( ruleXorExpressionRule ) )
-            // InternalOptimisationLanguage.g:5781:2: ( ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:5886:1: ( ( ruleXorExpressionRule ) )
+            // InternalOptimisationLanguage.g:5887:2: ( ruleXorExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5781:2: ( ruleXorExpressionRule )
-            // InternalOptimisationLanguage.g:5782:3: ruleXorExpressionRule
+            // InternalOptimisationLanguage.g:5887:2: ( ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:5888:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -17864,17 +18189,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__OrExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalOptimisationLanguage.g:5791:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5897:1: rule__OrExpressionRule__SubExpressionsAssignment_1_1 : ( ruleXorExpressionRule ) ;
     public final void rule__OrExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5795:1: ( ( ruleXorExpressionRule ) )
-            // InternalOptimisationLanguage.g:5796:2: ( ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:5901:1: ( ( ruleXorExpressionRule ) )
+            // InternalOptimisationLanguage.g:5902:2: ( ruleXorExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5796:2: ( ruleXorExpressionRule )
-            // InternalOptimisationLanguage.g:5797:3: ruleXorExpressionRule
+            // InternalOptimisationLanguage.g:5902:2: ( ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:5903:3: ruleXorExpressionRule
             {
              before(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17905,17 +18230,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_0"
-    // InternalOptimisationLanguage.g:5806:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5912:1: rule__XorExpressionRule__SubExpressionsAssignment_0 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5810:1: ( ( ruleAndExpressionRule ) )
-            // InternalOptimisationLanguage.g:5811:2: ( ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:5916:1: ( ( ruleAndExpressionRule ) )
+            // InternalOptimisationLanguage.g:5917:2: ( ruleAndExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5811:2: ( ruleAndExpressionRule )
-            // InternalOptimisationLanguage.g:5812:3: ruleAndExpressionRule
+            // InternalOptimisationLanguage.g:5917:2: ( ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:5918:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -17946,17 +18271,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__XorExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalOptimisationLanguage.g:5821:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5927:1: rule__XorExpressionRule__SubExpressionsAssignment_1_1 : ( ruleAndExpressionRule ) ;
     public final void rule__XorExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5825:1: ( ( ruleAndExpressionRule ) )
-            // InternalOptimisationLanguage.g:5826:2: ( ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:5931:1: ( ( ruleAndExpressionRule ) )
+            // InternalOptimisationLanguage.g:5932:2: ( ruleAndExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5826:2: ( ruleAndExpressionRule )
-            // InternalOptimisationLanguage.g:5827:3: ruleAndExpressionRule
+            // InternalOptimisationLanguage.g:5932:2: ( ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:5933:3: ruleAndExpressionRule
             {
              before(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -17987,17 +18312,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_0"
-    // InternalOptimisationLanguage.g:5836:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5942:1: rule__AndExpressionRule__SubExpressionsAssignment_0 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5840:1: ( ( ruleNotExpressionRule ) )
-            // InternalOptimisationLanguage.g:5841:2: ( ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:5946:1: ( ( ruleNotExpressionRule ) )
+            // InternalOptimisationLanguage.g:5947:2: ( ruleNotExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5841:2: ( ruleNotExpressionRule )
-            // InternalOptimisationLanguage.g:5842:3: ruleNotExpressionRule
+            // InternalOptimisationLanguage.g:5947:2: ( ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:5948:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18028,17 +18353,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AndExpressionRule__SubExpressionsAssignment_1_1"
-    // InternalOptimisationLanguage.g:5851:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5957:1: rule__AndExpressionRule__SubExpressionsAssignment_1_1 : ( ruleNotExpressionRule ) ;
     public final void rule__AndExpressionRule__SubExpressionsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5855:1: ( ( ruleNotExpressionRule ) )
-            // InternalOptimisationLanguage.g:5856:2: ( ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:5961:1: ( ( ruleNotExpressionRule ) )
+            // InternalOptimisationLanguage.g:5962:2: ( ruleNotExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5856:2: ( ruleNotExpressionRule )
-            // InternalOptimisationLanguage.g:5857:3: ruleNotExpressionRule
+            // InternalOptimisationLanguage.g:5962:2: ( ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:5963:3: ruleNotExpressionRule
             {
              before(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18069,24 +18394,24 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__NotExpressionRule__NegatedAssignment_0"
-    // InternalOptimisationLanguage.g:5866:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
+    // InternalOptimisationLanguage.g:5972:1: rule__NotExpressionRule__NegatedAssignment_0 : ( ( '!' ) ) ;
     public final void rule__NotExpressionRule__NegatedAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5870:1: ( ( ( '!' ) ) )
-            // InternalOptimisationLanguage.g:5871:2: ( ( '!' ) )
+            // InternalOptimisationLanguage.g:5976:1: ( ( ( '!' ) ) )
+            // InternalOptimisationLanguage.g:5977:2: ( ( '!' ) )
             {
-            // InternalOptimisationLanguage.g:5871:2: ( ( '!' ) )
-            // InternalOptimisationLanguage.g:5872:3: ( '!' )
+            // InternalOptimisationLanguage.g:5977:2: ( ( '!' ) )
+            // InternalOptimisationLanguage.g:5978:3: ( '!' )
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            // InternalOptimisationLanguage.g:5873:3: ( '!' )
-            // InternalOptimisationLanguage.g:5874:4: '!'
+            // InternalOptimisationLanguage.g:5979:3: ( '!' )
+            // InternalOptimisationLanguage.g:5980:4: '!'
             {
              before(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
-            match(input,81,FOLLOW_2); 
+            match(input,82,FOLLOW_2); 
              after(grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0()); 
 
             }
@@ -18114,17 +18439,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__NotExpressionRule__OperandAssignment_1"
-    // InternalOptimisationLanguage.g:5885:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
+    // InternalOptimisationLanguage.g:5991:1: rule__NotExpressionRule__OperandAssignment_1 : ( ruleComparisonExpressionRule ) ;
     public final void rule__NotExpressionRule__OperandAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5889:1: ( ( ruleComparisonExpressionRule ) )
-            // InternalOptimisationLanguage.g:5890:2: ( ruleComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:5995:1: ( ( ruleComparisonExpressionRule ) )
+            // InternalOptimisationLanguage.g:5996:2: ( ruleComparisonExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5890:2: ( ruleComparisonExpressionRule )
-            // InternalOptimisationLanguage.g:5891:3: ruleComparisonExpressionRule
+            // InternalOptimisationLanguage.g:5996:2: ( ruleComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:5997:3: ruleComparisonExpressionRule
             {
              before(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18155,17 +18480,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__LeftOperandAssignment_0"
-    // InternalOptimisationLanguage.g:5900:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6006:1: rule__ComparisonExpressionRule__LeftOperandAssignment_0 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5904:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:5905:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6010:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:6011:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5905:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:5906:3: ruleAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:6011:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6012:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18196,17 +18521,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ComparisonExpressionRule__ComparisonAssignment_1"
-    // InternalOptimisationLanguage.g:5915:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6021:1: rule__ComparisonExpressionRule__ComparisonAssignment_1 : ( rulePartialComparisonExpressionRule ) ;
     public final void rule__ComparisonExpressionRule__ComparisonAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5919:1: ( ( rulePartialComparisonExpressionRule ) )
-            // InternalOptimisationLanguage.g:5920:2: ( rulePartialComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:6025:1: ( ( rulePartialComparisonExpressionRule ) )
+            // InternalOptimisationLanguage.g:6026:2: ( rulePartialComparisonExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5920:2: ( rulePartialComparisonExpressionRule )
-            // InternalOptimisationLanguage.g:5921:3: rulePartialComparisonExpressionRule
+            // InternalOptimisationLanguage.g:6026:2: ( rulePartialComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:6027:3: rulePartialComparisonExpressionRule
             {
              before(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18237,17 +18562,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__OperatorAssignment_0"
-    // InternalOptimisationLanguage.g:5930:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
+    // InternalOptimisationLanguage.g:6036:1: rule__PartialComparisonExpressionRule__OperatorAssignment_0 : ( ruleComparisonOperatorRule ) ;
     public final void rule__PartialComparisonExpressionRule__OperatorAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5934:1: ( ( ruleComparisonOperatorRule ) )
-            // InternalOptimisationLanguage.g:5935:2: ( ruleComparisonOperatorRule )
+            // InternalOptimisationLanguage.g:6040:1: ( ( ruleComparisonOperatorRule ) )
+            // InternalOptimisationLanguage.g:6041:2: ( ruleComparisonOperatorRule )
             {
-            // InternalOptimisationLanguage.g:5935:2: ( ruleComparisonOperatorRule )
-            // InternalOptimisationLanguage.g:5936:3: ruleComparisonOperatorRule
+            // InternalOptimisationLanguage.g:6041:2: ( ruleComparisonOperatorRule )
+            // InternalOptimisationLanguage.g:6042:3: ruleComparisonOperatorRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18278,17 +18603,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__PartialComparisonExpressionRule__SubExpressionAssignment_1"
-    // InternalOptimisationLanguage.g:5945:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6051:1: rule__PartialComparisonExpressionRule__SubExpressionAssignment_1 : ( ruleAddOrSubtractExpressionRule ) ;
     public final void rule__PartialComparisonExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5949:1: ( ( ruleAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:5950:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6055:1: ( ( ruleAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:6056:2: ( ruleAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5950:2: ( ruleAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:5951:3: ruleAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:6056:2: ( ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6057:3: ruleAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18319,17 +18644,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0"
-    // InternalOptimisationLanguage.g:5960:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6066:1: rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5964:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalOptimisationLanguage.g:5965:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:6070:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalOptimisationLanguage.g:6071:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5965:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalOptimisationLanguage.g:5966:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalOptimisationLanguage.g:6071:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:6072:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18360,17 +18685,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0"
-    // InternalOptimisationLanguage.g:5975:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalOptimisationLanguage.g:6081:1: rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5979:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalOptimisationLanguage.g:5980:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalOptimisationLanguage.g:6085:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalOptimisationLanguage.g:6086:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalOptimisationLanguage.g:5980:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalOptimisationLanguage.g:5981:3: ruleAddOrSubtractOperatorRule
+            // InternalOptimisationLanguage.g:6086:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalOptimisationLanguage.g:6087:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18401,17 +18726,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1"
-    // InternalOptimisationLanguage.g:5990:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6096:1: rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1 : ( ruleMultiplyDivideModuloExpressionRule ) ;
     public final void rule__AddOrSubtractExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:5994:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalOptimisationLanguage.g:5995:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:6100:1: ( ( ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalOptimisationLanguage.g:6101:2: ( ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalOptimisationLanguage.g:5995:2: ( ruleMultiplyDivideModuloExpressionRule )
-            // InternalOptimisationLanguage.g:5996:3: ruleMultiplyDivideModuloExpressionRule
+            // InternalOptimisationLanguage.g:6101:2: ( ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:6102:3: ruleMultiplyDivideModuloExpressionRule
             {
              before(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18442,17 +18767,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0"
-    // InternalOptimisationLanguage.g:6005:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6111:1: rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6009:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalOptimisationLanguage.g:6010:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6115:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalOptimisationLanguage.g:6116:2: ( rulePowerOfExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6010:2: ( rulePowerOfExpressionRule )
-            // InternalOptimisationLanguage.g:6011:3: rulePowerOfExpressionRule
+            // InternalOptimisationLanguage.g:6116:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6117:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18483,17 +18808,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0"
-    // InternalOptimisationLanguage.g:6020:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
+    // InternalOptimisationLanguage.g:6126:1: rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0 : ( ruleMultiplyDivideModuloOperatorRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperatorsAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6024:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
-            // InternalOptimisationLanguage.g:6025:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalOptimisationLanguage.g:6130:1: ( ( ruleMultiplyDivideModuloOperatorRule ) )
+            // InternalOptimisationLanguage.g:6131:2: ( ruleMultiplyDivideModuloOperatorRule )
             {
-            // InternalOptimisationLanguage.g:6025:2: ( ruleMultiplyDivideModuloOperatorRule )
-            // InternalOptimisationLanguage.g:6026:3: ruleMultiplyDivideModuloOperatorRule
+            // InternalOptimisationLanguage.g:6131:2: ( ruleMultiplyDivideModuloOperatorRule )
+            // InternalOptimisationLanguage.g:6132:3: ruleMultiplyDivideModuloOperatorRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18524,17 +18849,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1"
-    // InternalOptimisationLanguage.g:6035:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6141:1: rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__MultiplyDivideModuloExpressionRule__OperandsAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6039:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalOptimisationLanguage.g:6040:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6145:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalOptimisationLanguage.g:6146:2: ( rulePowerOfExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6040:2: ( rulePowerOfExpressionRule )
-            // InternalOptimisationLanguage.g:6041:3: rulePowerOfExpressionRule
+            // InternalOptimisationLanguage.g:6146:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6147:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18565,17 +18890,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__LeftOperandAssignment_0"
-    // InternalOptimisationLanguage.g:6050:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6156:1: rule__PowerOfExpressionRule__LeftOperandAssignment_0 : ( ruleUnaryAddOrSubtractExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__LeftOperandAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6054:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:6055:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6160:1: ( ( ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:6161:2: ( ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6055:2: ( ruleUnaryAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:6056:3: ruleUnaryAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:6161:2: ( ruleUnaryAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:6162:3: ruleUnaryAddOrSubtractExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18606,17 +18931,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__PowerOfExpressionRule__RightOperandAssignment_1_1"
-    // InternalOptimisationLanguage.g:6065:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6171:1: rule__PowerOfExpressionRule__RightOperandAssignment_1_1 : ( rulePowerOfExpressionRule ) ;
     public final void rule__PowerOfExpressionRule__RightOperandAssignment_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6069:1: ( ( rulePowerOfExpressionRule ) )
-            // InternalOptimisationLanguage.g:6070:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6175:1: ( ( rulePowerOfExpressionRule ) )
+            // InternalOptimisationLanguage.g:6176:2: ( rulePowerOfExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6070:2: ( rulePowerOfExpressionRule )
-            // InternalOptimisationLanguage.g:6071:3: rulePowerOfExpressionRule
+            // InternalOptimisationLanguage.g:6176:2: ( rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:6177:3: rulePowerOfExpressionRule
             {
              before(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18647,17 +18972,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0"
-    // InternalOptimisationLanguage.g:6080:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
+    // InternalOptimisationLanguage.g:6186:1: rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0 : ( ruleAddOrSubtractOperatorRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__OperatorsAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6084:1: ( ( ruleAddOrSubtractOperatorRule ) )
-            // InternalOptimisationLanguage.g:6085:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalOptimisationLanguage.g:6190:1: ( ( ruleAddOrSubtractOperatorRule ) )
+            // InternalOptimisationLanguage.g:6191:2: ( ruleAddOrSubtractOperatorRule )
             {
-            // InternalOptimisationLanguage.g:6085:2: ( ruleAddOrSubtractOperatorRule )
-            // InternalOptimisationLanguage.g:6086:3: ruleAddOrSubtractOperatorRule
+            // InternalOptimisationLanguage.g:6191:2: ( ruleAddOrSubtractOperatorRule )
+            // InternalOptimisationLanguage.g:6192:3: ruleAddOrSubtractOperatorRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18688,17 +19013,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1"
-    // InternalOptimisationLanguage.g:6095:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
+    // InternalOptimisationLanguage.g:6201:1: rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1 : ( ruleLiteralOrReferenceRule ) ;
     public final void rule__UnaryAddOrSubtractExpressionRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6099:1: ( ( ruleLiteralOrReferenceRule ) )
-            // InternalOptimisationLanguage.g:6100:2: ( ruleLiteralOrReferenceRule )
+            // InternalOptimisationLanguage.g:6205:1: ( ( ruleLiteralOrReferenceRule ) )
+            // InternalOptimisationLanguage.g:6206:2: ( ruleLiteralOrReferenceRule )
             {
-            // InternalOptimisationLanguage.g:6100:2: ( ruleLiteralOrReferenceRule )
-            // InternalOptimisationLanguage.g:6101:3: ruleLiteralOrReferenceRule
+            // InternalOptimisationLanguage.g:6206:2: ( ruleLiteralOrReferenceRule )
+            // InternalOptimisationLanguage.g:6207:3: ruleLiteralOrReferenceRule
             {
              before(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18729,17 +19054,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParanthesesRule__SubExpressionAssignment_1"
-    // InternalOptimisationLanguage.g:6110:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6216:1: rule__ParanthesesRule__SubExpressionAssignment_1 : ( ruleExpressionRule ) ;
     public final void rule__ParanthesesRule__SubExpressionAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6114:1: ( ( ruleExpressionRule ) )
-            // InternalOptimisationLanguage.g:6115:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6220:1: ( ( ruleExpressionRule ) )
+            // InternalOptimisationLanguage.g:6221:2: ( ruleExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6115:2: ( ruleExpressionRule )
-            // InternalOptimisationLanguage.g:6116:3: ruleExpressionRule
+            // InternalOptimisationLanguage.g:6221:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6222:3: ruleExpressionRule
             {
              before(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18770,17 +19095,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__CallRule__FunctionAssignment_0"
-    // InternalOptimisationLanguage.g:6125:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
+    // InternalOptimisationLanguage.g:6231:1: rule__CallRule__FunctionAssignment_0 : ( ruleFunctionNameRule ) ;
     public final void rule__CallRule__FunctionAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6129:1: ( ( ruleFunctionNameRule ) )
-            // InternalOptimisationLanguage.g:6130:2: ( ruleFunctionNameRule )
+            // InternalOptimisationLanguage.g:6235:1: ( ( ruleFunctionNameRule ) )
+            // InternalOptimisationLanguage.g:6236:2: ( ruleFunctionNameRule )
             {
-            // InternalOptimisationLanguage.g:6130:2: ( ruleFunctionNameRule )
-            // InternalOptimisationLanguage.g:6131:3: ruleFunctionNameRule
+            // InternalOptimisationLanguage.g:6236:2: ( ruleFunctionNameRule )
+            // InternalOptimisationLanguage.g:6237:3: ruleFunctionNameRule
             {
              before(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18811,17 +19136,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_0"
-    // InternalOptimisationLanguage.g:6140:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6246:1: rule__CallRule__ParametersAssignment_2_0 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6144:1: ( ( ruleExpressionRule ) )
-            // InternalOptimisationLanguage.g:6145:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6250:1: ( ( ruleExpressionRule ) )
+            // InternalOptimisationLanguage.g:6251:2: ( ruleExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6145:2: ( ruleExpressionRule )
-            // InternalOptimisationLanguage.g:6146:3: ruleExpressionRule
+            // InternalOptimisationLanguage.g:6251:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6252:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0()); 
             pushFollow(FOLLOW_2);
@@ -18852,17 +19177,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__CallRule__ParametersAssignment_2_1_1"
-    // InternalOptimisationLanguage.g:6155:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6261:1: rule__CallRule__ParametersAssignment_2_1_1 : ( ruleExpressionRule ) ;
     public final void rule__CallRule__ParametersAssignment_2_1_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6159:1: ( ( ruleExpressionRule ) )
-            // InternalOptimisationLanguage.g:6160:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6265:1: ( ( ruleExpressionRule ) )
+            // InternalOptimisationLanguage.g:6266:2: ( ruleExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6160:2: ( ruleExpressionRule )
-            // InternalOptimisationLanguage.g:6161:3: ruleExpressionRule
+            // InternalOptimisationLanguage.g:6266:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6267:3: ruleExpressionRule
             {
              before(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18892,18 +19217,67 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // $ANTLR end "rule__CallRule__ParametersAssignment_2_1_1"
 
 
+    // $ANTLR start "rule__ConstantReferenceRule__DefinitionAssignment"
+    // InternalOptimisationLanguage.g:6276:1: rule__ConstantReferenceRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    public final void rule__ConstantReferenceRule__DefinitionAssignment() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:6280:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:6281:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalOptimisationLanguage.g:6281:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6282:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+            // InternalOptimisationLanguage.g:6283:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6284:4: ruleQualifiedName
+            {
+             before(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionQualifiedNameParserRuleCall_0_1()); 
+
+            }
+
+             after(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__ConstantReferenceRule__DefinitionAssignment"
+
+
     // $ANTLR start "rule__DoubleLiteralRule__LiteralAssignment_0"
-    // InternalOptimisationLanguage.g:6170:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
+    // InternalOptimisationLanguage.g:6295:1: rule__DoubleLiteralRule__LiteralAssignment_0 : ( RULE_DOUBLE ) ;
     public final void rule__DoubleLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6174:1: ( ( RULE_DOUBLE ) )
-            // InternalOptimisationLanguage.g:6175:2: ( RULE_DOUBLE )
+            // InternalOptimisationLanguage.g:6299:1: ( ( RULE_DOUBLE ) )
+            // InternalOptimisationLanguage.g:6300:2: ( RULE_DOUBLE )
             {
-            // InternalOptimisationLanguage.g:6175:2: ( RULE_DOUBLE )
-            // InternalOptimisationLanguage.g:6176:3: RULE_DOUBLE
+            // InternalOptimisationLanguage.g:6300:2: ( RULE_DOUBLE )
+            // InternalOptimisationLanguage.g:6301:3: RULE_DOUBLE
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0()); 
             match(input,RULE_DOUBLE,FOLLOW_2); 
@@ -18930,17 +19304,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__DoubleLiteralRule__FactorAssignment_1"
-    // InternalOptimisationLanguage.g:6185:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalOptimisationLanguage.g:6310:1: rule__DoubleLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__DoubleLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6189:1: ( ( ruleFactorRule ) )
-            // InternalOptimisationLanguage.g:6190:2: ( ruleFactorRule )
+            // InternalOptimisationLanguage.g:6314:1: ( ( ruleFactorRule ) )
+            // InternalOptimisationLanguage.g:6315:2: ( ruleFactorRule )
             {
-            // InternalOptimisationLanguage.g:6190:2: ( ruleFactorRule )
-            // InternalOptimisationLanguage.g:6191:3: ruleFactorRule
+            // InternalOptimisationLanguage.g:6315:2: ( ruleFactorRule )
+            // InternalOptimisationLanguage.g:6316:3: ruleFactorRule
             {
              before(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -18971,17 +19345,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntegerLiteralRule__LiteralAssignment_0"
-    // InternalOptimisationLanguage.g:6200:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
+    // InternalOptimisationLanguage.g:6325:1: rule__IntegerLiteralRule__LiteralAssignment_0 : ( RULE_INT ) ;
     public final void rule__IntegerLiteralRule__LiteralAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6204:1: ( ( RULE_INT ) )
-            // InternalOptimisationLanguage.g:6205:2: ( RULE_INT )
+            // InternalOptimisationLanguage.g:6329:1: ( ( RULE_INT ) )
+            // InternalOptimisationLanguage.g:6330:2: ( RULE_INT )
             {
-            // InternalOptimisationLanguage.g:6205:2: ( RULE_INT )
-            // InternalOptimisationLanguage.g:6206:3: RULE_INT
+            // InternalOptimisationLanguage.g:6330:2: ( RULE_INT )
+            // InternalOptimisationLanguage.g:6331:3: RULE_INT
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0()); 
             match(input,RULE_INT,FOLLOW_2); 
@@ -19008,17 +19382,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__IntegerLiteralRule__FactorAssignment_1"
-    // InternalOptimisationLanguage.g:6215:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
+    // InternalOptimisationLanguage.g:6340:1: rule__IntegerLiteralRule__FactorAssignment_1 : ( ruleFactorRule ) ;
     public final void rule__IntegerLiteralRule__FactorAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6219:1: ( ( ruleFactorRule ) )
-            // InternalOptimisationLanguage.g:6220:2: ( ruleFactorRule )
+            // InternalOptimisationLanguage.g:6344:1: ( ( ruleFactorRule ) )
+            // InternalOptimisationLanguage.g:6345:2: ( ruleFactorRule )
             {
-            // InternalOptimisationLanguage.g:6220:2: ( ruleFactorRule )
-            // InternalOptimisationLanguage.g:6221:3: ruleFactorRule
+            // InternalOptimisationLanguage.g:6345:2: ( ruleFactorRule )
+            // InternalOptimisationLanguage.g:6346:3: ruleFactorRule
             {
              before(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -19049,17 +19423,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__StringLiteralRule__ValueAssignment"
-    // InternalOptimisationLanguage.g:6230:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
+    // InternalOptimisationLanguage.g:6355:1: rule__StringLiteralRule__ValueAssignment : ( RULE_STRING ) ;
     public final void rule__StringLiteralRule__ValueAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6234:1: ( ( RULE_STRING ) )
-            // InternalOptimisationLanguage.g:6235:2: ( RULE_STRING )
+            // InternalOptimisationLanguage.g:6359:1: ( ( RULE_STRING ) )
+            // InternalOptimisationLanguage.g:6360:2: ( RULE_STRING )
             {
-            // InternalOptimisationLanguage.g:6235:2: ( RULE_STRING )
-            // InternalOptimisationLanguage.g:6236:3: RULE_STRING
+            // InternalOptimisationLanguage.g:6360:2: ( RULE_STRING )
+            // InternalOptimisationLanguage.g:6361:3: RULE_STRING
             {
              before(grammarAccess.getStringLiteralRuleAccess().getValueSTRINGTerminalRuleCall_0()); 
             match(input,RULE_STRING,FOLLOW_2); 
@@ -19086,24 +19460,24 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__BooleanLiteralRule__ValueAssignment_1_0"
-    // InternalOptimisationLanguage.g:6245:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
+    // InternalOptimisationLanguage.g:6370:1: rule__BooleanLiteralRule__ValueAssignment_1_0 : ( ( 'true' ) ) ;
     public final void rule__BooleanLiteralRule__ValueAssignment_1_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6249:1: ( ( ( 'true' ) ) )
-            // InternalOptimisationLanguage.g:6250:2: ( ( 'true' ) )
+            // InternalOptimisationLanguage.g:6374:1: ( ( ( 'true' ) ) )
+            // InternalOptimisationLanguage.g:6375:2: ( ( 'true' ) )
             {
-            // InternalOptimisationLanguage.g:6250:2: ( ( 'true' ) )
-            // InternalOptimisationLanguage.g:6251:3: ( 'true' )
+            // InternalOptimisationLanguage.g:6375:2: ( ( 'true' ) )
+            // InternalOptimisationLanguage.g:6376:3: ( 'true' )
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            // InternalOptimisationLanguage.g:6252:3: ( 'true' )
-            // InternalOptimisationLanguage.g:6253:4: 'true'
+            // InternalOptimisationLanguage.g:6377:3: ( 'true' )
+            // InternalOptimisationLanguage.g:6378:4: 'true'
             {
              before(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
-            match(input,82,FOLLOW_2); 
+            match(input,83,FOLLOW_2); 
              after(grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0()); 
 
             }
@@ -19130,18 +19504,194 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // $ANTLR end "rule__BooleanLiteralRule__ValueAssignment_1_0"
 
 
+    // $ANTLR start "rule__TypeDefinitionRule__AbstractAssignment_0"
+    // InternalOptimisationLanguage.g:6389:1: rule__TypeDefinitionRule__AbstractAssignment_0 : ( ( 'abstract' ) ) ;
+    public final void rule__TypeDefinitionRule__AbstractAssignment_0() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:6393:1: ( ( ( 'abstract' ) ) )
+            // InternalOptimisationLanguage.g:6394:2: ( ( 'abstract' ) )
+            {
+            // InternalOptimisationLanguage.g:6394:2: ( ( 'abstract' ) )
+            // InternalOptimisationLanguage.g:6395:3: ( 'abstract' )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            // InternalOptimisationLanguage.g:6396:3: ( 'abstract' )
+            // InternalOptimisationLanguage.g:6397:4: 'abstract'
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+            match(input,84,FOLLOW_2); 
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AbstractAssignment_0"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__NameAssignment_2"
+    // InternalOptimisationLanguage.g:6408:1: rule__TypeDefinitionRule__NameAssignment_2 : ( ruleStringOrId ) ;
+    public final void rule__TypeDefinitionRule__NameAssignment_2() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:6412:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:6413:2: ( ruleStringOrId )
+            {
+            // InternalOptimisationLanguage.g:6413:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:6414:3: ruleStringOrId
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+            pushFollow(FOLLOW_2);
+            ruleStringOrId();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__NameAssignment_2"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+    // InternalOptimisationLanguage.g:6423:1: rule__TypeDefinitionRule__SuperTypeAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    public final void rule__TypeDefinitionRule__SuperTypeAssignment_3_1() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:6427:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:6428:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalOptimisationLanguage.g:6428:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6429:3: ( ruleQualifiedName )
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+            // InternalOptimisationLanguage.g:6430:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6431:4: ruleQualifiedName
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
+
+            }
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__SuperTypeAssignment_3_1"
+
+
+    // $ANTLR start "rule__TypeDefinitionRule__AttributesAssignment_5"
+    // InternalOptimisationLanguage.g:6442:1: rule__TypeDefinitionRule__AttributesAssignment_5 : ( ruleAttributeDefinitionRule ) ;
+    public final void rule__TypeDefinitionRule__AttributesAssignment_5() throws RecognitionException {
+
+        		int stackSize = keepStackSize();
+        	
+        try {
+            // InternalOptimisationLanguage.g:6446:1: ( ( ruleAttributeDefinitionRule ) )
+            // InternalOptimisationLanguage.g:6447:2: ( ruleAttributeDefinitionRule )
+            {
+            // InternalOptimisationLanguage.g:6447:2: ( ruleAttributeDefinitionRule )
+            // InternalOptimisationLanguage.g:6448:3: ruleAttributeDefinitionRule
+            {
+             before(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+            pushFollow(FOLLOW_2);
+            ruleAttributeDefinitionRule();
+
+            state._fsp--;
+
+             after(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0()); 
+
+            }
+
+
+            }
+
+        }
+        catch (RecognitionException re) {
+            reportError(re);
+            recover(input,re);
+        }
+        finally {
+
+            	restoreStackSize(stackSize);
+
+        }
+        return ;
+    }
+    // $ANTLR end "rule__TypeDefinitionRule__AttributesAssignment_5"
+
+
     // $ANTLR start "rule__AttributeDefinitionRule__NameAssignment_0"
-    // InternalOptimisationLanguage.g:6264:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
+    // InternalOptimisationLanguage.g:6457:1: rule__AttributeDefinitionRule__NameAssignment_0 : ( ruleStringOrId ) ;
     public final void rule__AttributeDefinitionRule__NameAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6268:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:6269:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:6461:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:6462:2: ( ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:6269:2: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:6270:3: ruleStringOrId
+            // InternalOptimisationLanguage.g:6462:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:6463:3: ruleStringOrId
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -19172,17 +19722,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__TypeAssignment_2"
-    // InternalOptimisationLanguage.g:6279:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
+    // InternalOptimisationLanguage.g:6472:1: rule__AttributeDefinitionRule__TypeAssignment_2 : ( ruleTypeRule ) ;
     public final void rule__AttributeDefinitionRule__TypeAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6283:1: ( ( ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:6284:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6476:1: ( ( ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:6477:2: ( ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:6284:2: ( ruleTypeRule )
-            // InternalOptimisationLanguage.g:6285:3: ruleTypeRule
+            // InternalOptimisationLanguage.g:6477:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6478:3: ruleTypeRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0()); 
             pushFollow(FOLLOW_2);
@@ -19213,17 +19763,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__AttributeDefinitionRule__InitialisationAssignment_3_1"
-    // InternalOptimisationLanguage.g:6294:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
+    // InternalOptimisationLanguage.g:6487:1: rule__AttributeDefinitionRule__InitialisationAssignment_3_1 : ( ruleExpressionRule ) ;
     public final void rule__AttributeDefinitionRule__InitialisationAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6298:1: ( ( ruleExpressionRule ) )
-            // InternalOptimisationLanguage.g:6299:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6491:1: ( ( ruleExpressionRule ) )
+            // InternalOptimisationLanguage.g:6492:2: ( ruleExpressionRule )
             {
-            // InternalOptimisationLanguage.g:6299:2: ( ruleExpressionRule )
-            // InternalOptimisationLanguage.g:6300:3: ruleExpressionRule
+            // InternalOptimisationLanguage.g:6492:2: ( ruleExpressionRule )
+            // InternalOptimisationLanguage.g:6493:3: ruleExpressionRule
             {
              before(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0()); 
             pushFollow(FOLLOW_2);
@@ -19254,21 +19804,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_2"
-    // InternalOptimisationLanguage.g:6309:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
+    // InternalOptimisationLanguage.g:6502:1: rule__InstanceTypeRule__DefinitionsAssignment_2 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_2() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6313:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalOptimisationLanguage.g:6314:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6506:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:6507:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:6314:2: ( ( ruleQualifiedName ) )
-            // InternalOptimisationLanguage.g:6315:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6507:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6508:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0()); 
-            // InternalOptimisationLanguage.g:6316:3: ( ruleQualifiedName )
-            // InternalOptimisationLanguage.g:6317:4: ruleQualifiedName
+            // InternalOptimisationLanguage.g:6509:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6510:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_2_0_1()); 
             pushFollow(FOLLOW_2);
@@ -19303,21 +19853,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__InstanceTypeRule__DefinitionsAssignment_3_1"
-    // InternalOptimisationLanguage.g:6328:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
+    // InternalOptimisationLanguage.g:6521:1: rule__InstanceTypeRule__DefinitionsAssignment_3_1 : ( ( ruleQualifiedName ) ) ;
     public final void rule__InstanceTypeRule__DefinitionsAssignment_3_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6332:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalOptimisationLanguage.g:6333:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6525:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:6526:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:6333:2: ( ( ruleQualifiedName ) )
-            // InternalOptimisationLanguage.g:6334:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6526:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6527:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0()); 
-            // InternalOptimisationLanguage.g:6335:3: ( ruleQualifiedName )
-            // InternalOptimisationLanguage.g:6336:4: ruleQualifiedName
+            // InternalOptimisationLanguage.g:6528:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6529:4: ruleQualifiedName
             {
              before(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionQualifiedNameParserRuleCall_3_1_0_1()); 
             pushFollow(FOLLOW_2);
@@ -19352,17 +19902,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ArrayTypeRule__ElementsAssignment_1"
-    // InternalOptimisationLanguage.g:6347:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
+    // InternalOptimisationLanguage.g:6540:1: rule__ArrayTypeRule__ElementsAssignment_1 : ( ruleTypeRule ) ;
     public final void rule__ArrayTypeRule__ElementsAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6351:1: ( ( ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:6352:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6544:1: ( ( ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:6545:2: ( ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:6352:2: ( ruleTypeRule )
-            // InternalOptimisationLanguage.g:6353:3: ruleTypeRule
+            // InternalOptimisationLanguage.g:6545:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6546:3: ruleTypeRule
             {
              before(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -19393,17 +19943,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__TypeAssignment_0"
-    // InternalOptimisationLanguage.g:6362:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
+    // InternalOptimisationLanguage.g:6555:1: rule__ParameterRule__TypeAssignment_0 : ( ruleTypeRule ) ;
     public final void rule__ParameterRule__TypeAssignment_0() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6366:1: ( ( ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:6367:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6559:1: ( ( ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:6560:2: ( ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:6367:2: ( ruleTypeRule )
-            // InternalOptimisationLanguage.g:6368:3: ruleTypeRule
+            // InternalOptimisationLanguage.g:6560:2: ( ruleTypeRule )
+            // InternalOptimisationLanguage.g:6561:3: ruleTypeRule
             {
              before(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0()); 
             pushFollow(FOLLOW_2);
@@ -19434,17 +19984,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__ParameterRule__NameAssignment_1"
-    // InternalOptimisationLanguage.g:6377:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
+    // InternalOptimisationLanguage.g:6570:1: rule__ParameterRule__NameAssignment_1 : ( ruleStringOrId ) ;
     public final void rule__ParameterRule__NameAssignment_1() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6381:1: ( ( ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:6382:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:6574:1: ( ( ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:6575:2: ( ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:6382:2: ( ruleStringOrId )
-            // InternalOptimisationLanguage.g:6383:3: ruleStringOrId
+            // InternalOptimisationLanguage.g:6575:2: ( ruleStringOrId )
+            // InternalOptimisationLanguage.g:6576:3: ruleStringOrId
             {
              before(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0()); 
             pushFollow(FOLLOW_2);
@@ -19475,21 +20025,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
 
 
     // $ANTLR start "rule__FunctionNameRule__DefinitionAssignment"
-    // InternalOptimisationLanguage.g:6392:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
+    // InternalOptimisationLanguage.g:6585:1: rule__FunctionNameRule__DefinitionAssignment : ( ( ruleQualifiedName ) ) ;
     public final void rule__FunctionNameRule__DefinitionAssignment() throws RecognitionException {
 
         		int stackSize = keepStackSize();
         	
         try {
-            // InternalOptimisationLanguage.g:6396:1: ( ( ( ruleQualifiedName ) ) )
-            // InternalOptimisationLanguage.g:6397:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6589:1: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:6590:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:6397:2: ( ( ruleQualifiedName ) )
-            // InternalOptimisationLanguage.g:6398:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6590:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:6591:3: ( ruleQualifiedName )
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionCrossReference_0()); 
-            // InternalOptimisationLanguage.g:6399:3: ( ruleQualifiedName )
-            // InternalOptimisationLanguage.g:6400:4: ruleQualifiedName
+            // InternalOptimisationLanguage.g:6592:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:6593:4: ruleQualifiedName
             {
              before(grammarAccess.getFunctionNameRuleAccess().getDefinitionFunctionDefinitionQualifiedNameParserRuleCall_0_1()); 
             pushFollow(FOLLOW_2);
@@ -19525,6 +20075,51 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     // Delegated rules
 
 
+    protected DFA2 dfa2 = new DFA2(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\4\2\uffff\2\20";
+    static final String dfa_4s = "\1\123\2\121\2\uffff\1\5\2\uffff\2\121";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\1\1\1\2\3\3\6\uffff\1\3\63\uffff\1\4\17\uffff\1\3",
+            "\13\7\25\uffff\1\7\14\uffff\1\7\1\uffff\4\7\1\6\1\7\14\uffff\1\5",
+            "\13\7\25\uffff\1\7\14\uffff\1\7\1\uffff\4\7\1\6\1\7\14\uffff\1\5",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\13\7\25\uffff\1\7\14\uffff\1\7\1\uffff\4\7\1\6\1\7\14\uffff\1\5",
+            "\13\7\25\uffff\1\7\14\uffff\1\7\1\uffff\4\7\1\6\1\7\14\uffff\1\5"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA2 extends DFA {
+
+        public DFA2(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 2;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1375:1: rule__LiteralOrReferenceRule__Alternatives : ( ( ruleCallRule ) | ( ruleLiteralRule ) | ( ruleParanthesesRule ) | ( ruleValueReferenceRule ) );";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -19543,31 +20138,31 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0200000000000000L});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0400000000000030L});
     public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x0000000000000032L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x48000000000081F0L,0x0000000000040000L});
-    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x58000000000081F0L,0x0000000000040000L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x48000000000081F0L,0x0000000000080000L});
+    public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x58000000000081F0L,0x0000000000080000L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x2000000000000000L});
     public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x2000000000000002L});
     public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x4000000000000000L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x8000000000000000L});
     public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x8000000000000002L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x4800000000C081F0L,0x0000000000060050L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x4800000000C081F0L,0x00000000000C0008L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000001L});
     public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000002L});
     public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000002L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x00000000003F0000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x00000000003F0002L});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000000C00000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000000C00002L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000007000000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x00000000003F0000L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x00000000003F0002L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000C00000L});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000000000C00002L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000000007000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000007000002L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
     public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000008L});
-    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
-    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000010L});
-    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x4800000000C081F0L,0x0000000000060070L});
-    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x4800000000C081F0L,0x00000000000C0018L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x00007FFFF8000000L});
+    public static final BitSet FOLLOW_40 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
+    public static final BitSet FOLLOW_41 = new BitSet(new long[]{0x0200000000000000L,0x0000000000000040L});
     public static final BitSet FOLLOW_42 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
     public static final BitSet FOLLOW_43 = new BitSet(new long[]{0x4020000000000000L,0x000000000001FD00L});
     public static final BitSet FOLLOW_44 = new BitSet(new long[]{0x0011000000000000L});
@@ -19581,5 +20176,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalContentA
     public static final BitSet FOLLOW_52 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
     public static final BitSet FOLLOW_53 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
     public static final BitSet FOLLOW_54 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
+    public static final BitSet FOLLOW_55 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
+    public static final BitSet FOLLOW_56 = new BitSet(new long[]{0x0000000000000002L,0x0000000000020000L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtextbin b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtextbin
index b013967f8e05bfa071d181cad471f594581d51b1..64797103d0fd13274744c09ac12d2f13fea1234c 100644
GIT binary patch
delta 4335
zcmZu!X<$^<70#VE?@jiwWP^k)Yypv>R%weY?;Zn|mIAU>Kxrq*1E-zL#F<HeB7LBO
z8&=8_#kDR7q9`aL6;xb6TSQr`)gpo-uDF1EtJR+Gz58YoN`8>Md%p9X@0@$@xrZH-
zk5Ae7l`hWQ^tJwNiCv`2#iB4!eoi8uN=M@9N!DyDX~i3?Ni8u;la~rDU{2TMWdSWm
zD-DPL4<>^0a#5@oG+MKx@n|}lh#P?sA-P0!)a6p;d<C4#vd(oGtQcs>D@BoRZV~N&
z<W(XR2#nG-d9^U~z$_uJafXzaowW?$WeO{=1!y3H{=^dU6U|mKl1?O3hISfDxQ?N6
zxhM(rat@VOmwNg9SxH(E2<B)#oP*`vOE?2Z=z36IFFNRQrSod};F22<bf6IOMy#!J
zCRFsPsEf8n8!bcL1Y4MGH^X)d+Xm&|inYFw<?ODgIxi#eFTTJ#P9gA4<g$v1?qXw}
zt3KYS#NQ3uQa{ht&WVZ&;~pfm#wo7so3~b_aj!GHvTyfwBE&VgFT=t$a5v$8IIMT<
z%Ie|=l*5C_yUf{FS&F<jaNZ%g5qUi1?5^xz_Auw6jU2(6HevCRfS#k(FuJ;G^u;Za
zm?1YK(UEL_6!tB!SFyd!xBnG(_&)~wR@l42-eqds@)))uL@z)d2jmIowk~~3o`l<Q
zUfYhfr<{FV`iy@Xz~KzUk9>x+D^9i4kDk|@v{EVmoIQ&=E%Gq_zjB9P^_@%+l;i7!
ze9l=Es^~4B2Rx~O@^3!w@4%fuVUm!$fUA)&02lLdyM5e?kObIEfCc0pXHVCP0c+%X
zbCJ2qTq>8F%ghz#YMD0I$%S&UdB8ku9+l(dR9PUSa<5ZVRhhR>?Zkd(a8;%KGH+e3
z{D&yUVb6=yr_#wtL)y?r@d18?qh*%31pnl3Jw3nK67p59h8~YJS?)f+2DRH5@h=F)
zr8&URTx(w1;sYh*>x|A%wea<r!rrdSLEO(bM0f9Y?-zzV1QPce%ERm(SRmw^&c5E|
zA^8?t<dGHC-R!rO_M^Da<>9bQr<2k8mbBI8MhE3PoRcBnZ71<PU*h}V9wy`mFe4dP
z&W8wbjQda?6na<nBNgmp1Pg`3Q|8;8dQg7Chqgd|3XkLLQ8Jk|#OGxFPAI?6;8zq5
zXYK6#xqDT<5S?}TrH|vneZ{ImTze+MrpvFv{tdGij*X`?)VBP$^7#+A^TT0fW#VsL
z;_pEGUmwIo-!pMA8c(~dKQJrhFl+IcSR#_;CE<Bc0JMeSaK<cxq=A@%OiZ@!<AflC
znT^@t0XK!foy*)ED3OR+k$6Tm<teXxuos8JZ2-();PMxOzsLtNUoq3?)_YWLfD%z;
z>(l`e#zoWIX=B+49hGAz6`>7)BXo8nlp;cz59A2th!FFr+z1s&p%Ueh$z)`HmcEPf
zvb(DKWbDjd<+4|!8WFe&>c&Sa&x%=1Ry^&sQ|gZWJccNOdLT?s4%2b0`{XrP*+{)q
zq#6V&!T#b=^bjIgOT9UmPJNI{Umwbp{WyAFRAB}6cNX_3JH3{#7!B}Hl5ZFd<iPF?
zqtjGFp+W2zxJ1zD@URENBizPgi0|PF{}F_r!NQBCC8CX4(LYv7&V=ZKaM-tUan5p!
zGZcD%;-iG1pK@5el}TLQpMiInD6|8ev)wgIf3|WQ4*HJaaC-~~8Q}&Qi6EnVEC(?;
zNP(4U*KR0@P=plfBI!sr#yRk_r)yNFa`4SeKiZ`q1Nw6neI3*P962;H3yASUV^#N~
zU$99VHbT%Z`6QIMV@V_yO-20agvOz+7r^IN3=N#^`P<|1v5-IH5qXR{P)~WBhRJUz
zhjQr*BC4bbEWKh(OS}P8*{0_<ESl)4GdHv7^H_8)O=7|zPey_!w{3Sch2!Hm(o`(_
zeY~2cK^Hf2`Zbi)3Oe6UX}Tk8O6?ga-%Qp}JTa2w?$6iI3w?nXnl427xPfHMEM=Bk
zzu&YI@LOL%q^$s|SMgB~YVZ$fBg706WVsq<dm4b41H%A87vVRGNKw?spAk>4&+j~u
z@(LF9dlqF-j2(>zOrC<8+6jz9;9h1-v=i7Y&Q%q<m|fjHPBOq~jl^2qmxNMC0b46*
zrn$k~Vs10PG`};Cn;*&<=5}EODJ_BlYH_Zs8EUlR&$-SEHAC%r{HHlX)9WKCON2r+
zABWVx{$7#)!1^hz(E=`Vknfpq<#aA_YrK%9oHPj2A91H`c+S(@F0cp!@y^m>Z*zlm
zsW7;J3j|%p4{n8hIV!vayPSDnJpq`fAprAqkasy_W(8NW0-dfpg@UW0;2NdiDEA?E
zhUQZy=vu#sn4kS3+9N`Q*_oEJg#2l!tQQ`$Gs3Sx_+0KYFmY&1&pKTXmz8jFyR+wV
zgL1i1xws~FS>>v|33vKtAHsTW!9lWT3cA%l_qVaIkh{C8li%(s6XcK9bO)UHc;0z3
z^ezQu;=6&l&^;Bav3d{d?1UcE{=Yl4hQ-*(aV-RQ2#4EYSopmxJV@&x{5~aoE%V>c
z{9ZGn^{3c^2e1VX0^h392By|KdDL}Qsv#L|MmOP&*~rq&Z8l^w=R*+6&)LKHy@>^P
zRL^RgEqO#~*bKS+UbRKA+DBQ7|HNX>qAiGUzze`3+-Y5PzsFD_G{3Hbme6uqNt?J#
zhE7{?Nwx(<j#2CEt?A+1-mh@T<5-)k1sfY<f}X%fi`M1=e3DnPmr1AX&Vhbac~3#?
zR*jx^zVBBRdd98fvrf<crS=Y_xRX;X7~9mGNT$8R^PIvz&&e5ieBWFfr^RzSZvuw)
zP}EzaU7Tqr@55>w&#f`l9BJ@6f;-Feg`?fbP-Xj~H*x1SClmEC+iG&F^Acq2VHt%J
zv1~PYI`%3Z`=En|K4oMf`&o!VFEej$qty_LBrQQa%V%3Uy@G=CT_X(dS|lY1qq`SY
zMSV>SayMF#8sBxo_+HqUXlTI*gPD|GhdZ9MgU+nl@@a2C=}M+O#Oo?2L5IDh@*}Z1
ziDWc=k(bq*z`n&<l}mr!?_6GfM^t`qJG*MD?4z7hF1^FNZ8r2>{tV7eBn7>9vi$dP
zwm<MoBn-kV?=`q%?4{3TA%Z^QKeM_7eatl3Z@2oNK<E5gPU=(d_Um+<z1r8|1h2St
b_zZQZ`P{F=7rgG*ff;tv9!@!+1;zgWw?yCD

delta 4281
zcmZu!d3;pW73R*HH<=+J3xO;oNZ3~$YpZRM<=s=nVv${{pw^en3rsti36lwmKpz$b
z6ma3GrAk#4MNmORMFpi+#1;2eMFFuE5q_<-7Hx}NzH{Gw$%G&I17_|y=R4o|?!D)p
zIW}$A)JMNI#aUawF;A4Z1*Rdd5#^@*l`ulqC5Ci`kc&mcjLfxDt&Yh1lh=xZP-rv)
zu7f>vxsXdlvDqb?oHaW)vDwMm=|m(nvOq2sT}*3*4wTC{Xb6I?hjZr)`{gp(mWVMF
zt~Z$QmCL<@6$4@`G=Y^~Y2|>j8-;0x<xQg0lsAXWPR1Z_XJuVgYbuv)PR)zRTbRKR
zP+i3yp66B$E4h`|;#j+l*KWsJKW~3!bn>rxy}!>#t_F*kVv$a062Ixd_l|(?ou}Zt
zhFw>C$0}=vE(r>}TNHDFg$<deW;>f~$)x?-?%~qbilR`Rx2dY8WJ+twG333v$ostY
zRsBy}Cs_Xb+bBU8rQib`y52idRU3Oy2W;?4s%y(OLX`sf5ZCuGtJ2$(J-YWiKkL{z
zCp&GnosP&yP^~d)BxKmcZkxSy^`LH#vIL{BwuRRo<Ioxo^>$Vlblb{C4tSi6Pq4A4
zGJaVd>;5Fe^=9ifwm!wyUa(eIoHwV{PDSL?96bW|XV|{o8_}a*$qo)0fgt{q&w802
z6@#B+=@$7*!M}26AolMN5tb9i2>HC%yQZqo@7X)6{p1UQ+b(vyc;XZxUu3u5yV)%j
zxV;p(z0CR9>lOBLUuCaG?PXnIHCibvYh5kZ%JtSFYqhmRF1J=#tE_c0XKj!Rt-aO(
z>oYlCUL*@;Qoe>QET1;7*%{+BCez7WGL!cA@^!s6dqPGhqbwfp=p(}N4Qy{zzUlG-
z8EwYw`j%YQZpcN9(Kz~Vfn(beRC*iV%^cDQ`3??*nYNo8br{}d_S@m{9+$`0?+<W|
zI#=Z!9AP2<$mg`B6&H&MsF3$XnJGUA=v9h{{E$Jmu>^82qC@kA{K%VBTN(Kn2D#5`
zs_j|2Uk4oEdMe^^Z%%Ewi!wez84-D~1F25~Qh#E!;X;1KW~Q$Q{FzY?LAV%m^5yzm
z!yjh&0$(nme}N-iD35T!Q3RAs&1IA6SwWb0ytc&c5|6j9BIK{?+I-1f>zD@p3kv%i
zs1!hAgsVdT&X`{TvuIp87XTXaA3EeX^XMFpYa?*KR=D3V?mq)3;JW_;a5$OHDb#;6
z>ItA0k4<IlJlt<}$bT5OC?0P!1NpxS`F}vBPJx>cBmf*~WEh5~5TMBbbSY&rDaTIx
zq+K))3j1MXGJ0`5p64OL6k&WSVEky{2*4QdqxC+P%FvlJ6mo{~NpuW5)g}uS>9{UB
zLA!(NAVaarP{J8X15acq;|wVuOJ(TF8Om86na$es+VQ*TsP0;xHZ#C06gbYQ8L>G^
zP!*0-%t<*-PC8fZ_i3tT<qvTdK|MH4jW?-RMXXi>_w+KoD%{fmWl}HZSr-`K-y7Jm
zWV$71ryCqWeE?sSXuHokL0?=O>gPwvJt9K=kwx7a8lYPX4FphVfuKRBL>TNc#E?9Q
zp#g-VJ&b9e4t2Ur&m<G=;+&zW##x-gcs#H|n=_R*-{FGJ3cQ4%?}CRp7a$7vdyIQF
zaJ|KK-DBryzwdi%>#C}Lpa6cz0K)?V0M7N^t}Ay(aNtNLG{(-^?Sw{Y&(WGtU<Dyd
z;Yr4$zzcXkVnPXkFd_b<F}h#Tc`zBnM+zDX(MnVgwNuF!JC}6vSYl+L^I4@!Iq1i%
z@3}s}IR3m4pXEMzhzhAj9;LJ8SMmfIbUKZsa=HM_E628`8@MZ<)Su}mK0E6PkRA`x
zQMwR-VQjmg31EVDg+V~&pNRZ?v}h8q2d$STGcB}Un!-#537Q&|G!1@*c<#}pagX%*
zxroJ_4obz70*h*W^i!V+UF=QnQ|?}(1f1bB&;(`%1TO7B;4)2s^`OgxGx#%RGfdDG
zry^ndBsid+{RRta;Qv`unr>~js<&C&t>f0W)-mgdoMG)0kuW7hI7E)OtnWF6jr?&|
zNOUp>dn^0)@(%ay>dwZRHN!CL?G{HAL@CJ!W}LoFeu+OviIgzt7dS9soZ!F;?Nh4W
zCMMf{<&^AczAYJ!oNcHJ*UaSS0KMyE3>V49q?4FnH%<0m5X!>SnrXy<*`hFWzC6?#
zC^MHUJwwoydAbR@%HOpx&13U?L09AHt8i&PXIsGgC3AQ->RWR<(L!C!FS!`B@-{Ov
zyU1+PqEl3J4OhcsG*@!~?PGDkg04kkbpx(LoIhDdTt4_qn8H#}=scarZC}e}I{o#W
zK8kLjCh;)cfTz-=<s7ntLsSd(LssgL8+C{>f$dF-?ah2yZwXw4pjF`GhGq)#d}$22
z6~qeE$gdCcZ9X$Ww+G^?IU2`~N9Yc&JV2ueK45pS!k4L!ck=2Q-b-#CQ=CR8>!A7i
ze19tpSDlx;m~d%4-oXdN?*{QO-NVG!YT|bR|6btxU54&E#TKmNEx4ck8x48@&}LU3
zdW_T3kWDsoo504b2Q|yZ#a2WgWTHty8~Fc?AY7*3zPv4YNOO3Y>6XOf`5s{V2)G2#
zpgP%`IKy5)0cdY#S#(!ZvpBk1PpmJXrL=-J(i$B4h)G-c?mdRP7a64P-US1Trfuc5
zSw=XKNC|qJzc@zTONQo_cQs9V68tMBqR=MQU^D3pGYKc<i@uGE*kaIA-o}A7?$b))
zXZ&9;(PUF|CY#fHznzuX0i?olYS|BeR);?a4I(jIab-jGnBuWlJi-_FFoK?kAYJ`0
z>Iyq8&31#|Yk9OsxvroW@>JR756RKyY^EO1z7p|8_S_8`MU(thpT|p@$IHwE1DrO3
z$SWWcp;rMLO*joHJBz3OH85%K=&$p>a7W+c!ppE*1iis~m!I}cPMd_!TmI!RiD&bo
zM5dvY#}OVc=^c*dC+%HC7Y8Q1X!=2Wk1_BYn0Qv#J1+>MI#2MO?bNJ{n@#3s`*pt0
z&L8l`Nf^|6&_4Z&KhzcP<%+wZAD!%m+CM_=QTiC^@=nJ-d<{2dvV!)XT%~(}@5(0{
z8NZn5Ak&zGGfST$%)Ao(1o3>Y_$pe0c+PMCuC|GXeWll-K(Egc)KRa)SW$X?5$JU$
bYuPRs{{T>e9ffBg7^v)^-H;|^gvI{>u%5&t

diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.g b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.g
index 0be5d327..957798a5 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.g
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.g
@@ -161,9 +161,9 @@ ruleImportRule returns [EObject current=null]
 		(
 			(
 				{
-					newCompositeNode(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0());
+					newCompositeNode(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0());
 				}
-				lv_importedNamespace_1_0=ruleQualifiedNameRule
+				lv_importedNamespace_1_0=ruleQualifiedName
 				{
 					if ($current==null) {
 						$current = createModelElementForParent(grammarAccess.getImportRuleRule());
@@ -172,7 +172,7 @@ ruleImportRule returns [EObject current=null]
 						$current,
 						"importedNamespace",
 						lv_importedNamespace_1_0,
-						"de.evoal.languages.model.instance.dsl.InstanceLanguage.QualifiedNameRule");
+						"de.evoal.languages.model.base.dsl.BaseLanguage.QualifiedName");
 					afterParserOrEnumRuleCall();
 				}
 			)
@@ -316,7 +316,7 @@ ruleAlgorithmInstanceRule returns [EObject current=null]
 				{
 					newCompositeNode(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemCrossReference_2_0());
 				}
-				ruleQualifiedNameRule
+				ruleQualifiedName
 				{
 					afterParserOrEnumRuleCall();
 				}
@@ -411,7 +411,7 @@ ruleInstanceRule returns [EObject current=null]
 				{
 					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
 				}
-				ruleQualifiedNameRule
+				ruleQualifiedName
 				{
 					afterParserOrEnumRuleCall();
 				}
@@ -727,52 +727,6 @@ ruleDataReferenceRule returns [EObject current=null]
 	)
 ;
 
-// Entry rule entryRuleQualifiedNameRule
-entryRuleQualifiedNameRule returns [String current=null]:
-	{ newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); }
-	iv_ruleQualifiedNameRule=ruleQualifiedNameRule
-	{ $current=$iv_ruleQualifiedNameRule.current.getText(); }
-	EOF;
-
-// Rule QualifiedNameRule
-ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()]
-@init {
-	enterRule();
-}
-@after {
-	leaveRule();
-}:
-	(
-		{
-			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-		}
-		this_StringOrId_0=ruleStringOrId
-		{
-			$current.merge(this_StringOrId_0);
-		}
-		{
-			afterParserOrEnumRuleCall();
-		}
-		(
-			kw='.'
-			{
-				$current.merge(kw);
-				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-			}
-			{
-				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-			}
-			this_StringOrId_2=ruleStringOrId
-			{
-				$current.merge(this_StringOrId_2);
-			}
-			{
-				afterParserOrEnumRuleCall();
-			}
-		)*
-	)
-;
-
 // Entry rule entryRuleExpressionRule
 entryRuleExpressionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getExpressionRuleRule()); }
@@ -1633,21 +1587,49 @@ ruleValueReferenceRule returns [EObject current=null]
 @init {
 	enterRule();
 }
+@after {
+	leaveRule();
+}:
+	{
+		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+	}
+	this_ConstantReferenceRule_0=ruleConstantReferenceRule
+	{
+		$current = $this_ConstantReferenceRule_0.current;
+		afterParserOrEnumRuleCall();
+	}
+;
+
+// Entry rule entryRuleConstantReferenceRule
+entryRuleConstantReferenceRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); }
+	iv_ruleConstantReferenceRule=ruleConstantReferenceRule
+	{ $current=$iv_ruleConstantReferenceRule.current; }
+	EOF;
+
+// Rule ConstantReferenceRule
+ruleConstantReferenceRule returns [EObject current=null]
+@init {
+	enterRule();
+}
 @after {
 	leaveRule();
 }:
 	(
 		(
 			{
-				$current = forceCreateModelElement(
-					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-					$current);
+				if ($current==null) {
+					$current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+				}
+			}
+			{
+				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+			}
+			ruleQualifiedName
+			{
+				afterParserOrEnumRuleCall();
 			}
 		)
-		otherlv_1='value'
-		{
-			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-		}
 	)
 ;
 
@@ -1926,6 +1908,111 @@ ruleBooleanLiteralRule returns [EObject current=null]
 	)
 ;
 
+// Entry rule entryRuleTypeDefinitionRule
+entryRuleTypeDefinitionRule returns [EObject current=null]:
+	{ newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); }
+	iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule
+	{ $current=$iv_ruleTypeDefinitionRule.current; }
+	EOF;
+
+// Rule TypeDefinitionRule
+ruleTypeDefinitionRule returns [EObject current=null]
+@init {
+	enterRule();
+}
+@after {
+	leaveRule();
+}:
+	(
+		(
+			(
+				lv_abstract_0_0='abstract'
+				{
+					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+				}
+				{
+					if ($current==null) {
+						$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					setWithLastConsumed($current, "abstract", lv_abstract_0_0 != null, "abstract");
+				}
+			)
+		)?
+		otherlv_1='type'
+		{
+			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+				}
+				lv_name_2_0=ruleStringOrId
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					set(
+						$current,
+						"name",
+						lv_name_2_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)
+		(
+			otherlv_3='extends'
+			{
+				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+			}
+			(
+				(
+					{
+						if ($current==null) {
+							$current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+						}
+					}
+					{
+						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+					}
+					ruleQualifiedName
+					{
+						afterParserOrEnumRuleCall();
+					}
+				)
+			)
+		)?
+		otherlv_5='{'
+		{
+			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+		}
+		(
+			(
+				{
+					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+				}
+				lv_attributes_6_0=ruleAttributeDefinitionRule
+				{
+					if ($current==null) {
+						$current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+					}
+					add(
+						$current,
+						"attributes",
+						lv_attributes_6_0,
+						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+					afterParserOrEnumRuleCall();
+				}
+			)
+		)*
+		otherlv_7='}'
+		{
+			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+		}
+	)
+;
+
 // Entry rule entryRuleAttributeDefinitionRule
 entryRuleAttributeDefinitionRule returns [EObject current=null]:
 	{ newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); }
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.tokens b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.tokens
index 27185e7f..9df37bc8 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.tokens
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguage.tokens
@@ -1,70 +1,72 @@
-'!'=35
-'!='=55
-'%'=62
-'('=37
-')'=38
-'*'=60
-'+'=58
+'!'=34
+'!='=57
+'%'=64
+'('=36
+')'=37
+'*'=62
+'+'=60
 ','=28
-'-'=59
-'.'=31
-'/'=61
-':'=42
+'-'=61
+'.'=53
+'/'=63
+':'=43
 ':='=20
 ';'=16
-'<'=56
-'<='=57
-'='=54
-'>'=53
-'>='=52
-'AND'=34
-'E'=65
-'G'=68
-'M'=69
-'OR'=32
-'P'=66
-'T'=67
-'XOR'=33
-'Y'=63
-'Z'=64
+'<'=58
+'<='=59
+'='=56
+'>'=55
+'>='=54
+'AND'=33
+'E'=67
+'G'=70
+'M'=71
+'OR'=31
+'P'=68
+'T'=69
+'XOR'=32
+'Y'=65
+'Z'=66
 '['=27
-'\u00B5'=76
+'\u00B5'=78
 ']'=29
-'^'=36
-'a'=80
+'^'=35
+'a'=82
+'abstract'=40
 'algorithm'=24
-'array'=51
+'array'=52
 'as'=18
-'boolean'=49
-'c'=74
-'d'=73
-'da'=72
+'boolean'=50
+'c'=76
+'d'=75
+'da'=74
 'data'=30
 'declare'=17
 'documenting'=19
-'expression'=46
-'f'=79
-'false'=41
-'float'=48
+'expression'=47
+'extends'=42
+'f'=81
+'false'=39
+'float'=49
 'for'=22
-'h'=71
+'h'=73
 'import'=15
 'instance'=21
-'int'=47
-'k'=70
-'literal'=43
-'m'=75
-'n'=77
-'p'=78
-'string'=45
-'true'=40
-'value'=39
-'void'=50
+'int'=48
+'k'=72
+'literal'=44
+'m'=77
+'n'=79
+'p'=80
+'string'=46
+'true'=38
+'type'=41
+'void'=51
 'with'=23
-'y'=82
-'z'=81
+'y'=84
+'z'=83
 '{'=25
-'|'=44
+'|'=45
 '}'=26
 RULE_ANY_OTHER=14
 RULE_DIGIT=9
@@ -145,3 +147,5 @@ T__79=79
 T__80=80
 T__81=81
 T__82=82
+T__83=83
+T__84=84
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageLexer.java b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageLexer.java
index d704b5ed..4d418021 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageLexer.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageLexer.java
@@ -79,6 +79,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     public static final int T__80=80;
     public static final int T__81=81;
     public static final int T__82=82;
+    public static final int T__83=83;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -89,6 +90,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
+    public static final int T__84=84;
     public static final int T__41=41;
     public static final int T__42=42;
     public static final int T__43=43;
@@ -441,10 +443,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__31;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:27:7: ( '.' )
-            // InternalOptimisationLanguage.g:27:9: '.'
+            // InternalOptimisationLanguage.g:27:7: ( 'OR' )
+            // InternalOptimisationLanguage.g:27:9: 'OR'
             {
-            match('.'); 
+            match("OR"); 
+
 
             }
 
@@ -461,10 +464,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__32;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:28:7: ( 'OR' )
-            // InternalOptimisationLanguage.g:28:9: 'OR'
+            // InternalOptimisationLanguage.g:28:7: ( 'XOR' )
+            // InternalOptimisationLanguage.g:28:9: 'XOR'
             {
-            match("OR"); 
+            match("XOR"); 
 
 
             }
@@ -482,10 +485,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__33;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:29:7: ( 'XOR' )
-            // InternalOptimisationLanguage.g:29:9: 'XOR'
+            // InternalOptimisationLanguage.g:29:7: ( 'AND' )
+            // InternalOptimisationLanguage.g:29:9: 'AND'
             {
-            match("XOR"); 
+            match("AND"); 
 
 
             }
@@ -503,11 +506,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__34;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:30:7: ( 'AND' )
-            // InternalOptimisationLanguage.g:30:9: 'AND'
+            // InternalOptimisationLanguage.g:30:7: ( '!' )
+            // InternalOptimisationLanguage.g:30:9: '!'
             {
-            match("AND"); 
-
+            match('!'); 
 
             }
 
@@ -524,10 +526,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__35;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:31:7: ( '!' )
-            // InternalOptimisationLanguage.g:31:9: '!'
+            // InternalOptimisationLanguage.g:31:7: ( '^' )
+            // InternalOptimisationLanguage.g:31:9: '^'
             {
-            match('!'); 
+            match('^'); 
 
             }
 
@@ -544,10 +546,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__36;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:32:7: ( '^' )
-            // InternalOptimisationLanguage.g:32:9: '^'
+            // InternalOptimisationLanguage.g:32:7: ( '(' )
+            // InternalOptimisationLanguage.g:32:9: '('
             {
-            match('^'); 
+            match('('); 
 
             }
 
@@ -564,10 +566,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__37;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:33:7: ( '(' )
-            // InternalOptimisationLanguage.g:33:9: '('
+            // InternalOptimisationLanguage.g:33:7: ( ')' )
+            // InternalOptimisationLanguage.g:33:9: ')'
             {
-            match('('); 
+            match(')'); 
 
             }
 
@@ -584,10 +586,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__38;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:34:7: ( ')' )
-            // InternalOptimisationLanguage.g:34:9: ')'
+            // InternalOptimisationLanguage.g:34:7: ( 'true' )
+            // InternalOptimisationLanguage.g:34:9: 'true'
             {
-            match(')'); 
+            match("true"); 
+
 
             }
 
@@ -604,10 +607,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__39;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:35:7: ( 'value' )
-            // InternalOptimisationLanguage.g:35:9: 'value'
+            // InternalOptimisationLanguage.g:35:7: ( 'false' )
+            // InternalOptimisationLanguage.g:35:9: 'false'
             {
-            match("value"); 
+            match("false"); 
 
 
             }
@@ -625,10 +628,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__40;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:36:7: ( 'true' )
-            // InternalOptimisationLanguage.g:36:9: 'true'
+            // InternalOptimisationLanguage.g:36:7: ( 'abstract' )
+            // InternalOptimisationLanguage.g:36:9: 'abstract'
             {
-            match("true"); 
+            match("abstract"); 
 
 
             }
@@ -646,10 +649,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__41;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:37:7: ( 'false' )
-            // InternalOptimisationLanguage.g:37:9: 'false'
+            // InternalOptimisationLanguage.g:37:7: ( 'type' )
+            // InternalOptimisationLanguage.g:37:9: 'type'
             {
-            match("false"); 
+            match("type"); 
 
 
             }
@@ -667,10 +670,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__42;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:38:7: ( ':' )
-            // InternalOptimisationLanguage.g:38:9: ':'
+            // InternalOptimisationLanguage.g:38:7: ( 'extends' )
+            // InternalOptimisationLanguage.g:38:9: 'extends'
             {
-            match(':'); 
+            match("extends"); 
+
 
             }
 
@@ -687,11 +691,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__43;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:39:7: ( 'literal' )
-            // InternalOptimisationLanguage.g:39:9: 'literal'
+            // InternalOptimisationLanguage.g:39:7: ( ':' )
+            // InternalOptimisationLanguage.g:39:9: ':'
             {
-            match("literal"); 
-
+            match(':'); 
 
             }
 
@@ -708,10 +711,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__44;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:40:7: ( '|' )
-            // InternalOptimisationLanguage.g:40:9: '|'
+            // InternalOptimisationLanguage.g:40:7: ( 'literal' )
+            // InternalOptimisationLanguage.g:40:9: 'literal'
             {
-            match('|'); 
+            match("literal"); 
+
 
             }
 
@@ -728,11 +732,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__45;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:41:7: ( 'string' )
-            // InternalOptimisationLanguage.g:41:9: 'string'
+            // InternalOptimisationLanguage.g:41:7: ( '|' )
+            // InternalOptimisationLanguage.g:41:9: '|'
             {
-            match("string"); 
-
+            match('|'); 
 
             }
 
@@ -749,10 +752,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__46;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:42:7: ( 'expression' )
-            // InternalOptimisationLanguage.g:42:9: 'expression'
+            // InternalOptimisationLanguage.g:42:7: ( 'string' )
+            // InternalOptimisationLanguage.g:42:9: 'string'
             {
-            match("expression"); 
+            match("string"); 
 
 
             }
@@ -770,10 +773,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__47;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:43:7: ( 'int' )
-            // InternalOptimisationLanguage.g:43:9: 'int'
+            // InternalOptimisationLanguage.g:43:7: ( 'expression' )
+            // InternalOptimisationLanguage.g:43:9: 'expression'
             {
-            match("int"); 
+            match("expression"); 
 
 
             }
@@ -791,10 +794,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__48;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:44:7: ( 'float' )
-            // InternalOptimisationLanguage.g:44:9: 'float'
+            // InternalOptimisationLanguage.g:44:7: ( 'int' )
+            // InternalOptimisationLanguage.g:44:9: 'int'
             {
-            match("float"); 
+            match("int"); 
 
 
             }
@@ -812,10 +815,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__49;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:45:7: ( 'boolean' )
-            // InternalOptimisationLanguage.g:45:9: 'boolean'
+            // InternalOptimisationLanguage.g:45:7: ( 'float' )
+            // InternalOptimisationLanguage.g:45:9: 'float'
             {
-            match("boolean"); 
+            match("float"); 
 
 
             }
@@ -833,10 +836,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__50;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:46:7: ( 'void' )
-            // InternalOptimisationLanguage.g:46:9: 'void'
+            // InternalOptimisationLanguage.g:46:7: ( 'boolean' )
+            // InternalOptimisationLanguage.g:46:9: 'boolean'
             {
-            match("void"); 
+            match("boolean"); 
 
 
             }
@@ -854,10 +857,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__51;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:47:7: ( 'array' )
-            // InternalOptimisationLanguage.g:47:9: 'array'
+            // InternalOptimisationLanguage.g:47:7: ( 'void' )
+            // InternalOptimisationLanguage.g:47:9: 'void'
             {
-            match("array"); 
+            match("void"); 
 
 
             }
@@ -875,10 +878,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__52;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:48:7: ( '>=' )
-            // InternalOptimisationLanguage.g:48:9: '>='
+            // InternalOptimisationLanguage.g:48:7: ( 'array' )
+            // InternalOptimisationLanguage.g:48:9: 'array'
             {
-            match(">="); 
+            match("array"); 
 
 
             }
@@ -896,10 +899,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__53;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:49:7: ( '>' )
-            // InternalOptimisationLanguage.g:49:9: '>'
+            // InternalOptimisationLanguage.g:49:7: ( '.' )
+            // InternalOptimisationLanguage.g:49:9: '.'
             {
-            match('>'); 
+            match('.'); 
 
             }
 
@@ -916,10 +919,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__54;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:50:7: ( '=' )
-            // InternalOptimisationLanguage.g:50:9: '='
+            // InternalOptimisationLanguage.g:50:7: ( '>=' )
+            // InternalOptimisationLanguage.g:50:9: '>='
             {
-            match('='); 
+            match(">="); 
+
 
             }
 
@@ -936,11 +940,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__55;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:51:7: ( '!=' )
-            // InternalOptimisationLanguage.g:51:9: '!='
+            // InternalOptimisationLanguage.g:51:7: ( '>' )
+            // InternalOptimisationLanguage.g:51:9: '>'
             {
-            match("!="); 
-
+            match('>'); 
 
             }
 
@@ -957,10 +960,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__56;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:52:7: ( '<' )
-            // InternalOptimisationLanguage.g:52:9: '<'
+            // InternalOptimisationLanguage.g:52:7: ( '=' )
+            // InternalOptimisationLanguage.g:52:9: '='
             {
-            match('<'); 
+            match('='); 
 
             }
 
@@ -977,10 +980,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__57;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:53:7: ( '<=' )
-            // InternalOptimisationLanguage.g:53:9: '<='
+            // InternalOptimisationLanguage.g:53:7: ( '!=' )
+            // InternalOptimisationLanguage.g:53:9: '!='
             {
-            match("<="); 
+            match("!="); 
 
 
             }
@@ -998,10 +1001,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__58;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:54:7: ( '+' )
-            // InternalOptimisationLanguage.g:54:9: '+'
+            // InternalOptimisationLanguage.g:54:7: ( '<' )
+            // InternalOptimisationLanguage.g:54:9: '<'
             {
-            match('+'); 
+            match('<'); 
 
             }
 
@@ -1018,10 +1021,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__59;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:55:7: ( '-' )
-            // InternalOptimisationLanguage.g:55:9: '-'
+            // InternalOptimisationLanguage.g:55:7: ( '<=' )
+            // InternalOptimisationLanguage.g:55:9: '<='
             {
-            match('-'); 
+            match("<="); 
+
 
             }
 
@@ -1038,10 +1042,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__60;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:56:7: ( '*' )
-            // InternalOptimisationLanguage.g:56:9: '*'
+            // InternalOptimisationLanguage.g:56:7: ( '+' )
+            // InternalOptimisationLanguage.g:56:9: '+'
             {
-            match('*'); 
+            match('+'); 
 
             }
 
@@ -1058,10 +1062,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__61;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:57:7: ( '/' )
-            // InternalOptimisationLanguage.g:57:9: '/'
+            // InternalOptimisationLanguage.g:57:7: ( '-' )
+            // InternalOptimisationLanguage.g:57:9: '-'
             {
-            match('/'); 
+            match('-'); 
 
             }
 
@@ -1078,10 +1082,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__62;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:58:7: ( '%' )
-            // InternalOptimisationLanguage.g:58:9: '%'
+            // InternalOptimisationLanguage.g:58:7: ( '*' )
+            // InternalOptimisationLanguage.g:58:9: '*'
             {
-            match('%'); 
+            match('*'); 
 
             }
 
@@ -1098,10 +1102,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__63;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:59:7: ( 'Y' )
-            // InternalOptimisationLanguage.g:59:9: 'Y'
+            // InternalOptimisationLanguage.g:59:7: ( '/' )
+            // InternalOptimisationLanguage.g:59:9: '/'
             {
-            match('Y'); 
+            match('/'); 
 
             }
 
@@ -1118,10 +1122,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__64;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:60:7: ( 'Z' )
-            // InternalOptimisationLanguage.g:60:9: 'Z'
+            // InternalOptimisationLanguage.g:60:7: ( '%' )
+            // InternalOptimisationLanguage.g:60:9: '%'
             {
-            match('Z'); 
+            match('%'); 
 
             }
 
@@ -1138,10 +1142,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__65;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:61:7: ( 'E' )
-            // InternalOptimisationLanguage.g:61:9: 'E'
+            // InternalOptimisationLanguage.g:61:7: ( 'Y' )
+            // InternalOptimisationLanguage.g:61:9: 'Y'
             {
-            match('E'); 
+            match('Y'); 
 
             }
 
@@ -1158,10 +1162,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__66;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:62:7: ( 'P' )
-            // InternalOptimisationLanguage.g:62:9: 'P'
+            // InternalOptimisationLanguage.g:62:7: ( 'Z' )
+            // InternalOptimisationLanguage.g:62:9: 'Z'
             {
-            match('P'); 
+            match('Z'); 
 
             }
 
@@ -1178,10 +1182,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__67;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:63:7: ( 'T' )
-            // InternalOptimisationLanguage.g:63:9: 'T'
+            // InternalOptimisationLanguage.g:63:7: ( 'E' )
+            // InternalOptimisationLanguage.g:63:9: 'E'
             {
-            match('T'); 
+            match('E'); 
 
             }
 
@@ -1198,10 +1202,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__68;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:64:7: ( 'G' )
-            // InternalOptimisationLanguage.g:64:9: 'G'
+            // InternalOptimisationLanguage.g:64:7: ( 'P' )
+            // InternalOptimisationLanguage.g:64:9: 'P'
             {
-            match('G'); 
+            match('P'); 
 
             }
 
@@ -1218,10 +1222,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__69;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:65:7: ( 'M' )
-            // InternalOptimisationLanguage.g:65:9: 'M'
+            // InternalOptimisationLanguage.g:65:7: ( 'T' )
+            // InternalOptimisationLanguage.g:65:9: 'T'
             {
-            match('M'); 
+            match('T'); 
 
             }
 
@@ -1238,10 +1242,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__70;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:66:7: ( 'k' )
-            // InternalOptimisationLanguage.g:66:9: 'k'
+            // InternalOptimisationLanguage.g:66:7: ( 'G' )
+            // InternalOptimisationLanguage.g:66:9: 'G'
             {
-            match('k'); 
+            match('G'); 
 
             }
 
@@ -1258,10 +1262,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__71;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:67:7: ( 'h' )
-            // InternalOptimisationLanguage.g:67:9: 'h'
+            // InternalOptimisationLanguage.g:67:7: ( 'M' )
+            // InternalOptimisationLanguage.g:67:9: 'M'
             {
-            match('h'); 
+            match('M'); 
 
             }
 
@@ -1278,11 +1282,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__72;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:68:7: ( 'da' )
-            // InternalOptimisationLanguage.g:68:9: 'da'
+            // InternalOptimisationLanguage.g:68:7: ( 'k' )
+            // InternalOptimisationLanguage.g:68:9: 'k'
             {
-            match("da"); 
-
+            match('k'); 
 
             }
 
@@ -1299,10 +1302,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__73;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:69:7: ( 'd' )
-            // InternalOptimisationLanguage.g:69:9: 'd'
+            // InternalOptimisationLanguage.g:69:7: ( 'h' )
+            // InternalOptimisationLanguage.g:69:9: 'h'
             {
-            match('d'); 
+            match('h'); 
 
             }
 
@@ -1319,10 +1322,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__74;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:70:7: ( 'c' )
-            // InternalOptimisationLanguage.g:70:9: 'c'
+            // InternalOptimisationLanguage.g:70:7: ( 'da' )
+            // InternalOptimisationLanguage.g:70:9: 'da'
             {
-            match('c'); 
+            match("da"); 
+
 
             }
 
@@ -1339,10 +1343,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__75;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:71:7: ( 'm' )
-            // InternalOptimisationLanguage.g:71:9: 'm'
+            // InternalOptimisationLanguage.g:71:7: ( 'd' )
+            // InternalOptimisationLanguage.g:71:9: 'd'
             {
-            match('m'); 
+            match('d'); 
 
             }
 
@@ -1359,10 +1363,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__76;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:72:7: ( '\\u00B5' )
-            // InternalOptimisationLanguage.g:72:9: '\\u00B5'
+            // InternalOptimisationLanguage.g:72:7: ( 'c' )
+            // InternalOptimisationLanguage.g:72:9: 'c'
             {
-            match('\u00B5'); 
+            match('c'); 
 
             }
 
@@ -1379,10 +1383,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__77;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:73:7: ( 'n' )
-            // InternalOptimisationLanguage.g:73:9: 'n'
+            // InternalOptimisationLanguage.g:73:7: ( 'm' )
+            // InternalOptimisationLanguage.g:73:9: 'm'
             {
-            match('n'); 
+            match('m'); 
 
             }
 
@@ -1399,10 +1403,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__78;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:74:7: ( 'p' )
-            // InternalOptimisationLanguage.g:74:9: 'p'
+            // InternalOptimisationLanguage.g:74:7: ( '\\u00B5' )
+            // InternalOptimisationLanguage.g:74:9: '\\u00B5'
             {
-            match('p'); 
+            match('\u00B5'); 
 
             }
 
@@ -1419,10 +1423,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__79;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:75:7: ( 'f' )
-            // InternalOptimisationLanguage.g:75:9: 'f'
+            // InternalOptimisationLanguage.g:75:7: ( 'n' )
+            // InternalOptimisationLanguage.g:75:9: 'n'
             {
-            match('f'); 
+            match('n'); 
 
             }
 
@@ -1439,10 +1443,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__80;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:76:7: ( 'a' )
-            // InternalOptimisationLanguage.g:76:9: 'a'
+            // InternalOptimisationLanguage.g:76:7: ( 'p' )
+            // InternalOptimisationLanguage.g:76:9: 'p'
             {
-            match('a'); 
+            match('p'); 
 
             }
 
@@ -1459,10 +1463,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__81;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:77:7: ( 'z' )
-            // InternalOptimisationLanguage.g:77:9: 'z'
+            // InternalOptimisationLanguage.g:77:7: ( 'f' )
+            // InternalOptimisationLanguage.g:77:9: 'f'
             {
-            match('z'); 
+            match('f'); 
 
             }
 
@@ -1479,10 +1483,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = T__82;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:78:7: ( 'y' )
-            // InternalOptimisationLanguage.g:78:9: 'y'
+            // InternalOptimisationLanguage.g:78:7: ( 'a' )
+            // InternalOptimisationLanguage.g:78:9: 'a'
             {
-            match('y'); 
+            match('a'); 
 
             }
 
@@ -1494,11 +1498,51 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     }
     // $ANTLR end "T__82"
 
+    // $ANTLR start "T__83"
+    public final void mT__83() throws RecognitionException {
+        try {
+            int _type = T__83;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalOptimisationLanguage.g:79:7: ( 'z' )
+            // InternalOptimisationLanguage.g:79:9: 'z'
+            {
+            match('z'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__83"
+
+    // $ANTLR start "T__84"
+    public final void mT__84() throws RecognitionException {
+        try {
+            int _type = T__84;
+            int _channel = DEFAULT_TOKEN_CHANNEL;
+            // InternalOptimisationLanguage.g:80:7: ( 'y' )
+            // InternalOptimisationLanguage.g:80:9: 'y'
+            {
+            match('y'); 
+
+            }
+
+            state.type = _type;
+            state.channel = _channel;
+        }
+        finally {
+        }
+    }
+    // $ANTLR end "T__84"
+
     // $ANTLR start "RULE_DIGIT"
     public final void mRULE_DIGIT() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:2939:21: ( '0' .. '9' )
-            // InternalOptimisationLanguage.g:2939:23: '0' .. '9'
+            // InternalOptimisationLanguage.g:3026:21: ( '0' .. '9' )
+            // InternalOptimisationLanguage.g:3026:23: '0' .. '9'
             {
             matchRange('0','9'); 
 
@@ -1513,11 +1557,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     // $ANTLR start "RULE_EXPONENT"
     public final void mRULE_EXPONENT() throws RecognitionException {
         try {
-            // InternalOptimisationLanguage.g:2941:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
-            // InternalOptimisationLanguage.g:2941:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:3028:24: ( 'e' ( '+' | '-' )? ( RULE_DIGIT )+ )
+            // InternalOptimisationLanguage.g:3028:26: 'e' ( '+' | '-' )? ( RULE_DIGIT )+
             {
             match('e'); 
-            // InternalOptimisationLanguage.g:2941:30: ( '+' | '-' )?
+            // InternalOptimisationLanguage.g:3028:30: ( '+' | '-' )?
             int alt1=2;
             int LA1_0 = input.LA(1);
 
@@ -1543,7 +1587,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
             }
 
-            // InternalOptimisationLanguage.g:2941:41: ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:3028:41: ( RULE_DIGIT )+
             int cnt2=0;
             loop2:
             do {
@@ -1557,7 +1601,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt2) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2941:41: RULE_DIGIT
+            	    // InternalOptimisationLanguage.g:3028:41: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1587,10 +1631,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_INT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2943:10: ( ( '-' )? ( RULE_DIGIT )+ )
-            // InternalOptimisationLanguage.g:2943:12: ( '-' )? ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:3030:10: ( ( '-' )? ( RULE_DIGIT )+ )
+            // InternalOptimisationLanguage.g:3030:12: ( '-' )? ( RULE_DIGIT )+
             {
-            // InternalOptimisationLanguage.g:2943:12: ( '-' )?
+            // InternalOptimisationLanguage.g:3030:12: ( '-' )?
             int alt3=2;
             int LA3_0 = input.LA(1);
 
@@ -1599,7 +1643,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt3) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2943:12: '-'
+                    // InternalOptimisationLanguage.g:3030:12: '-'
                     {
                     match('-'); 
 
@@ -1608,7 +1652,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
             }
 
-            // InternalOptimisationLanguage.g:2943:17: ( RULE_DIGIT )+
+            // InternalOptimisationLanguage.g:3030:17: ( RULE_DIGIT )+
             int cnt4=0;
             loop4:
             do {
@@ -1622,7 +1666,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt4) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2943:17: RULE_DIGIT
+            	    // InternalOptimisationLanguage.g:3030:17: RULE_DIGIT
             	    {
             	    mRULE_DIGIT(); 
 
@@ -1654,15 +1698,15 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_DOUBLE;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2945:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
-            // InternalOptimisationLanguage.g:2945:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalOptimisationLanguage.g:3032:13: ( ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? ) )
+            // InternalOptimisationLanguage.g:3032:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             {
-            // InternalOptimisationLanguage.g:2945:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
+            // InternalOptimisationLanguage.g:3032:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )
             int alt7=2;
             alt7 = dfa7.predict(input);
             switch (alt7) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2945:16: RULE_INT RULE_EXPONENT
+                    // InternalOptimisationLanguage.g:3032:16: RULE_INT RULE_EXPONENT
                     {
                     mRULE_INT(); 
                     mRULE_EXPONENT(); 
@@ -1670,11 +1714,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2945:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
+                    // InternalOptimisationLanguage.g:3032:39: RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )?
                     {
                     mRULE_INT(); 
                     match('.'); 
-                    // InternalOptimisationLanguage.g:2945:52: ( RULE_DIGIT )*
+                    // InternalOptimisationLanguage.g:3032:52: ( RULE_DIGIT )*
                     loop5:
                     do {
                         int alt5=2;
@@ -1687,7 +1731,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         switch (alt5) {
                     	case 1 :
-                    	    // InternalOptimisationLanguage.g:2945:52: RULE_DIGIT
+                    	    // InternalOptimisationLanguage.g:3032:52: RULE_DIGIT
                     	    {
                     	    mRULE_DIGIT(); 
 
@@ -1699,7 +1743,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                         }
                     } while (true);
 
-                    // InternalOptimisationLanguage.g:2945:64: ( RULE_EXPONENT )?
+                    // InternalOptimisationLanguage.g:3032:64: ( RULE_EXPONENT )?
                     int alt6=2;
                     int LA6_0 = input.LA(1);
 
@@ -1708,7 +1752,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     switch (alt6) {
                         case 1 :
-                            // InternalOptimisationLanguage.g:2945:64: RULE_EXPONENT
+                            // InternalOptimisationLanguage.g:3032:64: RULE_EXPONENT
                             {
                             mRULE_EXPONENT(); 
 
@@ -1739,11 +1783,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_STRING;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2947:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
-            // InternalOptimisationLanguage.g:2947:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
+            // InternalOptimisationLanguage.g:3034:13: ( '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"' )
+            // InternalOptimisationLanguage.g:3034:15: '\"' ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )* '\"'
             {
             match('\"'); 
-            // InternalOptimisationLanguage.g:2947:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
+            // InternalOptimisationLanguage.g:3034:19: ( '\\\\' . | ~ ( ( '\\\\' | '\"' ) ) )*
             loop8:
             do {
                 int alt8=3;
@@ -1759,7 +1803,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt8) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2947:20: '\\\\' .
+            	    // InternalOptimisationLanguage.g:3034:20: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1767,7 +1811,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalOptimisationLanguage.g:2947:27: ~ ( ( '\\\\' | '\"' ) )
+            	    // InternalOptimisationLanguage.g:3034:27: ~ ( ( '\\\\' | '\"' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1804,11 +1848,11 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_QUOTED_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2949:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
-            // InternalOptimisationLanguage.g:2949:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
+            // InternalOptimisationLanguage.g:3036:16: ( '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\'' )
+            // InternalOptimisationLanguage.g:3036:18: '\\'' ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )* '\\''
             {
             match('\''); 
-            // InternalOptimisationLanguage.g:2949:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
+            // InternalOptimisationLanguage.g:3036:23: ( '\\\\' . | ~ ( ( '\\\\' | '\\'' ) ) )*
             loop9:
             do {
                 int alt9=3;
@@ -1824,7 +1868,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt9) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2949:24: '\\\\' .
+            	    // InternalOptimisationLanguage.g:3036:24: '\\\\' .
             	    {
             	    match('\\'); 
             	    matchAny(); 
@@ -1832,7 +1876,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             	    }
             	    break;
             	case 2 :
-            	    // InternalOptimisationLanguage.g:2949:31: ~ ( ( '\\\\' | '\\'' ) )
+            	    // InternalOptimisationLanguage.g:3036:31: ~ ( ( '\\\\' | '\\'' ) )
             	    {
             	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {
             	        input.consume();
@@ -1869,10 +1913,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ID;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2951:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
-            // InternalOptimisationLanguage.g:2951:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalOptimisationLanguage.g:3038:9: ( ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
+            // InternalOptimisationLanguage.g:3038:11: ( '^' )? ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             {
-            // InternalOptimisationLanguage.g:2951:11: ( '^' )?
+            // InternalOptimisationLanguage.g:3038:11: ( '^' )?
             int alt10=2;
             int LA10_0 = input.LA(1);
 
@@ -1881,7 +1925,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt10) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2951:11: '^'
+                    // InternalOptimisationLanguage.g:3038:11: '^'
                     {
                     match('^'); 
 
@@ -1899,7 +1943,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 recover(mse);
                 throw mse;}
 
-            // InternalOptimisationLanguage.g:2951:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
+            // InternalOptimisationLanguage.g:3038:40: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
             loop11:
             do {
                 int alt11=2;
@@ -1948,12 +1992,12 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ML_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2953:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
-            // InternalOptimisationLanguage.g:2953:19: '/*' ( options {greedy=false; } : . )* '*/'
+            // InternalOptimisationLanguage.g:3040:17: ( '/*' ( options {greedy=false; } : . )* '*/' )
+            // InternalOptimisationLanguage.g:3040:19: '/*' ( options {greedy=false; } : . )* '*/'
             {
             match("/*"); 
 
-            // InternalOptimisationLanguage.g:2953:24: ( options {greedy=false; } : . )*
+            // InternalOptimisationLanguage.g:3040:24: ( options {greedy=false; } : . )*
             loop12:
             do {
                 int alt12=2;
@@ -1978,7 +2022,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt12) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2953:52: .
+            	    // InternalOptimisationLanguage.g:3040:52: .
             	    {
             	    matchAny(); 
 
@@ -2008,12 +2052,12 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_SL_COMMENT;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2955:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
-            // InternalOptimisationLanguage.g:2955:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
+            // InternalOptimisationLanguage.g:3042:17: ( '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )? )
+            // InternalOptimisationLanguage.g:3042:19: '//' (~ ( ( '\\n' | '\\r' ) ) )* ( ( '\\r' )? '\\n' )?
             {
             match("//"); 
 
-            // InternalOptimisationLanguage.g:2955:24: (~ ( ( '\\n' | '\\r' ) ) )*
+            // InternalOptimisationLanguage.g:3042:24: (~ ( ( '\\n' | '\\r' ) ) )*
             loop13:
             do {
                 int alt13=2;
@@ -2026,7 +2070,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                 switch (alt13) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2955:24: ~ ( ( '\\n' | '\\r' ) )
+            	    // InternalOptimisationLanguage.g:3042: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();
@@ -2046,7 +2090,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 }
             } while (true);
 
-            // InternalOptimisationLanguage.g:2955:40: ( ( '\\r' )? '\\n' )?
+            // InternalOptimisationLanguage.g:3042:40: ( ( '\\r' )? '\\n' )?
             int alt15=2;
             int LA15_0 = input.LA(1);
 
@@ -2055,9 +2099,9 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             }
             switch (alt15) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2955:41: ( '\\r' )? '\\n'
+                    // InternalOptimisationLanguage.g:3042:41: ( '\\r' )? '\\n'
                     {
-                    // InternalOptimisationLanguage.g:2955:41: ( '\\r' )?
+                    // InternalOptimisationLanguage.g:3042:41: ( '\\r' )?
                     int alt14=2;
                     int LA14_0 = input.LA(1);
 
@@ -2066,7 +2110,7 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                     }
                     switch (alt14) {
                         case 1 :
-                            // InternalOptimisationLanguage.g:2955:41: '\\r'
+                            // InternalOptimisationLanguage.g:3042:41: '\\r'
                             {
                             match('\r'); 
 
@@ -2098,10 +2142,10 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_WS;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2957:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
-            // InternalOptimisationLanguage.g:2957:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOptimisationLanguage.g:3044:9: ( ( ' ' | '\\t' | '\\r' | '\\n' )+ )
+            // InternalOptimisationLanguage.g:3044:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             {
-            // InternalOptimisationLanguage.g:2957:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
+            // InternalOptimisationLanguage.g:3044:11: ( ' ' | '\\t' | '\\r' | '\\n' )+
             int cnt16=0;
             loop16:
             do {
@@ -2155,8 +2199,8 @@ public class InternalOptimisationLanguageLexer extends Lexer {
         try {
             int _type = RULE_ANY_OTHER;
             int _channel = DEFAULT_TOKEN_CHANNEL;
-            // InternalOptimisationLanguage.g:2959:16: ( . )
-            // InternalOptimisationLanguage.g:2959:18: .
+            // InternalOptimisationLanguage.g:3046:16: ( . )
+            // InternalOptimisationLanguage.g:3046:18: .
             {
             matchAny(); 
 
@@ -2171,8 +2215,8 @@ public class InternalOptimisationLanguageLexer extends Lexer {
     // $ANTLR end "RULE_ANY_OTHER"
 
     public void mTokens() throws RecognitionException {
-        // InternalOptimisationLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
-        int alt17=77;
+        // InternalOptimisationLanguage.g:1:8: ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER )
+        int alt17=79;
         alt17 = dfa17.predict(input);
         switch (alt17) {
             case 1 :
@@ -2652,63 +2696,77 @@ public class InternalOptimisationLanguageLexer extends Lexer {
                 }
                 break;
             case 69 :
-                // InternalOptimisationLanguage.g:1:418: RULE_INT
+                // InternalOptimisationLanguage.g:1:418: T__83
                 {
-                mRULE_INT(); 
+                mT__83(); 
 
                 }
                 break;
             case 70 :
-                // InternalOptimisationLanguage.g:1:427: RULE_DOUBLE
+                // InternalOptimisationLanguage.g:1:424: T__84
                 {
-                mRULE_DOUBLE(); 
+                mT__84(); 
 
                 }
                 break;
             case 71 :
-                // InternalOptimisationLanguage.g:1:439: RULE_STRING
+                // InternalOptimisationLanguage.g:1:430: RULE_INT
                 {
-                mRULE_STRING(); 
+                mRULE_INT(); 
 
                 }
                 break;
             case 72 :
-                // InternalOptimisationLanguage.g:1:451: RULE_QUOTED_ID
+                // InternalOptimisationLanguage.g:1:439: RULE_DOUBLE
                 {
-                mRULE_QUOTED_ID(); 
+                mRULE_DOUBLE(); 
 
                 }
                 break;
             case 73 :
-                // InternalOptimisationLanguage.g:1:466: RULE_ID
+                // InternalOptimisationLanguage.g:1:451: RULE_STRING
                 {
-                mRULE_ID(); 
+                mRULE_STRING(); 
 
                 }
                 break;
             case 74 :
-                // InternalOptimisationLanguage.g:1:474: RULE_ML_COMMENT
+                // InternalOptimisationLanguage.g:1:463: RULE_QUOTED_ID
                 {
-                mRULE_ML_COMMENT(); 
+                mRULE_QUOTED_ID(); 
 
                 }
                 break;
             case 75 :
-                // InternalOptimisationLanguage.g:1:490: RULE_SL_COMMENT
+                // InternalOptimisationLanguage.g:1:478: RULE_ID
                 {
-                mRULE_SL_COMMENT(); 
+                mRULE_ID(); 
 
                 }
                 break;
             case 76 :
-                // InternalOptimisationLanguage.g:1:506: RULE_WS
+                // InternalOptimisationLanguage.g:1:486: RULE_ML_COMMENT
                 {
-                mRULE_WS(); 
+                mRULE_ML_COMMENT(); 
 
                 }
                 break;
             case 77 :
-                // InternalOptimisationLanguage.g:1:514: RULE_ANY_OTHER
+                // InternalOptimisationLanguage.g:1:502: RULE_SL_COMMENT
+                {
+                mRULE_SL_COMMENT(); 
+
+                }
+                break;
+            case 78 :
+                // InternalOptimisationLanguage.g:1:518: RULE_WS
+                {
+                mRULE_WS(); 
+
+                }
+                break;
+            case 79 :
+                // InternalOptimisationLanguage.g:1:526: RULE_ANY_OTHER
                 {
                 mRULE_ANY_OTHER(); 
 
@@ -2772,31 +2830,30 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             this.transition = DFA7_transition;
         }
         public String getDescription() {
-            return "2945:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
+            return "3032:15: ( RULE_INT RULE_EXPONENT | RULE_INT '.' ( RULE_DIGIT )* ( RULE_EXPONENT )? )";
         }
     }
     static final String DFA17_eotS =
-        "\1\uffff\1\74\1\uffff\1\101\1\105\1\107\1\113\1\74\6\uffff\3\74\1\127\1\130\2\uffff\3\74\1\uffff\3\74\1\144\1\uffff\1\147\1\uffff\1\152\1\uffff\1\156\1\uffff\1\160\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\172\1\uffff\1\174\1\175\1\176\1\177\1\u0080\2\71\3\uffff\2\74\2\uffff\2\74\1\u008b\1\uffff\1\u008c\2\74\3\uffff\3\74\1\uffff\1\74\6\uffff\1\u0093\2\74\5\uffff\4\74\1\uffff\3\74\6\uffff\1\u0080\33\uffff\2\74\1\u009f\3\74\2\uffff\2\74\1\u00a5\3\74\1\uffff\1\u00a9\1\u00aa\11\74\1\uffff\2\74\1\u00b6\2\74\1\uffff\2\74\1\u00bb\2\uffff\1\74\1\u00bd\1\u00be\10\74\1\uffff\1\74\1\u00c8\1\u00c9\1\u00ca\1\uffff\1\u00cb\2\uffff\4\74\1\u00d0\4\74\4\uffff\1\74\1\u00d6\2\74\1\uffff\1\74\1\u00da\2\74\1\u00dd\1\uffff\1\74\1\u00df\1\u00e0\1\uffff\2\74\1\uffff\1\74\2\uffff\1\74\1\u00e5\2\74\1\uffff\1\u00e8\1\u00e9\2\uffff";
+        "\1\uffff\1\74\1\uffff\1\101\1\106\1\110\1\114\1\74\5\uffff\3\74\1\127\1\130\2\uffff\3\74\1\uffff\3\74\1\uffff\1\145\1\uffff\1\150\1\uffff\1\152\1\uffff\1\157\1\uffff\1\161\1\162\1\163\1\164\1\165\1\166\1\167\1\170\1\171\1\172\1\173\1\uffff\1\175\1\176\1\177\1\u0080\1\u0081\2\71\3\uffff\2\74\2\uffff\2\74\1\u008c\1\uffff\1\u008d\3\74\3\uffff\3\74\1\uffff\1\74\5\uffff\1\u0095\2\74\5\uffff\4\74\1\uffff\3\74\10\uffff\1\u0081\32\uffff\2\74\1\u00a2\3\74\2\uffff\3\74\1\u00a9\3\74\1\uffff\1\u00ad\1\u00ae\12\74\1\uffff\2\74\1\u00bb\3\74\1\uffff\2\74\1\u00c1\2\uffff\1\u00c2\1\u00c3\5\74\1\u00c9\4\74\1\uffff\2\74\1\u00d0\1\u00d1\1\u00d2\3\uffff\5\74\1\uffff\1\u00d8\5\74\3\uffff\3\74\1\u00e1\1\74\1\uffff\1\74\1\u00e4\3\74\1\u00e8\1\74\1\u00ea\1\uffff\1\u00eb\1\u00ec\1\uffff\2\74\1\u00ef\1\uffff\1\74\3\uffff\1\74\1\u00f2\1\uffff\2\74\1\uffff\1\u00f5\1\u00f6\2\uffff";
     static final String DFA17_eofS =
-        "\u00ea\uffff";
+        "\u00f7\uffff";
     static final String DFA17_minS =
-        "\1\0\1\155\1\uffff\2\60\1\75\1\60\1\151\6\uffff\1\122\1\117\1\116\1\75\1\101\2\uffff\1\141\1\162\1\151\1\uffff\1\164\1\170\1\157\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\3\uffff\1\160\1\163\2\uffff\2\143\1\60\1\uffff\1\60\1\147\1\162\3\uffff\1\162\1\154\1\157\1\uffff\1\164\6\uffff\1\60\1\122\1\104\5\uffff\1\154\1\151\1\165\1\164\1\uffff\1\162\1\160\1\157\6\uffff\1\56\33\uffff\1\157\1\164\1\60\1\154\1\165\1\141\2\uffff\1\157\1\141\1\60\1\163\1\141\1\150\1\uffff\2\60\1\165\1\144\2\145\1\151\1\162\1\154\1\162\1\141\1\uffff\1\141\1\155\1\60\1\162\1\171\1\uffff\1\145\1\164\1\60\2\uffff\1\145\2\60\1\162\1\156\2\145\1\164\1\156\1\162\1\145\1\uffff\1\151\3\60\1\uffff\1\60\2\uffff\1\141\1\147\1\163\1\141\1\60\1\143\1\145\1\156\1\164\4\uffff\1\154\1\60\1\163\1\156\1\uffff\1\145\1\60\1\164\1\150\1\60\1\uffff\1\151\2\60\1\uffff\1\151\1\155\1\uffff\1\157\2\uffff\1\156\1\60\1\156\1\147\1\uffff\2\60\2\uffff";
+        "\1\0\1\155\1\uffff\2\60\1\75\1\60\1\151\5\uffff\1\122\1\117\1\116\1\75\1\101\2\uffff\1\162\1\170\1\151\1\uffff\1\164\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\60\1\uffff\1\52\1\uffff\13\60\1\uffff\4\60\1\56\2\0\3\uffff\1\160\1\163\2\uffff\2\143\1\60\1\uffff\1\60\1\147\1\163\1\162\3\uffff\1\162\1\154\1\157\1\uffff\1\164\5\uffff\1\60\1\122\1\104\5\uffff\1\165\2\160\1\164\1\uffff\1\162\1\157\1\151\10\uffff\1\56\32\uffff\1\157\1\164\1\60\1\154\1\165\1\141\2\uffff\1\157\1\164\1\141\1\60\1\163\1\141\1\150\1\uffff\2\60\3\145\1\162\1\145\1\151\1\154\1\144\1\162\1\141\1\uffff\1\141\1\155\1\60\2\162\1\171\1\uffff\1\145\1\164\1\60\2\uffff\2\60\1\156\1\145\1\162\1\156\1\145\1\60\1\164\1\156\1\162\1\145\1\uffff\1\151\1\141\3\60\3\uffff\1\144\1\163\1\141\1\147\1\141\1\uffff\1\60\1\143\1\145\1\156\1\164\1\143\3\uffff\2\163\1\154\1\60\1\156\1\uffff\1\145\1\60\1\164\1\150\1\164\1\60\1\151\1\60\1\uffff\2\60\1\uffff\1\151\1\155\1\60\1\uffff\1\157\3\uffff\1\156\1\60\1\uffff\1\156\1\147\1\uffff\2\60\2\uffff";
     static final String DFA17_maxS =
-        "\1\uffff\1\156\1\uffff\2\172\1\75\1\172\1\151\6\uffff\1\122\1\117\1\116\1\75\1\172\2\uffff\1\157\1\162\1\151\1\uffff\1\164\1\170\1\157\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\160\1\164\2\uffff\2\143\1\172\1\uffff\1\172\1\147\1\162\3\uffff\1\162\1\154\1\157\1\uffff\1\164\6\uffff\1\172\1\122\1\104\5\uffff\1\154\1\151\1\165\1\164\1\uffff\1\162\1\160\1\157\6\uffff\1\145\33\uffff\1\157\1\164\1\172\1\154\1\165\1\141\2\uffff\1\157\1\141\1\172\1\163\1\141\1\150\1\uffff\2\172\1\165\1\144\2\145\1\151\1\162\1\154\1\162\1\141\1\uffff\1\141\1\155\1\172\1\162\1\171\1\uffff\1\145\1\164\1\172\2\uffff\1\145\2\172\1\162\1\156\2\145\1\164\1\156\1\162\1\145\1\uffff\1\151\3\172\1\uffff\1\172\2\uffff\1\141\1\147\1\163\1\141\1\172\1\143\1\145\1\156\1\164\4\uffff\1\154\1\172\1\163\1\156\1\uffff\1\145\1\172\1\164\1\150\1\172\1\uffff\1\151\2\172\1\uffff\1\151\1\155\1\uffff\1\157\2\uffff\1\156\1\172\1\156\1\147\1\uffff\2\172\2\uffff";
+        "\1\uffff\1\156\1\uffff\2\172\1\75\1\172\1\151\5\uffff\1\122\1\117\1\116\1\75\1\172\2\uffff\1\171\1\170\1\151\1\uffff\1\164\2\157\1\uffff\1\75\1\uffff\1\75\1\uffff\1\71\1\uffff\1\57\1\uffff\13\172\1\uffff\4\172\1\145\2\uffff\3\uffff\1\160\1\164\2\uffff\2\143\1\172\1\uffff\1\172\1\147\1\163\1\162\3\uffff\1\162\1\154\1\157\1\uffff\1\164\5\uffff\1\172\1\122\1\104\5\uffff\1\165\1\160\2\164\1\uffff\1\162\1\157\1\151\10\uffff\1\145\32\uffff\1\157\1\164\1\172\1\154\1\165\1\141\2\uffff\1\157\1\164\1\141\1\172\1\163\1\141\1\150\1\uffff\2\172\3\145\1\162\1\145\1\151\1\154\1\144\1\162\1\141\1\uffff\1\141\1\155\1\172\2\162\1\171\1\uffff\1\145\1\164\1\172\2\uffff\2\172\1\156\1\145\1\162\1\156\1\145\1\172\1\164\1\156\1\162\1\145\1\uffff\1\151\1\141\3\172\3\uffff\1\144\1\163\1\141\1\147\1\141\1\uffff\1\172\1\143\1\145\1\156\1\164\1\143\3\uffff\2\163\1\154\1\172\1\156\1\uffff\1\145\1\172\1\164\1\150\1\164\1\172\1\151\1\172\1\uffff\2\172\1\uffff\1\151\1\155\1\172\1\uffff\1\157\3\uffff\1\156\1\172\1\uffff\1\156\1\147\1\uffff\2\172\2\uffff";
     static final String DFA17_acceptS =
-        "\2\uffff\1\2\5\uffff\1\13\1\14\1\15\1\16\1\17\1\21\5\uffff\1\27\1\30\3\uffff\1\36\4\uffff\1\50\1\uffff\1\54\1\uffff\1\56\1\uffff\1\60\13\uffff\1\76\7\uffff\1\111\1\114\1\115\2\uffff\1\111\1\2\3\uffff\1\73\3\uffff\1\102\1\6\1\34\3\uffff\1\101\1\uffff\1\13\1\14\1\15\1\16\1\17\1\21\3\uffff\1\51\1\25\1\26\1\27\1\30\4\uffff\1\36\3\uffff\1\46\1\47\1\50\1\53\1\52\1\54\1\uffff\1\55\1\56\1\112\1\113\1\57\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\74\1\75\1\76\1\77\1\100\1\103\1\104\1\105\1\106\1\107\1\110\1\114\6\uffff\1\72\1\4\6\uffff\1\22\13\uffff\1\41\5\uffff\1\10\3\uffff\1\23\1\24\13\uffff\1\20\4\uffff\1\11\1\uffff\1\44\1\32\11\uffff\1\45\1\33\1\42\1\31\4\uffff\1\1\5\uffff\1\37\3\uffff\1\3\2\uffff\1\35\1\uffff\1\43\1\7\4\uffff\1\12\2\uffff\1\40\1\5";
+        "\2\uffff\1\2\5\uffff\1\13\1\14\1\15\1\16\1\17\5\uffff\1\26\1\27\3\uffff\1\37\3\uffff\1\47\1\uffff\1\52\1\uffff\1\56\1\uffff\1\60\1\uffff\1\62\13\uffff\1\100\7\uffff\1\113\1\116\1\117\2\uffff\1\113\1\2\3\uffff\1\75\4\uffff\1\104\1\6\1\35\3\uffff\1\103\1\uffff\1\13\1\14\1\15\1\16\1\17\3\uffff\1\53\1\24\1\25\1\26\1\27\4\uffff\1\37\3\uffff\1\47\1\50\1\51\1\52\1\55\1\54\1\56\1\57\1\uffff\1\60\1\114\1\115\1\61\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\76\1\77\1\100\1\101\1\102\1\105\1\106\1\107\1\110\1\111\1\112\1\116\6\uffff\1\74\1\4\7\uffff\1\21\14\uffff\1\42\6\uffff\1\10\3\uffff\1\22\1\23\14\uffff\1\20\5\uffff\1\11\1\30\1\33\5\uffff\1\45\6\uffff\1\46\1\31\1\43\5\uffff\1\1\10\uffff\1\40\2\uffff\1\3\3\uffff\1\34\1\uffff\1\36\1\44\1\7\2\uffff\1\32\2\uffff\1\12\2\uffff\1\41\1\5";
     static final String DFA17_specialS =
-        "\1\1\64\uffff\1\2\1\0\u00b3\uffff}>";
+        "\1\2\64\uffff\1\0\1\1\u00c0\uffff}>";
     static final String[] DFA17_transitionS = {
-            "\11\71\2\70\2\71\1\70\22\71\1\70\1\21\1\65\2\71\1\43\1\71\1\66\1\23\1\24\1\41\1\37\1\13\1\40\1\15\1\42\12\64\1\5\1\2\1\36\1\35\1\34\2\71\1\20\3\67\1\46\1\67\1\51\5\67\1\52\1\67\1\16\1\47\3\67\1\50\3\67\1\17\1\44\1\45\1\12\1\71\1\14\1\22\1\67\1\71\1\4\1\33\1\55\1\3\1\32\1\6\1\67\1\54\1\1\1\67\1\53\1\27\1\56\1\60\1\67\1\61\2\67\1\31\1\26\1\67\1\25\1\7\1\67\1\63\1\62\1\10\1\30\1\11\67\71\1\57\uff4a\71",
+            "\11\71\2\70\2\71\1\70\22\71\1\70\1\20\1\65\2\71\1\43\1\71\1\66\1\22\1\23\1\41\1\37\1\13\1\40\1\33\1\42\12\64\1\5\1\2\1\36\1\35\1\34\2\71\1\17\3\67\1\46\1\67\1\51\5\67\1\52\1\67\1\15\1\47\3\67\1\50\3\67\1\16\1\44\1\45\1\12\1\71\1\14\1\21\1\67\1\71\1\4\1\31\1\55\1\3\1\25\1\6\1\67\1\54\1\1\1\67\1\53\1\26\1\56\1\60\1\67\1\61\2\67\1\30\1\24\1\67\1\32\1\7\1\67\1\63\1\62\1\10\1\27\1\11\67\71\1\57\uff4a\71",
             "\1\72\1\73",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\100\3\74\1\76\11\74\1\77\13\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\13\74\1\103\5\74\1\104\1\102\7\74",
-            "\1\106",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\111\12\74\1\112\2\74\1\110\13\74",
-            "\1\114",
-            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\74\1\104\11\74\1\103\5\74\1\105\1\102\7\74",
+            "\1\107",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\1\112\12\74\1\113\2\74\1\111\13\74",
+            "\1\115",
             "",
             "",
             "",
@@ -2809,20 +2866,21 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
-            "\1\133\15\uffff\1\134",
+            "\1\133\6\uffff\1\134",
             "\1\135",
             "\1\136",
             "",
             "\1\140",
             "\1\141",
             "\1\142",
-            "\1\143",
             "",
-            "\1\146",
+            "\1\144",
             "",
-            "\12\151",
+            "\1\147",
             "",
-            "\1\154\4\uffff\1\155",
+            "\12\153",
+            "",
+            "\1\155\4\uffff\1\156",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
@@ -2840,63 +2898,62 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0081\1\uffff\12\151\53\uffff\1\u0081",
-            "\0\u0082",
+            "\1\u0082\1\uffff\12\153\53\uffff\1\u0082",
             "\0\u0083",
+            "\0\u0084",
             "",
             "",
             "",
-            "\1\u0085",
-            "\1\u0086\1\u0087",
+            "\1\u0086",
+            "\1\u0087\1\u0088",
             "",
             "",
-            "\1\u0088",
             "\1\u0089",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u008a\6\74",
+            "\1\u008a",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\23\74\1\u008b\6\74",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u008d",
             "\1\u008e",
+            "\1\u008f",
+            "\1\u0090",
             "",
             "",
             "",
-            "\1\u008f",
-            "\1\u0090",
             "\1\u0091",
-            "",
             "\1\u0092",
+            "\1\u0093",
             "",
+            "\1\u0094",
             "",
             "",
             "",
             "",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u0094",
-            "\1\u0095",
+            "\1\u0096",
+            "\1\u0097",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0096",
-            "\1\u0097",
             "\1\u0098",
             "\1\u0099",
-            "",
-            "\1\u009a",
-            "\1\u009b",
+            "\1\u009b\3\uffff\1\u009a",
             "\1\u009c",
             "",
+            "\1\u009d",
+            "\1\u009e",
+            "\1\u009f",
             "",
             "",
             "",
             "",
             "",
-            "\1\u0081\1\uffff\12\151\53\uffff\1\u0081",
             "",
             "",
             "",
+            "\1\u0082\1\uffff\12\153\53\uffff\1\u0082",
             "",
             "",
             "",
@@ -2921,102 +2978,116 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             "",
             "",
             "",
-            "\1\u009d",
-            "\1\u009e",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00a0",
-            "\1\u00a1",
-            "\1\u00a2",
             "",
             "",
+            "\1\u00a0",
+            "\1\u00a1",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00a3",
             "\1\u00a4",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00a5",
+            "",
+            "",
             "\1\u00a6",
             "\1\u00a7",
             "\1\u00a8",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00aa",
             "\1\u00ab",
             "\1\u00ac",
-            "\1\u00ad",
-            "\1\u00ae",
+            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\1\u00af",
             "\1\u00b0",
             "\1\u00b1",
             "\1\u00b2",
             "\1\u00b3",
-            "",
             "\1\u00b4",
             "\1\u00b5",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00b6",
             "\1\u00b7",
             "\1\u00b8",
             "",
             "\1\u00b9",
             "\1\u00ba",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00bc",
+            "\1\u00bd",
+            "\1\u00be",
+            "",
+            "\1\u00bf",
+            "\1\u00c0",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
-            "\1\u00bc",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00bf",
-            "\1\u00c0",
-            "\1\u00c1",
-            "\1\u00c2",
-            "\1\u00c3",
             "\1\u00c4",
             "\1\u00c5",
             "\1\u00c6",
-            "",
             "\1\u00c7",
+            "\1\u00c8",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "",
+            "\1\u00ca",
+            "\1\u00cb",
             "\1\u00cc",
             "\1\u00cd",
+            "",
             "\1\u00ce",
             "\1\u00cf",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\1\u00d1",
-            "\1\u00d2",
-            "\1\u00d3",
-            "\1\u00d4",
-            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "",
             "",
             "",
+            "\1\u00d3",
+            "\1\u00d4",
             "\1\u00d5",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d6",
             "\1\u00d7",
-            "\1\u00d8",
             "",
-            "\1\u00d9",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00d9",
+            "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00dd",
+            "",
+            "",
             "",
             "\1\u00de",
+            "\1\u00df",
+            "\1\u00e0",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "",
-            "\1\u00e1",
             "\1\u00e2",
             "",
             "\1\u00e3",
-            "",
-            "",
-            "\1\u00e4",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00e5",
             "\1\u00e6",
             "\1\u00e7",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\1\u00e9",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u00ed",
+            "\1\u00ee",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u00f0",
+            "",
+            "",
+            "",
+            "\1\u00f1",
+            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "",
+            "\1\u00f3",
+            "\1\u00f4",
             "",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
             "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
@@ -3054,23 +3125,33 @@ public class InternalOptimisationLanguageLexer extends Lexer {
             this.transition = DFA17_transition;
         }
         public String getDescription() {
-            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
+            return "1:1: Tokens : ( 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 | RULE_INT | RULE_DOUBLE | RULE_STRING | RULE_QUOTED_ID | RULE_ID | RULE_ML_COMMENT | RULE_SL_COMMENT | RULE_WS | RULE_ANY_OTHER );";
         }
         public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
             IntStream input = _input;
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA17_54 = input.LA(1);
+                        int LA17_53 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 131;}
+                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 131;}
 
                         else s = 57;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
+                        int LA17_54 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA17_54>='\u0000' && LA17_54<='\uFFFF')) ) {s = 132;}
+
+                        else s = 57;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA17_0 = input.LA(1);
 
                         s = -1;
@@ -3098,35 +3179,35 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         else if ( (LA17_0==']') ) {s = 12;}
 
-                        else if ( (LA17_0=='.') ) {s = 13;}
+                        else if ( (LA17_0=='O') ) {s = 13;}
 
-                        else if ( (LA17_0=='O') ) {s = 14;}
+                        else if ( (LA17_0=='X') ) {s = 14;}
 
-                        else if ( (LA17_0=='X') ) {s = 15;}
+                        else if ( (LA17_0=='A') ) {s = 15;}
 
-                        else if ( (LA17_0=='A') ) {s = 16;}
+                        else if ( (LA17_0=='!') ) {s = 16;}
 
-                        else if ( (LA17_0=='!') ) {s = 17;}
+                        else if ( (LA17_0=='^') ) {s = 17;}
 
-                        else if ( (LA17_0=='^') ) {s = 18;}
+                        else if ( (LA17_0=='(') ) {s = 18;}
 
-                        else if ( (LA17_0=='(') ) {s = 19;}
+                        else if ( (LA17_0==')') ) {s = 19;}
 
-                        else if ( (LA17_0==')') ) {s = 20;}
+                        else if ( (LA17_0=='t') ) {s = 20;}
 
-                        else if ( (LA17_0=='v') ) {s = 21;}
+                        else if ( (LA17_0=='e') ) {s = 21;}
 
-                        else if ( (LA17_0=='t') ) {s = 22;}
+                        else if ( (LA17_0=='l') ) {s = 22;}
 
-                        else if ( (LA17_0=='l') ) {s = 23;}
+                        else if ( (LA17_0=='|') ) {s = 23;}
 
-                        else if ( (LA17_0=='|') ) {s = 24;}
+                        else if ( (LA17_0=='s') ) {s = 24;}
 
-                        else if ( (LA17_0=='s') ) {s = 25;}
+                        else if ( (LA17_0=='b') ) {s = 25;}
 
-                        else if ( (LA17_0=='e') ) {s = 26;}
+                        else if ( (LA17_0=='v') ) {s = 26;}
 
-                        else if ( (LA17_0=='b') ) {s = 27;}
+                        else if ( (LA17_0=='.') ) {s = 27;}
 
                         else if ( (LA17_0=='>') ) {s = 28;}
 
@@ -3188,16 +3269,6 @@ public class InternalOptimisationLanguageLexer extends Lexer {
 
                         else if ( ((LA17_0>='\u0000' && LA17_0<='\b')||(LA17_0>='\u000B' && LA17_0<='\f')||(LA17_0>='\u000E' && LA17_0<='\u001F')||(LA17_0>='#' && LA17_0<='$')||LA17_0=='&'||(LA17_0>='?' && LA17_0<='@')||LA17_0=='\\'||LA17_0=='`'||(LA17_0>='~' && LA17_0<='\u00B4')||(LA17_0>='\u00B6' && LA17_0<='\uFFFF')) ) {s = 57;}
 
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA17_53 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA17_53>='\u0000' && LA17_53<='\uFFFF')) ) {s = 130;}
-
-                        else s = 57;
-
                         if ( s>=0 ) return s;
                         break;
             }
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageParser.java b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageParser.java
index 97573dbc..c129767c 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageParser.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/parser/antlr/internal/InternalOptimisationLanguageParser.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 @SuppressWarnings("all")
 public class InternalOptimisationLanguageParser extends AbstractInternalAntlrParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'import'", "';'", "'declare'", "'as'", "'documenting'", "':='", "'instance'", "'for'", "'with'", "'algorithm'", "'{'", "'}'", "'['", "','", "']'", "'data'", "'.'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'value'", "'true'", "'false'", "':'", "'literal'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_DOUBLE", "RULE_INT", "RULE_STRING", "RULE_QUOTED_ID", "RULE_ID", "RULE_DIGIT", "RULE_EXPONENT", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'import'", "';'", "'declare'", "'as'", "'documenting'", "':='", "'instance'", "'for'", "'with'", "'algorithm'", "'{'", "'}'", "'['", "','", "']'", "'data'", "'OR'", "'XOR'", "'AND'", "'!'", "'^'", "'('", "')'", "'true'", "'false'", "'abstract'", "'type'", "'extends'", "':'", "'literal'", "'|'", "'string'", "'expression'", "'int'", "'float'", "'boolean'", "'void'", "'array'", "'.'", "'>='", "'>'", "'='", "'!='", "'<'", "'<='", "'+'", "'-'", "'*'", "'/'", "'%'", "'Y'", "'Z'", "'E'", "'P'", "'T'", "'G'", "'M'", "'k'", "'h'", "'da'", "'d'", "'c'", "'m'", "'\\u00B5'", "'n'", "'p'", "'f'", "'a'", "'z'", "'y'"
     };
     public static final int T__50=50;
     public static final int T__19=19;
@@ -91,6 +91,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     public static final int T__80=80;
     public static final int T__81=81;
     public static final int T__82=82;
+    public static final int T__83=83;
     public static final int RULE_WS=13;
     public static final int RULE_ANY_OTHER=14;
     public static final int RULE_EXPONENT=10;
@@ -101,6 +102,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     public static final int T__46=46;
     public static final int T__47=47;
     public static final int T__40=40;
+    public static final int T__84=84;
     public static final int T__41=41;
     public static final int T__42=42;
     public static final int T__43=43;
@@ -394,7 +396,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleImportRule"
-    // InternalOptimisationLanguage.g:149:1: ruleImportRule returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) ) otherlv_2= ';' ) ;
+    // InternalOptimisationLanguage.g:149:1: ruleImportRule returns [EObject current=null] : (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) ;
     public final EObject ruleImportRule() throws RecognitionException {
         EObject current = null;
 
@@ -407,27 +409,27 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:155:2: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) ) otherlv_2= ';' ) )
-            // InternalOptimisationLanguage.g:156:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) ) otherlv_2= ';' )
+            // InternalOptimisationLanguage.g:155:2: ( (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' ) )
+            // InternalOptimisationLanguage.g:156:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
             {
-            // InternalOptimisationLanguage.g:156:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) ) otherlv_2= ';' )
-            // InternalOptimisationLanguage.g:157:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) ) otherlv_2= ';'
+            // InternalOptimisationLanguage.g:156:2: (otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';' )
+            // InternalOptimisationLanguage.g:157:3: otherlv_0= 'import' ( (lv_importedNamespace_1_0= ruleQualifiedName ) ) otherlv_2= ';'
             {
             otherlv_0=(Token)match(input,15,FOLLOW_5); 
 
             			newLeafNode(otherlv_0, grammarAccess.getImportRuleAccess().getImportKeyword_0());
             		
-            // InternalOptimisationLanguage.g:161:3: ( (lv_importedNamespace_1_0= ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:162:4: (lv_importedNamespace_1_0= ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:161:3: ( (lv_importedNamespace_1_0= ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:162:4: (lv_importedNamespace_1_0= ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:162:4: (lv_importedNamespace_1_0= ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:163:5: lv_importedNamespace_1_0= ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:162:4: (lv_importedNamespace_1_0= ruleQualifiedName )
+            // InternalOptimisationLanguage.g:163:5: lv_importedNamespace_1_0= ruleQualifiedName
             {
 
-            					newCompositeNode(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0());
+            					newCompositeNode(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0());
             				
             pushFollow(FOLLOW_6);
-            lv_importedNamespace_1_0=ruleQualifiedNameRule();
+            lv_importedNamespace_1_0=ruleQualifiedName();
 
             state._fsp--;
 
@@ -439,7 +441,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             						current,
             						"importedNamespace",
             						lv_importedNamespace_1_0,
-            						"de.evoal.languages.model.instance.dsl.InstanceLanguage.QualifiedNameRule");
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.QualifiedName");
             					afterParserOrEnumRuleCall();
             				
 
@@ -726,7 +728,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleAlgorithmInstanceRule"
-    // InternalOptimisationLanguage.g:293:1: ruleAlgorithmInstanceRule returns [EObject current=null] : (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedNameRule ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? ) ;
+    // InternalOptimisationLanguage.g:293:1: ruleAlgorithmInstanceRule returns [EObject current=null] : (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedName ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? ) ;
     public final EObject ruleAlgorithmInstanceRule() throws RecognitionException {
         EObject current = null;
 
@@ -746,11 +748,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:299:2: ( (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedNameRule ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? ) )
-            // InternalOptimisationLanguage.g:300:2: (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedNameRule ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? )
+            // InternalOptimisationLanguage.g:299:2: ( (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedName ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? ) )
+            // InternalOptimisationLanguage.g:300:2: (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedName ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? )
             {
-            // InternalOptimisationLanguage.g:300:2: (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedNameRule ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? )
-            // InternalOptimisationLanguage.g:301:3: otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedNameRule ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )?
+            // InternalOptimisationLanguage.g:300:2: (otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedName ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )? )
+            // InternalOptimisationLanguage.g:301:3: otherlv_0= 'instance' otherlv_1= 'for' ( ( ruleQualifiedName ) ) otherlv_3= 'with' otherlv_4= 'algorithm' ( (lv_algorithm_5_0= ruleInstanceRule ) ) (otherlv_6= 'documenting' otherlv_7= ':=' ( (lv_documentation_8_0= ruleArrayRule ) ) otherlv_9= ';' )?
             {
             otherlv_0=(Token)match(input,21,FOLLOW_11); 
 
@@ -760,11 +762,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             			newLeafNode(otherlv_1, grammarAccess.getAlgorithmInstanceRuleAccess().getForKeyword_1());
             		
-            // InternalOptimisationLanguage.g:309:3: ( ( ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:310:4: ( ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:309:3: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:310:4: ( ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:310:4: ( ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:311:5: ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:310:4: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:311:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -775,7 +777,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             					newCompositeNode(grammarAccess.getAlgorithmInstanceRuleAccess().getProblemProblemCrossReference_2_0());
             				
             pushFollow(FOLLOW_12);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
@@ -946,7 +948,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleInstanceRule"
-    // InternalOptimisationLanguage.g:396:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
+    // InternalOptimisationLanguage.g:396:1: ruleInstanceRule returns [EObject current=null] : ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) ;
     public final EObject ruleInstanceRule() throws RecognitionException {
         EObject current = null;
 
@@ -959,17 +961,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:402:2: ( ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
-            // InternalOptimisationLanguage.g:403:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalOptimisationLanguage.g:402:2: ( ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? ) )
+            // InternalOptimisationLanguage.g:403:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
             {
-            // InternalOptimisationLanguage.g:403:2: ( ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
-            // InternalOptimisationLanguage.g:404:3: ( ( ruleQualifiedNameRule ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
+            // InternalOptimisationLanguage.g:403:2: ( ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )? )
+            // InternalOptimisationLanguage.g:404:3: ( ( ruleQualifiedName ) ) (otherlv_1= '{' ( (lv_attributes_2_0= ruleAttributeRule ) )* otherlv_3= '}' )?
             {
-            // InternalOptimisationLanguage.g:404:3: ( ( ruleQualifiedNameRule ) )
-            // InternalOptimisationLanguage.g:405:4: ( ruleQualifiedNameRule )
+            // InternalOptimisationLanguage.g:404:3: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:405:4: ( ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:405:4: ( ruleQualifiedNameRule )
-            // InternalOptimisationLanguage.g:406:5: ruleQualifiedNameRule
+            // InternalOptimisationLanguage.g:405:4: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:406:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -980,7 +982,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             					newCompositeNode(grammarAccess.getInstanceRuleAccess().getDefinitionTypeDefinitionCrossReference_0_0());
             				
             pushFollow(FOLLOW_14);
-            ruleQualifiedNameRule();
+            ruleQualifiedName();
 
             state._fsp--;
 
@@ -1313,8 +1315,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             case RULE_DOUBLE:
             case RULE_INT:
             case RULE_STRING:
-            case 40:
-            case 41:
+            case 38:
+            case 39:
                 {
                 alt8=4;
                 }
@@ -1499,7 +1501,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             int alt10=2;
             int LA10_0 = input.LA(1);
 
-            if ( ((LA10_0>=RULE_DOUBLE && LA10_0<=RULE_ID)||LA10_0==27||LA10_0==30||(LA10_0>=40 && LA10_0<=41)) ) {
+            if ( ((LA10_0>=RULE_DOUBLE && LA10_0<=RULE_ID)||LA10_0==27||LA10_0==30||(LA10_0>=38 && LA10_0<=39)) ) {
                 alt10=1;
             }
             switch (alt10) {
@@ -1847,144 +1849,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     // $ANTLR end "ruleDataReferenceRule"
 
 
-    // $ANTLR start "entryRuleQualifiedNameRule"
-    // InternalOptimisationLanguage.g:731:1: entryRuleQualifiedNameRule returns [String current=null] : iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF ;
-    public final String entryRuleQualifiedNameRule() throws RecognitionException {
-        String current = null;
-
-        AntlrDatatypeRuleToken iv_ruleQualifiedNameRule = null;
-
-
-        try {
-            // InternalOptimisationLanguage.g:731:57: (iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF )
-            // InternalOptimisationLanguage.g:732:2: iv_ruleQualifiedNameRule= ruleQualifiedNameRule EOF
-            {
-             newCompositeNode(grammarAccess.getQualifiedNameRuleRule()); 
-            pushFollow(FOLLOW_1);
-            iv_ruleQualifiedNameRule=ruleQualifiedNameRule();
-
-            state._fsp--;
-
-             current =iv_ruleQualifiedNameRule.getText(); 
-            match(input,EOF,FOLLOW_2); 
-
-            }
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "entryRuleQualifiedNameRule"
-
-
-    // $ANTLR start "ruleQualifiedNameRule"
-    // InternalOptimisationLanguage.g:738:1: ruleQualifiedNameRule returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
-    public final AntlrDatatypeRuleToken ruleQualifiedNameRule() throws RecognitionException {
-        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
-
-        Token kw=null;
-        AntlrDatatypeRuleToken this_StringOrId_0 = null;
-
-        AntlrDatatypeRuleToken this_StringOrId_2 = null;
-
-
-
-        	enterRule();
-
-        try {
-            // InternalOptimisationLanguage.g:744:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalOptimisationLanguage.g:745:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            {
-            // InternalOptimisationLanguage.g:745:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalOptimisationLanguage.g:746:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            {
-
-            			newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_0());
-            		
-            pushFollow(FOLLOW_19);
-            this_StringOrId_0=ruleStringOrId();
-
-            state._fsp--;
-
-
-            			current.merge(this_StringOrId_0);
-            		
-
-            			afterParserOrEnumRuleCall();
-            		
-            // InternalOptimisationLanguage.g:756:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop11:
-            do {
-                int alt11=2;
-                int LA11_0 = input.LA(1);
-
-                if ( (LA11_0==31) ) {
-                    alt11=1;
-                }
-
-
-                switch (alt11) {
-            	case 1 :
-            	    // InternalOptimisationLanguage.g:757:4: kw= '.' this_StringOrId_2= ruleStringOrId
-            	    {
-            	    kw=(Token)match(input,31,FOLLOW_5); 
-
-            	    				current.merge(kw);
-            	    				newLeafNode(kw, grammarAccess.getQualifiedNameRuleAccess().getFullStopKeyword_1_0());
-            	    			
-
-            	    				newCompositeNode(grammarAccess.getQualifiedNameRuleAccess().getStringOrIdParserRuleCall_1_1());
-            	    			
-            	    pushFollow(FOLLOW_19);
-            	    this_StringOrId_2=ruleStringOrId();
-
-            	    state._fsp--;
-
-
-            	    				current.merge(this_StringOrId_2);
-            	    			
-
-            	    				afterParserOrEnumRuleCall();
-            	    			
-
-            	    }
-            	    break;
-
-            	default :
-            	    break loop11;
-                }
-            } while (true);
-
-
-            }
-
-
-            }
-
-
-            	leaveRule();
-
-        }
-
-            catch (RecognitionException re) {
-                recover(input,re);
-                appendSkippedTokens();
-            }
-        finally {
-        }
-        return current;
-    }
-    // $ANTLR end "ruleQualifiedNameRule"
-
-
     // $ANTLR start "entryRuleExpressionRule"
-    // InternalOptimisationLanguage.g:777:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:731:1: entryRuleExpressionRule returns [EObject current=null] : iv_ruleExpressionRule= ruleExpressionRule EOF ;
     public final EObject entryRuleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -1992,8 +1858,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:777:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
-            // InternalOptimisationLanguage.g:778:2: iv_ruleExpressionRule= ruleExpressionRule EOF
+            // InternalOptimisationLanguage.g:731:55: (iv_ruleExpressionRule= ruleExpressionRule EOF )
+            // InternalOptimisationLanguage.g:732:2: iv_ruleExpressionRule= ruleExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2020,7 +1886,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleExpressionRule"
-    // InternalOptimisationLanguage.g:784:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
+    // InternalOptimisationLanguage.g:738:1: ruleExpressionRule returns [EObject current=null] : this_OrExpressionRule_0= ruleOrExpressionRule ;
     public final EObject ruleExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2031,8 +1897,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:790:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
-            // InternalOptimisationLanguage.g:791:2: this_OrExpressionRule_0= ruleOrExpressionRule
+            // InternalOptimisationLanguage.g:744:2: (this_OrExpressionRule_0= ruleOrExpressionRule )
+            // InternalOptimisationLanguage.g:745:2: this_OrExpressionRule_0= ruleOrExpressionRule
             {
 
             		newCompositeNode(grammarAccess.getExpressionRuleAccess().getOrExpressionRuleParserRuleCall());
@@ -2066,7 +1932,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleOrExpressionRule"
-    // InternalOptimisationLanguage.g:802:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:756:1: entryRuleOrExpressionRule returns [EObject current=null] : iv_ruleOrExpressionRule= ruleOrExpressionRule EOF ;
     public final EObject entryRuleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2074,8 +1940,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:802:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
-            // InternalOptimisationLanguage.g:803:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
+            // InternalOptimisationLanguage.g:756:57: (iv_ruleOrExpressionRule= ruleOrExpressionRule EOF )
+            // InternalOptimisationLanguage.g:757:2: iv_ruleOrExpressionRule= ruleOrExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getOrExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2102,7 +1968,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleOrExpressionRule"
-    // InternalOptimisationLanguage.g:809:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
+    // InternalOptimisationLanguage.g:763:1: ruleOrExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) ;
     public final EObject ruleOrExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2116,22 +1982,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:815:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
-            // InternalOptimisationLanguage.g:816:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:769:2: ( ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* ) )
+            // InternalOptimisationLanguage.g:770:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
             {
-            // InternalOptimisationLanguage.g:816:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
-            // InternalOptimisationLanguage.g:817:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            // InternalOptimisationLanguage.g:770:2: ( ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:771:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) ) (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
             {
-            // InternalOptimisationLanguage.g:817:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
-            // InternalOptimisationLanguage.g:818:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:771:3: ( (lv_subExpressions_0_0= ruleXorExpressionRule ) )
+            // InternalOptimisationLanguage.g:772:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
             {
-            // InternalOptimisationLanguage.g:818:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
-            // InternalOptimisationLanguage.g:819:5: lv_subExpressions_0_0= ruleXorExpressionRule
+            // InternalOptimisationLanguage.g:772:4: (lv_subExpressions_0_0= ruleXorExpressionRule )
+            // InternalOptimisationLanguage.g:773:5: lv_subExpressions_0_0= ruleXorExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_20);
+            pushFollow(FOLLOW_19);
             lv_subExpressions_0_0=ruleXorExpressionRule();
 
             state._fsp--;
@@ -2153,35 +2019,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:836:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
-            loop12:
+            // InternalOptimisationLanguage.g:790:3: (otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) ) )*
+            loop11:
             do {
-                int alt12=2;
-                int LA12_0 = input.LA(1);
+                int alt11=2;
+                int LA11_0 = input.LA(1);
 
-                if ( (LA12_0==32) ) {
-                    alt12=1;
+                if ( (LA11_0==31) ) {
+                    alt11=1;
                 }
 
 
-                switch (alt12) {
+                switch (alt11) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:837:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:791:4: otherlv_1= 'OR' ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,32,FOLLOW_21); 
+            	    otherlv_1=(Token)match(input,31,FOLLOW_20); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getOrExpressionRuleAccess().getORKeyword_1_0());
             	    			
-            	    // InternalOptimisationLanguage.g:841:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
-            	    // InternalOptimisationLanguage.g:842:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalOptimisationLanguage.g:795:4: ( (lv_subExpressions_2_0= ruleXorExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:796:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:842:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
-            	    // InternalOptimisationLanguage.g:843:6: lv_subExpressions_2_0= ruleXorExpressionRule
+            	    // InternalOptimisationLanguage.g:796:5: (lv_subExpressions_2_0= ruleXorExpressionRule )
+            	    // InternalOptimisationLanguage.g:797:6: lv_subExpressions_2_0= ruleXorExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getOrExpressionRuleAccess().getSubExpressionsXorExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_20);
+            	    pushFollow(FOLLOW_19);
             	    lv_subExpressions_2_0=ruleXorExpressionRule();
 
             	    state._fsp--;
@@ -2208,7 +2074,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop12;
+            	    break loop11;
                 }
             } while (true);
 
@@ -2235,7 +2101,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleXorExpressionRule"
-    // InternalOptimisationLanguage.g:865:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:819:1: entryRuleXorExpressionRule returns [EObject current=null] : iv_ruleXorExpressionRule= ruleXorExpressionRule EOF ;
     public final EObject entryRuleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2243,8 +2109,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:865:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
-            // InternalOptimisationLanguage.g:866:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
+            // InternalOptimisationLanguage.g:819:58: (iv_ruleXorExpressionRule= ruleXorExpressionRule EOF )
+            // InternalOptimisationLanguage.g:820:2: iv_ruleXorExpressionRule= ruleXorExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getXorExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2271,7 +2137,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleXorExpressionRule"
-    // InternalOptimisationLanguage.g:872:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
+    // InternalOptimisationLanguage.g:826:1: ruleXorExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) ;
     public final EObject ruleXorExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2285,22 +2151,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:878:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
-            // InternalOptimisationLanguage.g:879:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:832:2: ( ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* ) )
+            // InternalOptimisationLanguage.g:833:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
             {
-            // InternalOptimisationLanguage.g:879:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
-            // InternalOptimisationLanguage.g:880:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            // InternalOptimisationLanguage.g:833:2: ( ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:834:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) ) (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
             {
-            // InternalOptimisationLanguage.g:880:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
-            // InternalOptimisationLanguage.g:881:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:834:3: ( (lv_subExpressions_0_0= ruleAndExpressionRule ) )
+            // InternalOptimisationLanguage.g:835:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
             {
-            // InternalOptimisationLanguage.g:881:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
-            // InternalOptimisationLanguage.g:882:5: lv_subExpressions_0_0= ruleAndExpressionRule
+            // InternalOptimisationLanguage.g:835:4: (lv_subExpressions_0_0= ruleAndExpressionRule )
+            // InternalOptimisationLanguage.g:836:5: lv_subExpressions_0_0= ruleAndExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_22);
+            pushFollow(FOLLOW_21);
             lv_subExpressions_0_0=ruleAndExpressionRule();
 
             state._fsp--;
@@ -2322,35 +2188,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:899:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
-            loop13:
+            // InternalOptimisationLanguage.g:853:3: (otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) ) )*
+            loop12:
             do {
-                int alt13=2;
-                int LA13_0 = input.LA(1);
+                int alt12=2;
+                int LA12_0 = input.LA(1);
 
-                if ( (LA13_0==33) ) {
-                    alt13=1;
+                if ( (LA12_0==32) ) {
+                    alt12=1;
                 }
 
 
-                switch (alt13) {
+                switch (alt12) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:900:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:854:4: otherlv_1= 'XOR' ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,33,FOLLOW_21); 
+            	    otherlv_1=(Token)match(input,32,FOLLOW_20); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getXorExpressionRuleAccess().getXORKeyword_1_0());
             	    			
-            	    // InternalOptimisationLanguage.g:904:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
-            	    // InternalOptimisationLanguage.g:905:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalOptimisationLanguage.g:858:4: ( (lv_subExpressions_2_0= ruleAndExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:859:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:905:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
-            	    // InternalOptimisationLanguage.g:906:6: lv_subExpressions_2_0= ruleAndExpressionRule
+            	    // InternalOptimisationLanguage.g:859:5: (lv_subExpressions_2_0= ruleAndExpressionRule )
+            	    // InternalOptimisationLanguage.g:860:6: lv_subExpressions_2_0= ruleAndExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getXorExpressionRuleAccess().getSubExpressionsAndExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_22);
+            	    pushFollow(FOLLOW_21);
             	    lv_subExpressions_2_0=ruleAndExpressionRule();
 
             	    state._fsp--;
@@ -2377,7 +2243,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop13;
+            	    break loop12;
                 }
             } while (true);
 
@@ -2404,7 +2270,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleAndExpressionRule"
-    // InternalOptimisationLanguage.g:928:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:882:1: entryRuleAndExpressionRule returns [EObject current=null] : iv_ruleAndExpressionRule= ruleAndExpressionRule EOF ;
     public final EObject entryRuleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2412,8 +2278,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:928:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
-            // InternalOptimisationLanguage.g:929:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
+            // InternalOptimisationLanguage.g:882:58: (iv_ruleAndExpressionRule= ruleAndExpressionRule EOF )
+            // InternalOptimisationLanguage.g:883:2: iv_ruleAndExpressionRule= ruleAndExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAndExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2440,7 +2306,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleAndExpressionRule"
-    // InternalOptimisationLanguage.g:935:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
+    // InternalOptimisationLanguage.g:889:1: ruleAndExpressionRule returns [EObject current=null] : ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) ;
     public final EObject ruleAndExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2454,22 +2320,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:941:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
-            // InternalOptimisationLanguage.g:942:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:895:2: ( ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* ) )
+            // InternalOptimisationLanguage.g:896:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
             {
-            // InternalOptimisationLanguage.g:942:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
-            // InternalOptimisationLanguage.g:943:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            // InternalOptimisationLanguage.g:896:2: ( ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:897:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) ) (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
             {
-            // InternalOptimisationLanguage.g:943:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
-            // InternalOptimisationLanguage.g:944:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:897:3: ( (lv_subExpressions_0_0= ruleNotExpressionRule ) )
+            // InternalOptimisationLanguage.g:898:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
             {
-            // InternalOptimisationLanguage.g:944:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
-            // InternalOptimisationLanguage.g:945:5: lv_subExpressions_0_0= ruleNotExpressionRule
+            // InternalOptimisationLanguage.g:898:4: (lv_subExpressions_0_0= ruleNotExpressionRule )
+            // InternalOptimisationLanguage.g:899:5: lv_subExpressions_0_0= ruleNotExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_23);
+            pushFollow(FOLLOW_22);
             lv_subExpressions_0_0=ruleNotExpressionRule();
 
             state._fsp--;
@@ -2491,35 +2357,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:962:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
-            loop14:
+            // InternalOptimisationLanguage.g:916:3: (otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) ) )*
+            loop13:
             do {
-                int alt14=2;
-                int LA14_0 = input.LA(1);
+                int alt13=2;
+                int LA13_0 = input.LA(1);
 
-                if ( (LA14_0==34) ) {
-                    alt14=1;
+                if ( (LA13_0==33) ) {
+                    alt13=1;
                 }
 
 
-                switch (alt14) {
+                switch (alt13) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:963:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:917:4: otherlv_1= 'AND' ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
             	    {
-            	    otherlv_1=(Token)match(input,34,FOLLOW_21); 
+            	    otherlv_1=(Token)match(input,33,FOLLOW_20); 
 
             	    				newLeafNode(otherlv_1, grammarAccess.getAndExpressionRuleAccess().getANDKeyword_1_0());
             	    			
-            	    // InternalOptimisationLanguage.g:967:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
-            	    // InternalOptimisationLanguage.g:968:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalOptimisationLanguage.g:921:4: ( (lv_subExpressions_2_0= ruleNotExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:922:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:968:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
-            	    // InternalOptimisationLanguage.g:969:6: lv_subExpressions_2_0= ruleNotExpressionRule
+            	    // InternalOptimisationLanguage.g:922:5: (lv_subExpressions_2_0= ruleNotExpressionRule )
+            	    // InternalOptimisationLanguage.g:923:6: lv_subExpressions_2_0= ruleNotExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAndExpressionRuleAccess().getSubExpressionsNotExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_23);
+            	    pushFollow(FOLLOW_22);
             	    lv_subExpressions_2_0=ruleNotExpressionRule();
 
             	    state._fsp--;
@@ -2546,7 +2412,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop14;
+            	    break loop13;
                 }
             } while (true);
 
@@ -2573,7 +2439,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleNotExpressionRule"
-    // InternalOptimisationLanguage.g:991:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:945:1: entryRuleNotExpressionRule returns [EObject current=null] : iv_ruleNotExpressionRule= ruleNotExpressionRule EOF ;
     public final EObject entryRuleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2581,8 +2447,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:991:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
-            // InternalOptimisationLanguage.g:992:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
+            // InternalOptimisationLanguage.g:945:58: (iv_ruleNotExpressionRule= ruleNotExpressionRule EOF )
+            // InternalOptimisationLanguage.g:946:2: iv_ruleNotExpressionRule= ruleNotExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getNotExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2609,7 +2475,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleNotExpressionRule"
-    // InternalOptimisationLanguage.g:998:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
+    // InternalOptimisationLanguage.g:952:1: ruleNotExpressionRule returns [EObject current=null] : ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) ;
     public final EObject ruleNotExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2621,27 +2487,27 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1004:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
-            // InternalOptimisationLanguage.g:1005:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalOptimisationLanguage.g:958:2: ( ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) ) )
+            // InternalOptimisationLanguage.g:959:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
             {
-            // InternalOptimisationLanguage.g:1005:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
-            // InternalOptimisationLanguage.g:1006:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalOptimisationLanguage.g:959:2: ( ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) ) )
+            // InternalOptimisationLanguage.g:960:3: ( (lv_negated_0_0= '!' ) )? ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
             {
-            // InternalOptimisationLanguage.g:1006:3: ( (lv_negated_0_0= '!' ) )?
-            int alt15=2;
-            int LA15_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:960:3: ( (lv_negated_0_0= '!' ) )?
+            int alt14=2;
+            int LA14_0 = input.LA(1);
 
-            if ( (LA15_0==35) ) {
-                alt15=1;
+            if ( (LA14_0==34) ) {
+                alt14=1;
             }
-            switch (alt15) {
+            switch (alt14) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1007:4: (lv_negated_0_0= '!' )
+                    // InternalOptimisationLanguage.g:961:4: (lv_negated_0_0= '!' )
                     {
-                    // InternalOptimisationLanguage.g:1007:4: (lv_negated_0_0= '!' )
-                    // InternalOptimisationLanguage.g:1008:5: lv_negated_0_0= '!'
+                    // InternalOptimisationLanguage.g:961:4: (lv_negated_0_0= '!' )
+                    // InternalOptimisationLanguage.g:962:5: lv_negated_0_0= '!'
                     {
-                    lv_negated_0_0=(Token)match(input,35,FOLLOW_21); 
+                    lv_negated_0_0=(Token)match(input,34,FOLLOW_20); 
 
                     					newLeafNode(lv_negated_0_0, grammarAccess.getNotExpressionRuleAccess().getNegatedExclamationMarkKeyword_0_0());
                     				
@@ -2660,11 +2526,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1020:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
-            // InternalOptimisationLanguage.g:1021:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:974:3: ( (lv_operand_1_0= ruleComparisonExpressionRule ) )
+            // InternalOptimisationLanguage.g:975:4: (lv_operand_1_0= ruleComparisonExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1021:4: (lv_operand_1_0= ruleComparisonExpressionRule )
-            // InternalOptimisationLanguage.g:1022:5: lv_operand_1_0= ruleComparisonExpressionRule
+            // InternalOptimisationLanguage.g:975:4: (lv_operand_1_0= ruleComparisonExpressionRule )
+            // InternalOptimisationLanguage.g:976:5: lv_operand_1_0= ruleComparisonExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getNotExpressionRuleAccess().getOperandComparisonExpressionRuleParserRuleCall_1_0());
@@ -2714,7 +2580,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:1043:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:997:1: entryRuleComparisonExpressionRule returns [EObject current=null] : iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF ;
     public final EObject entryRuleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2722,8 +2588,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1043:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1044:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
+            // InternalOptimisationLanguage.g:997:65: (iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF )
+            // InternalOptimisationLanguage.g:998:2: iv_ruleComparisonExpressionRule= ruleComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2750,7 +2616,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:1050:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
+    // InternalOptimisationLanguage.g:1004:1: ruleComparisonExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) ;
     public final EObject ruleComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2763,22 +2629,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1056:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
-            // InternalOptimisationLanguage.g:1057:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalOptimisationLanguage.g:1010:2: ( ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* ) )
+            // InternalOptimisationLanguage.g:1011:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
             {
-            // InternalOptimisationLanguage.g:1057:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
-            // InternalOptimisationLanguage.g:1058:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            // InternalOptimisationLanguage.g:1011:2: ( ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )* )
+            // InternalOptimisationLanguage.g:1012:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) ) ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
             {
-            // InternalOptimisationLanguage.g:1058:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:1059:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1012:3: ( (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:1013:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1059:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:1060:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:1013:4: (lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1014:5: lv_leftOperand_0_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getLeftOperandAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_24);
+            pushFollow(FOLLOW_23);
             lv_leftOperand_0_0=ruleAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -2800,28 +2666,28 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1077:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
-            loop16:
+            // InternalOptimisationLanguage.g:1031:3: ( (lv_comparison_1_0= rulePartialComparisonExpressionRule ) )*
+            loop15:
             do {
-                int alt16=2;
-                int LA16_0 = input.LA(1);
+                int alt15=2;
+                int LA15_0 = input.LA(1);
 
-                if ( ((LA16_0>=52 && LA16_0<=57)) ) {
-                    alt16=1;
+                if ( ((LA15_0>=54 && LA15_0<=59)) ) {
+                    alt15=1;
                 }
 
 
-                switch (alt16) {
+                switch (alt15) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:1078:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalOptimisationLanguage.g:1032:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1078:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
-            	    // InternalOptimisationLanguage.g:1079:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
+            	    // InternalOptimisationLanguage.g:1032:4: (lv_comparison_1_0= rulePartialComparisonExpressionRule )
+            	    // InternalOptimisationLanguage.g:1033:5: lv_comparison_1_0= rulePartialComparisonExpressionRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getComparisonExpressionRuleAccess().getComparisonPartialComparisonExpressionRuleParserRuleCall_1_0());
             	    				
-            	    pushFollow(FOLLOW_24);
+            	    pushFollow(FOLLOW_23);
             	    lv_comparison_1_0=rulePartialComparisonExpressionRule();
 
             	    state._fsp--;
@@ -2845,7 +2711,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop16;
+            	    break loop15;
                 }
             } while (true);
 
@@ -2872,7 +2738,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRulePartialComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:1100:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:1054:1: entryRulePartialComparisonExpressionRule returns [EObject current=null] : iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF ;
     public final EObject entryRulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2880,8 +2746,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1100:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1101:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
+            // InternalOptimisationLanguage.g:1054:72: (iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF )
+            // InternalOptimisationLanguage.g:1055:2: iv_rulePartialComparisonExpressionRule= rulePartialComparisonExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -2908,7 +2774,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "rulePartialComparisonExpressionRule"
-    // InternalOptimisationLanguage.g:1107:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
+    // InternalOptimisationLanguage.g:1061:1: rulePartialComparisonExpressionRule returns [EObject current=null] : ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) ;
     public final EObject rulePartialComparisonExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -2921,22 +2787,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1113:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
-            // InternalOptimisationLanguage.g:1114:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalOptimisationLanguage.g:1067:2: ( ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) ) )
+            // InternalOptimisationLanguage.g:1068:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
             {
-            // InternalOptimisationLanguage.g:1114:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
-            // InternalOptimisationLanguage.g:1115:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:1068:2: ( ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) ) )
+            // InternalOptimisationLanguage.g:1069:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) ) ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
             {
-            // InternalOptimisationLanguage.g:1115:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
-            // InternalOptimisationLanguage.g:1116:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalOptimisationLanguage.g:1069:3: ( (lv_operator_0_0= ruleComparisonOperatorRule ) )
+            // InternalOptimisationLanguage.g:1070:4: (lv_operator_0_0= ruleComparisonOperatorRule )
             {
-            // InternalOptimisationLanguage.g:1116:4: (lv_operator_0_0= ruleComparisonOperatorRule )
-            // InternalOptimisationLanguage.g:1117:5: lv_operator_0_0= ruleComparisonOperatorRule
+            // InternalOptimisationLanguage.g:1070:4: (lv_operator_0_0= ruleComparisonOperatorRule )
+            // InternalOptimisationLanguage.g:1071:5: lv_operator_0_0= ruleComparisonOperatorRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getOperatorComparisonOperatorRuleEnumRuleCall_0_0());
             				
-            pushFollow(FOLLOW_21);
+            pushFollow(FOLLOW_20);
             lv_operator_0_0=ruleComparisonOperatorRule();
 
             state._fsp--;
@@ -2958,11 +2824,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1134:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:1135:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1088:3: ( (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:1089:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1135:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:1136:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:1089:4: (lv_subExpression_1_0= ruleAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1090:5: lv_subExpression_1_0= ruleAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPartialComparisonExpressionRuleAccess().getSubExpressionAddOrSubtractExpressionRuleParserRuleCall_1_0());
@@ -3012,7 +2878,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:1157:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:1111:1: entryRuleAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3020,8 +2886,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1157:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1158:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
+            // InternalOptimisationLanguage.g:1111:68: (iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF )
+            // InternalOptimisationLanguage.g:1112:2: iv_ruleAddOrSubtractExpressionRule= ruleAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3048,7 +2914,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:1164:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
+    // InternalOptimisationLanguage.g:1118:1: ruleAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) ;
     public final EObject ruleAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3063,22 +2929,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1170:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
-            // InternalOptimisationLanguage.g:1171:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:1124:2: ( ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* ) )
+            // InternalOptimisationLanguage.g:1125:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
             {
-            // InternalOptimisationLanguage.g:1171:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
-            // InternalOptimisationLanguage.g:1172:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            // InternalOptimisationLanguage.g:1125:2: ( ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:1126:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) ) ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
             {
-            // InternalOptimisationLanguage.g:1172:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
-            // InternalOptimisationLanguage.g:1173:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:1126:3: ( (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule ) )
+            // InternalOptimisationLanguage.g:1127:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1173:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
-            // InternalOptimisationLanguage.g:1174:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
+            // InternalOptimisationLanguage.g:1127:4: (lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule )
+            // InternalOptimisationLanguage.g:1128:5: lv_leftOperand_0_0= ruleMultiplyDivideModuloExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getLeftOperandMultiplyDivideModuloExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_25);
+            pushFollow(FOLLOW_24);
             lv_leftOperand_0_0=ruleMultiplyDivideModuloExpressionRule();
 
             state._fsp--;
@@ -3100,31 +2966,31 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1191:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
-            loop17:
+            // InternalOptimisationLanguage.g:1145:3: ( ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) ) )*
+            loop16:
             do {
-                int alt17=2;
-                int LA17_0 = input.LA(1);
+                int alt16=2;
+                int LA16_0 = input.LA(1);
 
-                if ( ((LA17_0>=58 && LA17_0<=59)) ) {
-                    alt17=1;
+                if ( ((LA16_0>=60 && LA16_0<=61)) ) {
+                    alt16=1;
                 }
 
 
-                switch (alt17) {
+                switch (alt16) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:1192:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:1146:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) ) ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
             	    {
-            	    // InternalOptimisationLanguage.g:1192:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
-            	    // InternalOptimisationLanguage.g:1193:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalOptimisationLanguage.g:1146:4: ( (lv_operators_1_0= ruleAddOrSubtractOperatorRule ) )
+            	    // InternalOptimisationLanguage.g:1147:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1193:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalOptimisationLanguage.g:1194:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
+            	    // InternalOptimisationLanguage.g:1147:5: (lv_operators_1_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalOptimisationLanguage.g:1148:6: lv_operators_1_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_21);
+            	    pushFollow(FOLLOW_20);
             	    lv_operators_1_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -3146,16 +3012,16 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             	    }
 
-            	    // InternalOptimisationLanguage.g:1211:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
-            	    // InternalOptimisationLanguage.g:1212:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalOptimisationLanguage.g:1165:4: ( (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:1166:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1212:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
-            	    // InternalOptimisationLanguage.g:1213:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
+            	    // InternalOptimisationLanguage.g:1166:5: (lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule )
+            	    // InternalOptimisationLanguage.g:1167:6: lv_operands_2_0= ruleMultiplyDivideModuloExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getAddOrSubtractExpressionRuleAccess().getOperandsMultiplyDivideModuloExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_25);
+            	    pushFollow(FOLLOW_24);
             	    lv_operands_2_0=ruleMultiplyDivideModuloExpressionRule();
 
             	    state._fsp--;
@@ -3182,7 +3048,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop17;
+            	    break loop16;
                 }
             } while (true);
 
@@ -3209,7 +3075,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleMultiplyDivideModuloExpressionRule"
-    // InternalOptimisationLanguage.g:1235:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:1189:1: entryRuleMultiplyDivideModuloExpressionRule returns [EObject current=null] : iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF ;
     public final EObject entryRuleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3217,8 +3083,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1235:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1236:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
+            // InternalOptimisationLanguage.g:1189:75: (iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF )
+            // InternalOptimisationLanguage.g:1190:2: iv_ruleMultiplyDivideModuloExpressionRule= ruleMultiplyDivideModuloExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3245,7 +3111,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleMultiplyDivideModuloExpressionRule"
-    // InternalOptimisationLanguage.g:1242:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
+    // InternalOptimisationLanguage.g:1196:1: ruleMultiplyDivideModuloExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) ;
     public final EObject ruleMultiplyDivideModuloExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3260,22 +3126,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1248:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
-            // InternalOptimisationLanguage.g:1249:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:1202:2: ( ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* ) )
+            // InternalOptimisationLanguage.g:1203:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
             {
-            // InternalOptimisationLanguage.g:1249:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
-            // InternalOptimisationLanguage.g:1250:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            // InternalOptimisationLanguage.g:1203:2: ( ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )* )
+            // InternalOptimisationLanguage.g:1204:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) ) ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
             {
-            // InternalOptimisationLanguage.g:1250:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
-            // InternalOptimisationLanguage.g:1251:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:1204:3: ( (lv_leftOperand_0_0= rulePowerOfExpressionRule ) )
+            // InternalOptimisationLanguage.g:1205:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1251:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
-            // InternalOptimisationLanguage.g:1252:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
+            // InternalOptimisationLanguage.g:1205:4: (lv_leftOperand_0_0= rulePowerOfExpressionRule )
+            // InternalOptimisationLanguage.g:1206:5: lv_leftOperand_0_0= rulePowerOfExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getLeftOperandPowerOfExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_26);
+            pushFollow(FOLLOW_25);
             lv_leftOperand_0_0=rulePowerOfExpressionRule();
 
             state._fsp--;
@@ -3297,31 +3163,31 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1269:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
-            loop18:
+            // InternalOptimisationLanguage.g:1223:3: ( ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) ) )*
+            loop17:
             do {
-                int alt18=2;
-                int LA18_0 = input.LA(1);
+                int alt17=2;
+                int LA17_0 = input.LA(1);
 
-                if ( ((LA18_0>=60 && LA18_0<=62)) ) {
-                    alt18=1;
+                if ( ((LA17_0>=62 && LA17_0<=64)) ) {
+                    alt17=1;
                 }
 
 
-                switch (alt18) {
+                switch (alt17) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:1270:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:1224:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) ) ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
             	    {
-            	    // InternalOptimisationLanguage.g:1270:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
-            	    // InternalOptimisationLanguage.g:1271:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalOptimisationLanguage.g:1224:4: ( (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule ) )
+            	    // InternalOptimisationLanguage.g:1225:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1271:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
-            	    // InternalOptimisationLanguage.g:1272:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
+            	    // InternalOptimisationLanguage.g:1225:5: (lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule )
+            	    // InternalOptimisationLanguage.g:1226:6: lv_operators_1_0= ruleMultiplyDivideModuloOperatorRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperatorsMultiplyDivideModuloOperatorRuleEnumRuleCall_1_0_0());
             	    					
-            	    pushFollow(FOLLOW_21);
+            	    pushFollow(FOLLOW_20);
             	    lv_operators_1_0=ruleMultiplyDivideModuloOperatorRule();
 
             	    state._fsp--;
@@ -3343,16 +3209,16 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             	    }
 
-            	    // InternalOptimisationLanguage.g:1289:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
-            	    // InternalOptimisationLanguage.g:1290:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalOptimisationLanguage.g:1243:4: ( (lv_operands_2_0= rulePowerOfExpressionRule ) )
+            	    // InternalOptimisationLanguage.g:1244:5: (lv_operands_2_0= rulePowerOfExpressionRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1290:5: (lv_operands_2_0= rulePowerOfExpressionRule )
-            	    // InternalOptimisationLanguage.g:1291:6: lv_operands_2_0= rulePowerOfExpressionRule
+            	    // InternalOptimisationLanguage.g:1244:5: (lv_operands_2_0= rulePowerOfExpressionRule )
+            	    // InternalOptimisationLanguage.g:1245:6: lv_operands_2_0= rulePowerOfExpressionRule
             	    {
 
             	    						newCompositeNode(grammarAccess.getMultiplyDivideModuloExpressionRuleAccess().getOperandsPowerOfExpressionRuleParserRuleCall_1_1_0());
             	    					
-            	    pushFollow(FOLLOW_26);
+            	    pushFollow(FOLLOW_25);
             	    lv_operands_2_0=rulePowerOfExpressionRule();
 
             	    state._fsp--;
@@ -3379,7 +3245,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop18;
+            	    break loop17;
                 }
             } while (true);
 
@@ -3406,7 +3272,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRulePowerOfExpressionRule"
-    // InternalOptimisationLanguage.g:1313:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:1267:1: entryRulePowerOfExpressionRule returns [EObject current=null] : iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF ;
     public final EObject entryRulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3414,8 +3280,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1313:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1314:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
+            // InternalOptimisationLanguage.g:1267:62: (iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF )
+            // InternalOptimisationLanguage.g:1268:2: iv_rulePowerOfExpressionRule= rulePowerOfExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getPowerOfExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3442,7 +3308,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "rulePowerOfExpressionRule"
-    // InternalOptimisationLanguage.g:1320:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
+    // InternalOptimisationLanguage.g:1274:1: rulePowerOfExpressionRule returns [EObject current=null] : ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) ;
     public final EObject rulePowerOfExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3456,22 +3322,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1326:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
-            // InternalOptimisationLanguage.g:1327:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalOptimisationLanguage.g:1280:2: ( ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? ) )
+            // InternalOptimisationLanguage.g:1281:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
             {
-            // InternalOptimisationLanguage.g:1327:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
-            // InternalOptimisationLanguage.g:1328:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            // InternalOptimisationLanguage.g:1281:2: ( ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )? )
+            // InternalOptimisationLanguage.g:1282:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) ) (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
             {
-            // InternalOptimisationLanguage.g:1328:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
-            // InternalOptimisationLanguage.g:1329:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1282:3: ( (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule ) )
+            // InternalOptimisationLanguage.g:1283:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1329:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
-            // InternalOptimisationLanguage.g:1330:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
+            // InternalOptimisationLanguage.g:1283:4: (lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule )
+            // InternalOptimisationLanguage.g:1284:5: lv_leftOperand_0_0= ruleUnaryAddOrSubtractExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getLeftOperandUnaryAddOrSubtractExpressionRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_27);
+            pushFollow(FOLLOW_26);
             lv_leftOperand_0_0=ruleUnaryAddOrSubtractExpressionRule();
 
             state._fsp--;
@@ -3493,26 +3359,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1347:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
-            int alt19=2;
-            int LA19_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1301:3: (otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) ) )?
+            int alt18=2;
+            int LA18_0 = input.LA(1);
 
-            if ( (LA19_0==36) ) {
-                alt19=1;
+            if ( (LA18_0==35) ) {
+                alt18=1;
             }
-            switch (alt19) {
+            switch (alt18) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1348:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalOptimisationLanguage.g:1302:4: otherlv_1= '^' ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
                     {
-                    otherlv_1=(Token)match(input,36,FOLLOW_21); 
+                    otherlv_1=(Token)match(input,35,FOLLOW_20); 
 
                     				newLeafNode(otherlv_1, grammarAccess.getPowerOfExpressionRuleAccess().getCircumflexAccentKeyword_1_0());
                     			
-                    // InternalOptimisationLanguage.g:1352:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
-                    // InternalOptimisationLanguage.g:1353:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalOptimisationLanguage.g:1306:4: ( (lv_rightOperand_2_0= rulePowerOfExpressionRule ) )
+                    // InternalOptimisationLanguage.g:1307:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
                     {
-                    // InternalOptimisationLanguage.g:1353:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
-                    // InternalOptimisationLanguage.g:1354:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
+                    // InternalOptimisationLanguage.g:1307:5: (lv_rightOperand_2_0= rulePowerOfExpressionRule )
+                    // InternalOptimisationLanguage.g:1308:6: lv_rightOperand_2_0= rulePowerOfExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getPowerOfExpressionRuleAccess().getRightOperandPowerOfExpressionRuleParserRuleCall_1_1_0());
@@ -3568,7 +3434,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleUnaryAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:1376:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
+    // InternalOptimisationLanguage.g:1330:1: entryRuleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF ;
     public final EObject entryRuleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3576,8 +3442,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1376:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
-            // InternalOptimisationLanguage.g:1377:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
+            // InternalOptimisationLanguage.g:1330:73: (iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF )
+            // InternalOptimisationLanguage.g:1331:2: iv_ruleUnaryAddOrSubtractExpressionRule= ruleUnaryAddOrSubtractExpressionRule EOF
             {
              newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3604,7 +3470,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleUnaryAddOrSubtractExpressionRule"
-    // InternalOptimisationLanguage.g:1383:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
+    // InternalOptimisationLanguage.g:1337:1: ruleUnaryAddOrSubtractExpressionRule returns [EObject current=null] : ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) ;
     public final EObject ruleUnaryAddOrSubtractExpressionRule() throws RecognitionException {
         EObject current = null;
 
@@ -3617,34 +3483,34 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1389:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
-            // InternalOptimisationLanguage.g:1390:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalOptimisationLanguage.g:1343:2: ( ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) ) )
+            // InternalOptimisationLanguage.g:1344:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
             {
-            // InternalOptimisationLanguage.g:1390:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
-            // InternalOptimisationLanguage.g:1391:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalOptimisationLanguage.g:1344:2: ( ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) ) )
+            // InternalOptimisationLanguage.g:1345:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )* ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
             {
-            // InternalOptimisationLanguage.g:1391:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
-            loop20:
+            // InternalOptimisationLanguage.g:1345:3: ( (lv_operators_0_0= ruleAddOrSubtractOperatorRule ) )*
+            loop19:
             do {
-                int alt20=2;
-                int LA20_0 = input.LA(1);
+                int alt19=2;
+                int LA19_0 = input.LA(1);
 
-                if ( ((LA20_0>=58 && LA20_0<=59)) ) {
-                    alt20=1;
+                if ( ((LA19_0>=60 && LA19_0<=61)) ) {
+                    alt19=1;
                 }
 
 
-                switch (alt20) {
+                switch (alt19) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:1392:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalOptimisationLanguage.g:1346:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
             	    {
-            	    // InternalOptimisationLanguage.g:1392:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
-            	    // InternalOptimisationLanguage.g:1393:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
+            	    // InternalOptimisationLanguage.g:1346:4: (lv_operators_0_0= ruleAddOrSubtractOperatorRule )
+            	    // InternalOptimisationLanguage.g:1347:5: lv_operators_0_0= ruleAddOrSubtractOperatorRule
             	    {
 
             	    					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getOperatorsAddOrSubtractOperatorRuleEnumRuleCall_0_0());
             	    				
-            	    pushFollow(FOLLOW_21);
+            	    pushFollow(FOLLOW_20);
             	    lv_operators_0_0=ruleAddOrSubtractOperatorRule();
 
             	    state._fsp--;
@@ -3668,15 +3534,15 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop20;
+            	    break loop19;
                 }
             } while (true);
 
-            // InternalOptimisationLanguage.g:1410:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
-            // InternalOptimisationLanguage.g:1411:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalOptimisationLanguage.g:1364:3: ( (lv_subExpression_1_0= ruleLiteralOrReferenceRule ) )
+            // InternalOptimisationLanguage.g:1365:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
             {
-            // InternalOptimisationLanguage.g:1411:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
-            // InternalOptimisationLanguage.g:1412:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
+            // InternalOptimisationLanguage.g:1365:4: (lv_subExpression_1_0= ruleLiteralOrReferenceRule )
+            // InternalOptimisationLanguage.g:1366:5: lv_subExpression_1_0= ruleLiteralOrReferenceRule
             {
 
             					newCompositeNode(grammarAccess.getUnaryAddOrSubtractExpressionRuleAccess().getSubExpressionLiteralOrReferenceRuleParserRuleCall_1_0());
@@ -3726,7 +3592,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleLiteralOrReferenceRule"
-    // InternalOptimisationLanguage.g:1433:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
+    // InternalOptimisationLanguage.g:1387:1: entryRuleLiteralOrReferenceRule returns [EObject current=null] : iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF ;
     public final EObject entryRuleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -3734,8 +3600,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1433:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
-            // InternalOptimisationLanguage.g:1434:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
+            // InternalOptimisationLanguage.g:1387:63: (iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF )
+            // InternalOptimisationLanguage.g:1388:2: iv_ruleLiteralOrReferenceRule= ruleLiteralOrReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralOrReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3762,7 +3628,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleLiteralOrReferenceRule"
-    // InternalOptimisationLanguage.g:1440:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
+    // InternalOptimisationLanguage.g:1394:1: ruleLiteralOrReferenceRule returns [EObject current=null] : (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) ;
     public final EObject ruleLiteralOrReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -3779,47 +3645,15 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1446:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
-            // InternalOptimisationLanguage.g:1447:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            // InternalOptimisationLanguage.g:1400:2: ( (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule ) )
+            // InternalOptimisationLanguage.g:1401:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
             {
-            // InternalOptimisationLanguage.g:1447:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
-            int alt21=4;
-            switch ( input.LA(1) ) {
-            case RULE_QUOTED_ID:
-            case RULE_ID:
-                {
-                alt21=1;
-                }
-                break;
-            case RULE_DOUBLE:
-            case RULE_INT:
-            case RULE_STRING:
-            case 40:
-            case 41:
-                {
-                alt21=2;
-                }
-                break;
-            case 37:
-                {
-                alt21=3;
-                }
-                break;
-            case 39:
-                {
-                alt21=4;
-                }
-                break;
-            default:
-                NoViableAltException nvae =
-                    new NoViableAltException("", 21, 0, input);
-
-                throw nvae;
-            }
-
-            switch (alt21) {
+            // InternalOptimisationLanguage.g:1401:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )
+            int alt20=4;
+            alt20 = dfa20.predict(input);
+            switch (alt20) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1448:3: this_CallRule_0= ruleCallRule
+                    // InternalOptimisationLanguage.g:1402:3: this_CallRule_0= ruleCallRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getCallRuleParserRuleCall_0());
@@ -3837,7 +3671,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1457:3: this_LiteralRule_1= ruleLiteralRule
+                    // InternalOptimisationLanguage.g:1411:3: this_LiteralRule_1= ruleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getLiteralRuleParserRuleCall_1());
@@ -3855,7 +3689,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1466:3: this_ParanthesesRule_2= ruleParanthesesRule
+                    // InternalOptimisationLanguage.g:1420:3: this_ParanthesesRule_2= ruleParanthesesRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getParanthesesRuleParserRuleCall_2());
@@ -3873,7 +3707,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:1475:3: this_ValueReferenceRule_3= ruleValueReferenceRule
+                    // InternalOptimisationLanguage.g:1429:3: this_ValueReferenceRule_3= ruleValueReferenceRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralOrReferenceRuleAccess().getValueReferenceRuleParserRuleCall_3());
@@ -3913,7 +3747,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleParanthesesRule"
-    // InternalOptimisationLanguage.g:1487:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
+    // InternalOptimisationLanguage.g:1441:1: entryRuleParanthesesRule returns [EObject current=null] : iv_ruleParanthesesRule= ruleParanthesesRule EOF ;
     public final EObject entryRuleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -3921,8 +3755,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1487:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
-            // InternalOptimisationLanguage.g:1488:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
+            // InternalOptimisationLanguage.g:1441:56: (iv_ruleParanthesesRule= ruleParanthesesRule EOF )
+            // InternalOptimisationLanguage.g:1442:2: iv_ruleParanthesesRule= ruleParanthesesRule EOF
             {
              newCompositeNode(grammarAccess.getParanthesesRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -3949,7 +3783,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleParanthesesRule"
-    // InternalOptimisationLanguage.g:1494:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
+    // InternalOptimisationLanguage.g:1448:1: ruleParanthesesRule returns [EObject current=null] : (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) ;
     public final EObject ruleParanthesesRule() throws RecognitionException {
         EObject current = null;
 
@@ -3962,26 +3796,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1500:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
-            // InternalOptimisationLanguage.g:1501:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalOptimisationLanguage.g:1454:2: ( (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' ) )
+            // InternalOptimisationLanguage.g:1455:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
             {
-            // InternalOptimisationLanguage.g:1501:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
-            // InternalOptimisationLanguage.g:1502:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
+            // InternalOptimisationLanguage.g:1455:2: (otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')' )
+            // InternalOptimisationLanguage.g:1456:3: otherlv_0= '(' ( (lv_subExpression_1_0= ruleExpressionRule ) ) otherlv_2= ')'
             {
-            otherlv_0=(Token)match(input,37,FOLLOW_21); 
+            otherlv_0=(Token)match(input,36,FOLLOW_20); 
 
             			newLeafNode(otherlv_0, grammarAccess.getParanthesesRuleAccess().getLeftParenthesisKeyword_0());
             		
-            // InternalOptimisationLanguage.g:1506:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
-            // InternalOptimisationLanguage.g:1507:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalOptimisationLanguage.g:1460:3: ( (lv_subExpression_1_0= ruleExpressionRule ) )
+            // InternalOptimisationLanguage.g:1461:4: (lv_subExpression_1_0= ruleExpressionRule )
             {
-            // InternalOptimisationLanguage.g:1507:4: (lv_subExpression_1_0= ruleExpressionRule )
-            // InternalOptimisationLanguage.g:1508:5: lv_subExpression_1_0= ruleExpressionRule
+            // InternalOptimisationLanguage.g:1461:4: (lv_subExpression_1_0= ruleExpressionRule )
+            // InternalOptimisationLanguage.g:1462:5: lv_subExpression_1_0= ruleExpressionRule
             {
 
             					newCompositeNode(grammarAccess.getParanthesesRuleAccess().getSubExpressionExpressionRuleParserRuleCall_1_0());
             				
-            pushFollow(FOLLOW_28);
+            pushFollow(FOLLOW_27);
             lv_subExpression_1_0=ruleExpressionRule();
 
             state._fsp--;
@@ -4003,7 +3837,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_2=(Token)match(input,38,FOLLOW_2); 
+            otherlv_2=(Token)match(input,37,FOLLOW_2); 
 
             			newLeafNode(otherlv_2, grammarAccess.getParanthesesRuleAccess().getRightParenthesisKeyword_2());
             		
@@ -4030,7 +3864,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleCallRule"
-    // InternalOptimisationLanguage.g:1533:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
+    // InternalOptimisationLanguage.g:1487:1: entryRuleCallRule returns [EObject current=null] : iv_ruleCallRule= ruleCallRule EOF ;
     public final EObject entryRuleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -4038,8 +3872,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1533:49: (iv_ruleCallRule= ruleCallRule EOF )
-            // InternalOptimisationLanguage.g:1534:2: iv_ruleCallRule= ruleCallRule EOF
+            // InternalOptimisationLanguage.g:1487:49: (iv_ruleCallRule= ruleCallRule EOF )
+            // InternalOptimisationLanguage.g:1488:2: iv_ruleCallRule= ruleCallRule EOF
             {
              newCompositeNode(grammarAccess.getCallRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4066,7 +3900,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleCallRule"
-    // InternalOptimisationLanguage.g:1540:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
+    // InternalOptimisationLanguage.g:1494:1: ruleCallRule returns [EObject current=null] : ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) ;
     public final EObject ruleCallRule() throws RecognitionException {
         EObject current = null;
 
@@ -4084,22 +3918,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1546:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
-            // InternalOptimisationLanguage.g:1547:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalOptimisationLanguage.g:1500:2: ( ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' ) )
+            // InternalOptimisationLanguage.g:1501:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
             {
-            // InternalOptimisationLanguage.g:1547:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
-            // InternalOptimisationLanguage.g:1548:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
+            // InternalOptimisationLanguage.g:1501:2: ( ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')' )
+            // InternalOptimisationLanguage.g:1502:3: ( (lv_function_0_0= ruleFunctionNameRule ) ) otherlv_1= '(' ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )? otherlv_5= ')'
             {
-            // InternalOptimisationLanguage.g:1548:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
-            // InternalOptimisationLanguage.g:1549:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalOptimisationLanguage.g:1502:3: ( (lv_function_0_0= ruleFunctionNameRule ) )
+            // InternalOptimisationLanguage.g:1503:4: (lv_function_0_0= ruleFunctionNameRule )
             {
-            // InternalOptimisationLanguage.g:1549:4: (lv_function_0_0= ruleFunctionNameRule )
-            // InternalOptimisationLanguage.g:1550:5: lv_function_0_0= ruleFunctionNameRule
+            // InternalOptimisationLanguage.g:1503:4: (lv_function_0_0= ruleFunctionNameRule )
+            // InternalOptimisationLanguage.g:1504:5: lv_function_0_0= ruleFunctionNameRule
             {
 
             					newCompositeNode(grammarAccess.getCallRuleAccess().getFunctionFunctionNameRuleParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_29);
+            pushFollow(FOLLOW_28);
             lv_function_0_0=ruleFunctionNameRule();
 
             state._fsp--;
@@ -4121,31 +3955,31 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,37,FOLLOW_30); 
+            otherlv_1=(Token)match(input,36,FOLLOW_29); 
 
             			newLeafNode(otherlv_1, grammarAccess.getCallRuleAccess().getLeftParenthesisKeyword_1());
             		
-            // InternalOptimisationLanguage.g:1571:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
-            int alt23=2;
-            int LA23_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1525:3: ( ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )* )?
+            int alt22=2;
+            int LA22_0 = input.LA(1);
 
-            if ( ((LA23_0>=RULE_DOUBLE && LA23_0<=RULE_ID)||LA23_0==35||LA23_0==37||(LA23_0>=39 && LA23_0<=41)||(LA23_0>=58 && LA23_0<=59)) ) {
-                alt23=1;
+            if ( ((LA22_0>=RULE_DOUBLE && LA22_0<=RULE_ID)||LA22_0==34||LA22_0==36||(LA22_0>=38 && LA22_0<=39)||(LA22_0>=60 && LA22_0<=61)) ) {
+                alt22=1;
             }
-            switch (alt23) {
+            switch (alt22) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1572:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    // InternalOptimisationLanguage.g:1526:4: ( (lv_parameters_2_0= ruleExpressionRule ) ) (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
                     {
-                    // InternalOptimisationLanguage.g:1572:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
-                    // InternalOptimisationLanguage.g:1573:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalOptimisationLanguage.g:1526:4: ( (lv_parameters_2_0= ruleExpressionRule ) )
+                    // InternalOptimisationLanguage.g:1527:5: (lv_parameters_2_0= ruleExpressionRule )
                     {
-                    // InternalOptimisationLanguage.g:1573:5: (lv_parameters_2_0= ruleExpressionRule )
-                    // InternalOptimisationLanguage.g:1574:6: lv_parameters_2_0= ruleExpressionRule
+                    // InternalOptimisationLanguage.g:1527:5: (lv_parameters_2_0= ruleExpressionRule )
+                    // InternalOptimisationLanguage.g:1528:6: lv_parameters_2_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_0_0());
                     					
-                    pushFollow(FOLLOW_31);
+                    pushFollow(FOLLOW_30);
                     lv_parameters_2_0=ruleExpressionRule();
 
                     state._fsp--;
@@ -4167,35 +4001,35 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
                     }
 
-                    // InternalOptimisationLanguage.g:1591:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
-                    loop22:
+                    // InternalOptimisationLanguage.g:1545:4: (otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) ) )*
+                    loop21:
                     do {
-                        int alt22=2;
-                        int LA22_0 = input.LA(1);
+                        int alt21=2;
+                        int LA21_0 = input.LA(1);
 
-                        if ( (LA22_0==28) ) {
-                            alt22=1;
+                        if ( (LA21_0==28) ) {
+                            alt21=1;
                         }
 
 
-                        switch (alt22) {
+                        switch (alt21) {
                     	case 1 :
-                    	    // InternalOptimisationLanguage.g:1592:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalOptimisationLanguage.g:1546:5: otherlv_3= ',' ( (lv_parameters_4_0= ruleExpressionRule ) )
                     	    {
-                    	    otherlv_3=(Token)match(input,28,FOLLOW_21); 
+                    	    otherlv_3=(Token)match(input,28,FOLLOW_20); 
 
                     	    					newLeafNode(otherlv_3, grammarAccess.getCallRuleAccess().getCommaKeyword_2_1_0());
                     	    				
-                    	    // InternalOptimisationLanguage.g:1596:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
-                    	    // InternalOptimisationLanguage.g:1597:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalOptimisationLanguage.g:1550:5: ( (lv_parameters_4_0= ruleExpressionRule ) )
+                    	    // InternalOptimisationLanguage.g:1551:6: (lv_parameters_4_0= ruleExpressionRule )
                     	    {
-                    	    // InternalOptimisationLanguage.g:1597:6: (lv_parameters_4_0= ruleExpressionRule )
-                    	    // InternalOptimisationLanguage.g:1598:7: lv_parameters_4_0= ruleExpressionRule
+                    	    // InternalOptimisationLanguage.g:1551:6: (lv_parameters_4_0= ruleExpressionRule )
+                    	    // InternalOptimisationLanguage.g:1552:7: lv_parameters_4_0= ruleExpressionRule
                     	    {
 
                     	    							newCompositeNode(grammarAccess.getCallRuleAccess().getParametersExpressionRuleParserRuleCall_2_1_1_0());
                     	    						
-                    	    pushFollow(FOLLOW_31);
+                    	    pushFollow(FOLLOW_30);
                     	    lv_parameters_4_0=ruleExpressionRule();
 
                     	    state._fsp--;
@@ -4222,7 +4056,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     	    break;
 
                     	default :
-                    	    break loop22;
+                    	    break loop21;
                         }
                     } while (true);
 
@@ -4232,7 +4066,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_5=(Token)match(input,38,FOLLOW_2); 
+            otherlv_5=(Token)match(input,37,FOLLOW_2); 
 
             			newLeafNode(otherlv_5, grammarAccess.getCallRuleAccess().getRightParenthesisKeyword_3());
             		
@@ -4259,7 +4093,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleValueReferenceRule"
-    // InternalOptimisationLanguage.g:1625:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
+    // InternalOptimisationLanguage.g:1579:1: entryRuleValueReferenceRule returns [EObject current=null] : iv_ruleValueReferenceRule= ruleValueReferenceRule EOF ;
     public final EObject entryRuleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
@@ -4267,8 +4101,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1625:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
-            // InternalOptimisationLanguage.g:1626:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
+            // InternalOptimisationLanguage.g:1579:59: (iv_ruleValueReferenceRule= ruleValueReferenceRule EOF )
+            // InternalOptimisationLanguage.g:1580:2: iv_ruleValueReferenceRule= ruleValueReferenceRule EOF
             {
              newCompositeNode(grammarAccess.getValueReferenceRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4295,40 +4129,32 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleValueReferenceRule"
-    // InternalOptimisationLanguage.g:1632:1: ruleValueReferenceRule returns [EObject current=null] : ( () otherlv_1= 'value' ) ;
+    // InternalOptimisationLanguage.g:1586:1: ruleValueReferenceRule returns [EObject current=null] : this_ConstantReferenceRule_0= ruleConstantReferenceRule ;
     public final EObject ruleValueReferenceRule() throws RecognitionException {
         EObject current = null;
 
-        Token otherlv_1=null;
+        EObject this_ConstantReferenceRule_0 = null;
+
 
 
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1638:2: ( ( () otherlv_1= 'value' ) )
-            // InternalOptimisationLanguage.g:1639:2: ( () otherlv_1= 'value' )
-            {
-            // InternalOptimisationLanguage.g:1639:2: ( () otherlv_1= 'value' )
-            // InternalOptimisationLanguage.g:1640:3: () otherlv_1= 'value'
+            // InternalOptimisationLanguage.g:1592:2: (this_ConstantReferenceRule_0= ruleConstantReferenceRule )
+            // InternalOptimisationLanguage.g:1593:2: this_ConstantReferenceRule_0= ruleConstantReferenceRule
             {
-            // InternalOptimisationLanguage.g:1640:3: ()
-            // InternalOptimisationLanguage.g:1641:4: 
-            {
-
-            				current = forceCreateModelElement(
-            					grammarAccess.getValueReferenceRuleAccess().getValueReferenceAction_0(),
-            					current);
-            			
-
-            }
 
-            otherlv_1=(Token)match(input,39,FOLLOW_2); 
+            		newCompositeNode(grammarAccess.getValueReferenceRuleAccess().getConstantReferenceRuleParserRuleCall());
+            	
+            pushFollow(FOLLOW_2);
+            this_ConstantReferenceRule_0=ruleConstantReferenceRule();
 
-            			newLeafNode(otherlv_1, grammarAccess.getValueReferenceRuleAccess().getValueKeyword_1());
-            		
+            state._fsp--;
 
-            }
 
+            		current = this_ConstantReferenceRule_0;
+            		afterParserOrEnumRuleCall();
+            	
 
             }
 
@@ -4348,17 +4174,112 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     // $ANTLR end "ruleValueReferenceRule"
 
 
-    // $ANTLR start "entryRuleLiteralRule"
-    // InternalOptimisationLanguage.g:1655:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
-    public final EObject entryRuleLiteralRule() throws RecognitionException {
+    // $ANTLR start "entryRuleConstantReferenceRule"
+    // InternalOptimisationLanguage.g:1604:1: entryRuleConstantReferenceRule returns [EObject current=null] : iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF ;
+    public final EObject entryRuleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleConstantReferenceRule = null;
+
+
+        try {
+            // InternalOptimisationLanguage.g:1604:62: (iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF )
+            // InternalOptimisationLanguage.g:1605:2: iv_ruleConstantReferenceRule= ruleConstantReferenceRule EOF
+            {
+             newCompositeNode(grammarAccess.getConstantReferenceRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleConstantReferenceRule=ruleConstantReferenceRule();
+
+            state._fsp--;
+
+             current =iv_ruleConstantReferenceRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleConstantReferenceRule"
+
+
+    // $ANTLR start "ruleConstantReferenceRule"
+    // InternalOptimisationLanguage.g:1611:1: ruleConstantReferenceRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    public final EObject ruleConstantReferenceRule() throws RecognitionException {
+        EObject current = null;
+
+
+        	enterRule();
+
+        try {
+            // InternalOptimisationLanguage.g:1617:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:1618:2: ( ( ruleQualifiedName ) )
+            {
+            // InternalOptimisationLanguage.g:1618:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:1619:3: ( ruleQualifiedName )
+            {
+            // InternalOptimisationLanguage.g:1619:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:1620:4: ruleQualifiedName
+            {
+
+            				if (current==null) {
+            					current = createModelElement(grammarAccess.getConstantReferenceRuleRule());
+            				}
+            			
+
+            				newCompositeNode(grammarAccess.getConstantReferenceRuleAccess().getDefinitionConstantDefinitionCrossReference_0());
+            			
+            pushFollow(FOLLOW_2);
+            ruleQualifiedName();
+
+            state._fsp--;
+
+
+            				afterParserOrEnumRuleCall();
+            			
+
+            }
+
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleConstantReferenceRule"
+
+
+    // $ANTLR start "entryRuleLiteralRule"
+    // InternalOptimisationLanguage.g:1637:1: entryRuleLiteralRule returns [EObject current=null] : iv_ruleLiteralRule= ruleLiteralRule EOF ;
+    public final EObject entryRuleLiteralRule() throws RecognitionException {
         EObject current = null;
 
         EObject iv_ruleLiteralRule = null;
 
 
         try {
-            // InternalOptimisationLanguage.g:1655:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1656:2: iv_ruleLiteralRule= ruleLiteralRule EOF
+            // InternalOptimisationLanguage.g:1637:52: (iv_ruleLiteralRule= ruleLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1638:2: iv_ruleLiteralRule= ruleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4385,7 +4306,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleLiteralRule"
-    // InternalOptimisationLanguage.g:1662:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
+    // InternalOptimisationLanguage.g:1644:1: ruleLiteralRule returns [EObject current=null] : (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) ;
     public final EObject ruleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4400,39 +4321,39 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1668:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
-            // InternalOptimisationLanguage.g:1669:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            // InternalOptimisationLanguage.g:1650:2: ( (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule ) )
+            // InternalOptimisationLanguage.g:1651:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
             {
-            // InternalOptimisationLanguage.g:1669:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
-            int alt24=3;
+            // InternalOptimisationLanguage.g:1651:2: (this_NumberLiteralRule_0= ruleNumberLiteralRule | this_StringLiteralRule_1= ruleStringLiteralRule | this_BooleanLiteralRule_2= ruleBooleanLiteralRule )
+            int alt23=3;
             switch ( input.LA(1) ) {
             case RULE_DOUBLE:
             case RULE_INT:
                 {
-                alt24=1;
+                alt23=1;
                 }
                 break;
             case RULE_STRING:
                 {
-                alt24=2;
+                alt23=2;
                 }
                 break;
-            case 40:
-            case 41:
+            case 38:
+            case 39:
                 {
-                alt24=3;
+                alt23=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 24, 0, input);
+                    new NoViableAltException("", 23, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt24) {
+            switch (alt23) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1670:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
+                    // InternalOptimisationLanguage.g:1652:3: this_NumberLiteralRule_0= ruleNumberLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getNumberLiteralRuleParserRuleCall_0());
@@ -4450,7 +4371,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1679:3: this_StringLiteralRule_1= ruleStringLiteralRule
+                    // InternalOptimisationLanguage.g:1661:3: this_StringLiteralRule_1= ruleStringLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getStringLiteralRuleParserRuleCall_1());
@@ -4468,7 +4389,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:1688:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
+                    // InternalOptimisationLanguage.g:1670:3: this_BooleanLiteralRule_2= ruleBooleanLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getLiteralRuleAccess().getBooleanLiteralRuleParserRuleCall_2());
@@ -4508,7 +4429,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleNumberLiteralRule"
-    // InternalOptimisationLanguage.g:1700:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
+    // InternalOptimisationLanguage.g:1682:1: entryRuleNumberLiteralRule returns [EObject current=null] : iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF ;
     public final EObject entryRuleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4516,8 +4437,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1700:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1701:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
+            // InternalOptimisationLanguage.g:1682:58: (iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1683:2: iv_ruleNumberLiteralRule= ruleNumberLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getNumberLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4544,7 +4465,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleNumberLiteralRule"
-    // InternalOptimisationLanguage.g:1707:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
+    // InternalOptimisationLanguage.g:1689:1: ruleNumberLiteralRule returns [EObject current=null] : (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) ;
     public final EObject ruleNumberLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4557,28 +4478,28 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1713:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
-            // InternalOptimisationLanguage.g:1714:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            // InternalOptimisationLanguage.g:1695:2: ( (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule ) )
+            // InternalOptimisationLanguage.g:1696:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
             {
-            // InternalOptimisationLanguage.g:1714:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
-            int alt25=2;
-            int LA25_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1696:2: (this_DoubleLiteralRule_0= ruleDoubleLiteralRule | this_IntegerLiteralRule_1= ruleIntegerLiteralRule )
+            int alt24=2;
+            int LA24_0 = input.LA(1);
 
-            if ( (LA25_0==RULE_DOUBLE) ) {
-                alt25=1;
+            if ( (LA24_0==RULE_DOUBLE) ) {
+                alt24=1;
             }
-            else if ( (LA25_0==RULE_INT) ) {
-                alt25=2;
+            else if ( (LA24_0==RULE_INT) ) {
+                alt24=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 25, 0, input);
+                    new NoViableAltException("", 24, 0, input);
 
                 throw nvae;
             }
-            switch (alt25) {
+            switch (alt24) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1715:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
+                    // InternalOptimisationLanguage.g:1697:3: this_DoubleLiteralRule_0= ruleDoubleLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getDoubleLiteralRuleParserRuleCall_0());
@@ -4596,7 +4517,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1724:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
+                    // InternalOptimisationLanguage.g:1706:3: this_IntegerLiteralRule_1= ruleIntegerLiteralRule
                     {
 
                     			newCompositeNode(grammarAccess.getNumberLiteralRuleAccess().getIntegerLiteralRuleParserRuleCall_1());
@@ -4636,7 +4557,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleDoubleLiteralRule"
-    // InternalOptimisationLanguage.g:1736:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
+    // InternalOptimisationLanguage.g:1718:1: entryRuleDoubleLiteralRule returns [EObject current=null] : iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF ;
     public final EObject entryRuleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4644,8 +4565,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1736:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1737:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
+            // InternalOptimisationLanguage.g:1718:58: (iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1719:2: iv_ruleDoubleLiteralRule= ruleDoubleLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getDoubleLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4672,7 +4593,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleDoubleLiteralRule"
-    // InternalOptimisationLanguage.g:1743:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalOptimisationLanguage.g:1725:1: ruleDoubleLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleDoubleLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4684,19 +4605,19 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1749:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalOptimisationLanguage.g:1750:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalOptimisationLanguage.g:1731:2: ( ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalOptimisationLanguage.g:1732:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalOptimisationLanguage.g:1750:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalOptimisationLanguage.g:1751:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalOptimisationLanguage.g:1732:2: ( ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalOptimisationLanguage.g:1733:3: ( (lv_literal_0_0= RULE_DOUBLE ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalOptimisationLanguage.g:1751:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
-            // InternalOptimisationLanguage.g:1752:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalOptimisationLanguage.g:1733:3: ( (lv_literal_0_0= RULE_DOUBLE ) )
+            // InternalOptimisationLanguage.g:1734:4: (lv_literal_0_0= RULE_DOUBLE )
             {
-            // InternalOptimisationLanguage.g:1752:4: (lv_literal_0_0= RULE_DOUBLE )
-            // InternalOptimisationLanguage.g:1753:5: lv_literal_0_0= RULE_DOUBLE
+            // InternalOptimisationLanguage.g:1734:4: (lv_literal_0_0= RULE_DOUBLE )
+            // InternalOptimisationLanguage.g:1735:5: lv_literal_0_0= RULE_DOUBLE
             {
-            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_32); 
+            lv_literal_0_0=(Token)match(input,RULE_DOUBLE,FOLLOW_31); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getDoubleLiteralRuleAccess().getLiteralDOUBLETerminalRuleCall_0_0());
             				
@@ -4716,19 +4637,19 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1769:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt26=2;
-            int LA26_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1751:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt25=2;
+            int LA25_0 = input.LA(1);
 
-            if ( ((LA26_0>=63 && LA26_0<=82)) ) {
-                alt26=1;
+            if ( ((LA25_0>=65 && LA25_0<=84)) ) {
+                alt25=1;
             }
-            switch (alt26) {
+            switch (alt25) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1770:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalOptimisationLanguage.g:1752:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalOptimisationLanguage.g:1770:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalOptimisationLanguage.g:1771:5: lv_factor_1_0= ruleFactorRule
+                    // InternalOptimisationLanguage.g:1752:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalOptimisationLanguage.g:1753:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getDoubleLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -4781,7 +4702,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleIntegerLiteralRule"
-    // InternalOptimisationLanguage.g:1792:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
+    // InternalOptimisationLanguage.g:1774:1: entryRuleIntegerLiteralRule returns [EObject current=null] : iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF ;
     public final EObject entryRuleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4789,8 +4710,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1792:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1793:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
+            // InternalOptimisationLanguage.g:1774:59: (iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1775:2: iv_ruleIntegerLiteralRule= ruleIntegerLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getIntegerLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4817,7 +4738,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleIntegerLiteralRule"
-    // InternalOptimisationLanguage.g:1799:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
+    // InternalOptimisationLanguage.g:1781:1: ruleIntegerLiteralRule returns [EObject current=null] : ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) ;
     public final EObject ruleIntegerLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4829,19 +4750,19 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1805:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
-            // InternalOptimisationLanguage.g:1806:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalOptimisationLanguage.g:1787:2: ( ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? ) )
+            // InternalOptimisationLanguage.g:1788:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
             {
-            // InternalOptimisationLanguage.g:1806:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
-            // InternalOptimisationLanguage.g:1807:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
+            // InternalOptimisationLanguage.g:1788:2: ( ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )? )
+            // InternalOptimisationLanguage.g:1789:3: ( (lv_literal_0_0= RULE_INT ) ) ( (lv_factor_1_0= ruleFactorRule ) )?
             {
-            // InternalOptimisationLanguage.g:1807:3: ( (lv_literal_0_0= RULE_INT ) )
-            // InternalOptimisationLanguage.g:1808:4: (lv_literal_0_0= RULE_INT )
+            // InternalOptimisationLanguage.g:1789:3: ( (lv_literal_0_0= RULE_INT ) )
+            // InternalOptimisationLanguage.g:1790:4: (lv_literal_0_0= RULE_INT )
             {
-            // InternalOptimisationLanguage.g:1808:4: (lv_literal_0_0= RULE_INT )
-            // InternalOptimisationLanguage.g:1809:5: lv_literal_0_0= RULE_INT
+            // InternalOptimisationLanguage.g:1790:4: (lv_literal_0_0= RULE_INT )
+            // InternalOptimisationLanguage.g:1791:5: lv_literal_0_0= RULE_INT
             {
-            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_32); 
+            lv_literal_0_0=(Token)match(input,RULE_INT,FOLLOW_31); 
 
             					newLeafNode(lv_literal_0_0, grammarAccess.getIntegerLiteralRuleAccess().getLiteralINTTerminalRuleCall_0_0());
             				
@@ -4861,19 +4782,19 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1825:3: ( (lv_factor_1_0= ruleFactorRule ) )?
-            int alt27=2;
-            int LA27_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1807:3: ( (lv_factor_1_0= ruleFactorRule ) )?
+            int alt26=2;
+            int LA26_0 = input.LA(1);
 
-            if ( ((LA27_0>=63 && LA27_0<=82)) ) {
-                alt27=1;
+            if ( ((LA26_0>=65 && LA26_0<=84)) ) {
+                alt26=1;
             }
-            switch (alt27) {
+            switch (alt26) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1826:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalOptimisationLanguage.g:1808:4: (lv_factor_1_0= ruleFactorRule )
                     {
-                    // InternalOptimisationLanguage.g:1826:4: (lv_factor_1_0= ruleFactorRule )
-                    // InternalOptimisationLanguage.g:1827:5: lv_factor_1_0= ruleFactorRule
+                    // InternalOptimisationLanguage.g:1808:4: (lv_factor_1_0= ruleFactorRule )
+                    // InternalOptimisationLanguage.g:1809:5: lv_factor_1_0= ruleFactorRule
                     {
 
                     					newCompositeNode(grammarAccess.getIntegerLiteralRuleAccess().getFactorFactorRuleEnumRuleCall_1_0());
@@ -4926,7 +4847,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleStringLiteralRule"
-    // InternalOptimisationLanguage.g:1848:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
+    // InternalOptimisationLanguage.g:1830:1: entryRuleStringLiteralRule returns [EObject current=null] : iv_ruleStringLiteralRule= ruleStringLiteralRule EOF ;
     public final EObject entryRuleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4934,8 +4855,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1848:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1849:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
+            // InternalOptimisationLanguage.g:1830:58: (iv_ruleStringLiteralRule= ruleStringLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1831:2: iv_ruleStringLiteralRule= ruleStringLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getStringLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -4962,7 +4883,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleStringLiteralRule"
-    // InternalOptimisationLanguage.g:1855:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
+    // InternalOptimisationLanguage.g:1837:1: ruleStringLiteralRule returns [EObject current=null] : ( (lv_value_0_0= RULE_STRING ) ) ;
     public final EObject ruleStringLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -4972,14 +4893,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1861:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
-            // InternalOptimisationLanguage.g:1862:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalOptimisationLanguage.g:1843:2: ( ( (lv_value_0_0= RULE_STRING ) ) )
+            // InternalOptimisationLanguage.g:1844:2: ( (lv_value_0_0= RULE_STRING ) )
             {
-            // InternalOptimisationLanguage.g:1862:2: ( (lv_value_0_0= RULE_STRING ) )
-            // InternalOptimisationLanguage.g:1863:3: (lv_value_0_0= RULE_STRING )
+            // InternalOptimisationLanguage.g:1844:2: ( (lv_value_0_0= RULE_STRING ) )
+            // InternalOptimisationLanguage.g:1845:3: (lv_value_0_0= RULE_STRING )
             {
-            // InternalOptimisationLanguage.g:1863:3: (lv_value_0_0= RULE_STRING )
-            // InternalOptimisationLanguage.g:1864:4: lv_value_0_0= RULE_STRING
+            // InternalOptimisationLanguage.g:1845:3: (lv_value_0_0= RULE_STRING )
+            // InternalOptimisationLanguage.g:1846:4: lv_value_0_0= RULE_STRING
             {
             lv_value_0_0=(Token)match(input,RULE_STRING,FOLLOW_2); 
 
@@ -5021,7 +4942,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleBooleanLiteralRule"
-    // InternalOptimisationLanguage.g:1883:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
+    // InternalOptimisationLanguage.g:1865:1: entryRuleBooleanLiteralRule returns [EObject current=null] : iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF ;
     public final EObject entryRuleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5029,8 +4950,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1883:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
-            // InternalOptimisationLanguage.g:1884:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
+            // InternalOptimisationLanguage.g:1865:59: (iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF )
+            // InternalOptimisationLanguage.g:1866:2: iv_ruleBooleanLiteralRule= ruleBooleanLiteralRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanLiteralRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5057,7 +4978,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleBooleanLiteralRule"
-    // InternalOptimisationLanguage.g:1890:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
+    // InternalOptimisationLanguage.g:1872:1: ruleBooleanLiteralRule returns [EObject current=null] : ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) ;
     public final EObject ruleBooleanLiteralRule() throws RecognitionException {
         EObject current = null;
 
@@ -5068,14 +4989,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1896:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
-            // InternalOptimisationLanguage.g:1897:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalOptimisationLanguage.g:1878:2: ( ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) ) )
+            // InternalOptimisationLanguage.g:1879:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
             {
-            // InternalOptimisationLanguage.g:1897:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
-            // InternalOptimisationLanguage.g:1898:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            // InternalOptimisationLanguage.g:1879:2: ( () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' ) )
+            // InternalOptimisationLanguage.g:1880:3: () ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
             {
-            // InternalOptimisationLanguage.g:1898:3: ()
-            // InternalOptimisationLanguage.g:1899:4: 
+            // InternalOptimisationLanguage.g:1880:3: ()
+            // InternalOptimisationLanguage.g:1881:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5085,33 +5006,33 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1905:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
-            int alt28=2;
-            int LA28_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:1887:3: ( ( (lv_value_1_0= 'true' ) ) | otherlv_2= 'false' )
+            int alt27=2;
+            int LA27_0 = input.LA(1);
 
-            if ( (LA28_0==40) ) {
-                alt28=1;
+            if ( (LA27_0==38) ) {
+                alt27=1;
             }
-            else if ( (LA28_0==41) ) {
-                alt28=2;
+            else if ( (LA27_0==39) ) {
+                alt27=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 28, 0, input);
+                    new NoViableAltException("", 27, 0, input);
 
                 throw nvae;
             }
-            switch (alt28) {
+            switch (alt27) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1906:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalOptimisationLanguage.g:1888:4: ( (lv_value_1_0= 'true' ) )
                     {
-                    // InternalOptimisationLanguage.g:1906:4: ( (lv_value_1_0= 'true' ) )
-                    // InternalOptimisationLanguage.g:1907:5: (lv_value_1_0= 'true' )
+                    // InternalOptimisationLanguage.g:1888:4: ( (lv_value_1_0= 'true' ) )
+                    // InternalOptimisationLanguage.g:1889:5: (lv_value_1_0= 'true' )
                     {
-                    // InternalOptimisationLanguage.g:1907:5: (lv_value_1_0= 'true' )
-                    // InternalOptimisationLanguage.g:1908:6: lv_value_1_0= 'true'
+                    // InternalOptimisationLanguage.g:1889:5: (lv_value_1_0= 'true' )
+                    // InternalOptimisationLanguage.g:1890:6: lv_value_1_0= 'true'
                     {
-                    lv_value_1_0=(Token)match(input,40,FOLLOW_2); 
+                    lv_value_1_0=(Token)match(input,38,FOLLOW_2); 
 
                     						newLeafNode(lv_value_1_0, grammarAccess.getBooleanLiteralRuleAccess().getValueTrueKeyword_1_0_0());
                     					
@@ -5131,9 +5052,9 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:1921:4: otherlv_2= 'false'
+                    // InternalOptimisationLanguage.g:1903:4: otherlv_2= 'false'
                     {
-                    otherlv_2=(Token)match(input,41,FOLLOW_2); 
+                    otherlv_2=(Token)match(input,39,FOLLOW_2); 
 
                     				newLeafNode(otherlv_2, grammarAccess.getBooleanLiteralRuleAccess().getFalseKeyword_1_1());
                     			
@@ -5165,8 +5086,265 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     // $ANTLR end "ruleBooleanLiteralRule"
 
 
+    // $ANTLR start "entryRuleTypeDefinitionRule"
+    // InternalOptimisationLanguage.g:1912:1: entryRuleTypeDefinitionRule returns [EObject current=null] : iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF ;
+    public final EObject entryRuleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        EObject iv_ruleTypeDefinitionRule = null;
+
+
+        try {
+            // InternalOptimisationLanguage.g:1912:59: (iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF )
+            // InternalOptimisationLanguage.g:1913:2: iv_ruleTypeDefinitionRule= ruleTypeDefinitionRule EOF
+            {
+             newCompositeNode(grammarAccess.getTypeDefinitionRuleRule()); 
+            pushFollow(FOLLOW_1);
+            iv_ruleTypeDefinitionRule=ruleTypeDefinitionRule();
+
+            state._fsp--;
+
+             current =iv_ruleTypeDefinitionRule; 
+            match(input,EOF,FOLLOW_2); 
+
+            }
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "entryRuleTypeDefinitionRule"
+
+
+    // $ANTLR start "ruleTypeDefinitionRule"
+    // InternalOptimisationLanguage.g:1919:1: ruleTypeDefinitionRule returns [EObject current=null] : ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) ;
+    public final EObject ruleTypeDefinitionRule() throws RecognitionException {
+        EObject current = null;
+
+        Token lv_abstract_0_0=null;
+        Token otherlv_1=null;
+        Token otherlv_3=null;
+        Token otherlv_5=null;
+        Token otherlv_7=null;
+        AntlrDatatypeRuleToken lv_name_2_0 = null;
+
+        EObject lv_attributes_6_0 = null;
+
+
+
+        	enterRule();
+
+        try {
+            // InternalOptimisationLanguage.g:1925:2: ( ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' ) )
+            // InternalOptimisationLanguage.g:1926:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            {
+            // InternalOptimisationLanguage.g:1926:2: ( ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}' )
+            // InternalOptimisationLanguage.g:1927:3: ( (lv_abstract_0_0= 'abstract' ) )? otherlv_1= 'type' ( (lv_name_2_0= ruleStringOrId ) ) (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )? otherlv_5= '{' ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )* otherlv_7= '}'
+            {
+            // InternalOptimisationLanguage.g:1927:3: ( (lv_abstract_0_0= 'abstract' ) )?
+            int alt28=2;
+            int LA28_0 = input.LA(1);
+
+            if ( (LA28_0==40) ) {
+                alt28=1;
+            }
+            switch (alt28) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:1928:4: (lv_abstract_0_0= 'abstract' )
+                    {
+                    // InternalOptimisationLanguage.g:1928:4: (lv_abstract_0_0= 'abstract' )
+                    // InternalOptimisationLanguage.g:1929:5: lv_abstract_0_0= 'abstract'
+                    {
+                    lv_abstract_0_0=(Token)match(input,40,FOLLOW_32); 
+
+                    					newLeafNode(lv_abstract_0_0, grammarAccess.getTypeDefinitionRuleAccess().getAbstractAbstractKeyword_0_0());
+                    				
+
+                    					if (current==null) {
+                    						current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    					}
+                    					setWithLastConsumed(current, "abstract", lv_abstract_0_0 != null, "abstract");
+                    				
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_1=(Token)match(input,41,FOLLOW_5); 
+
+            			newLeafNode(otherlv_1, grammarAccess.getTypeDefinitionRuleAccess().getTypeKeyword_1());
+            		
+            // InternalOptimisationLanguage.g:1945:3: ( (lv_name_2_0= ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:1946:4: (lv_name_2_0= ruleStringOrId )
+            {
+            // InternalOptimisationLanguage.g:1946:4: (lv_name_2_0= ruleStringOrId )
+            // InternalOptimisationLanguage.g:1947:5: lv_name_2_0= ruleStringOrId
+            {
+
+            					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_2_0());
+            				
+            pushFollow(FOLLOW_33);
+            lv_name_2_0=ruleStringOrId();
+
+            state._fsp--;
+
+
+            					if (current==null) {
+            						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            					}
+            					set(
+            						current,
+            						"name",
+            						lv_name_2_0,
+            						"de.evoal.languages.model.base.dsl.BaseLanguage.StringOrId");
+            					afterParserOrEnumRuleCall();
+            				
+
+            }
+
+
+            }
+
+            // InternalOptimisationLanguage.g:1964:3: (otherlv_3= 'extends' ( ( ruleQualifiedName ) ) )?
+            int alt29=2;
+            int LA29_0 = input.LA(1);
+
+            if ( (LA29_0==42) ) {
+                alt29=1;
+            }
+            switch (alt29) {
+                case 1 :
+                    // InternalOptimisationLanguage.g:1965:4: otherlv_3= 'extends' ( ( ruleQualifiedName ) )
+                    {
+                    otherlv_3=(Token)match(input,42,FOLLOW_5); 
+
+                    				newLeafNode(otherlv_3, grammarAccess.getTypeDefinitionRuleAccess().getExtendsKeyword_3_0());
+                    			
+                    // InternalOptimisationLanguage.g:1969:4: ( ( ruleQualifiedName ) )
+                    // InternalOptimisationLanguage.g:1970:5: ( ruleQualifiedName )
+                    {
+                    // InternalOptimisationLanguage.g:1970:5: ( ruleQualifiedName )
+                    // InternalOptimisationLanguage.g:1971:6: ruleQualifiedName
+                    {
+
+                    						if (current==null) {
+                    							current = createModelElement(grammarAccess.getTypeDefinitionRuleRule());
+                    						}
+                    					
+
+                    						newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getSuperTypeTypeDefinitionCrossReference_3_1_0());
+                    					
+                    pushFollow(FOLLOW_34);
+                    ruleQualifiedName();
+
+                    state._fsp--;
+
+
+                    						afterParserOrEnumRuleCall();
+                    					
+
+                    }
+
+
+                    }
+
+
+                    }
+                    break;
+
+            }
+
+            otherlv_5=(Token)match(input,25,FOLLOW_15); 
+
+            			newLeafNode(otherlv_5, grammarAccess.getTypeDefinitionRuleAccess().getLeftCurlyBracketKeyword_4());
+            		
+            // InternalOptimisationLanguage.g:1990:3: ( (lv_attributes_6_0= ruleAttributeDefinitionRule ) )*
+            loop30:
+            do {
+                int alt30=2;
+                int LA30_0 = input.LA(1);
+
+                if ( ((LA30_0>=RULE_QUOTED_ID && LA30_0<=RULE_ID)) ) {
+                    alt30=1;
+                }
+
+
+                switch (alt30) {
+            	case 1 :
+            	    // InternalOptimisationLanguage.g:1991:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    {
+            	    // InternalOptimisationLanguage.g:1991:4: (lv_attributes_6_0= ruleAttributeDefinitionRule )
+            	    // InternalOptimisationLanguage.g:1992:5: lv_attributes_6_0= ruleAttributeDefinitionRule
+            	    {
+
+            	    					newCompositeNode(grammarAccess.getTypeDefinitionRuleAccess().getAttributesAttributeDefinitionRuleParserRuleCall_5_0());
+            	    				
+            	    pushFollow(FOLLOW_15);
+            	    lv_attributes_6_0=ruleAttributeDefinitionRule();
+
+            	    state._fsp--;
+
+
+            	    					if (current==null) {
+            	    						current = createModelElementForParent(grammarAccess.getTypeDefinitionRuleRule());
+            	    					}
+            	    					add(
+            	    						current,
+            	    						"attributes",
+            	    						lv_attributes_6_0,
+            	    						"de.evoal.languages.model.base.dsl.BaseLanguage.AttributeDefinitionRule");
+            	    					afterParserOrEnumRuleCall();
+            	    				
+
+            	    }
+
+
+            	    }
+            	    break;
+
+            	default :
+            	    break loop30;
+                }
+            } while (true);
+
+            otherlv_7=(Token)match(input,26,FOLLOW_2); 
+
+            			newLeafNode(otherlv_7, grammarAccess.getTypeDefinitionRuleAccess().getRightCurlyBracketKeyword_6());
+            		
+
+            }
+
+
+            }
+
+
+            	leaveRule();
+
+        }
+
+            catch (RecognitionException re) {
+                recover(input,re);
+                appendSkippedTokens();
+            }
+        finally {
+        }
+        return current;
+    }
+    // $ANTLR end "ruleTypeDefinitionRule"
+
+
     // $ANTLR start "entryRuleAttributeDefinitionRule"
-    // InternalOptimisationLanguage.g:1930:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
+    // InternalOptimisationLanguage.g:2017:1: entryRuleAttributeDefinitionRule returns [EObject current=null] : iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF ;
     public final EObject entryRuleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5174,8 +5352,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:1930:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
-            // InternalOptimisationLanguage.g:1931:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
+            // InternalOptimisationLanguage.g:2017:64: (iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF )
+            // InternalOptimisationLanguage.g:2018:2: iv_ruleAttributeDefinitionRule= ruleAttributeDefinitionRule EOF
             {
              newCompositeNode(grammarAccess.getAttributeDefinitionRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5202,7 +5380,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleAttributeDefinitionRule"
-    // InternalOptimisationLanguage.g:1937:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
+    // InternalOptimisationLanguage.g:2024:1: ruleAttributeDefinitionRule returns [EObject current=null] : ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) ;
     public final EObject ruleAttributeDefinitionRule() throws RecognitionException {
         EObject current = null;
 
@@ -5220,22 +5398,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:1943:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
-            // InternalOptimisationLanguage.g:1944:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalOptimisationLanguage.g:2030:2: ( ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' ) )
+            // InternalOptimisationLanguage.g:2031:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
             {
-            // InternalOptimisationLanguage.g:1944:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
-            // InternalOptimisationLanguage.g:1945:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
+            // InternalOptimisationLanguage.g:2031:2: ( ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';' )
+            // InternalOptimisationLanguage.g:2032:3: ( (lv_name_0_0= ruleStringOrId ) ) otherlv_1= ':' ( (lv_type_2_0= ruleTypeRule ) ) (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )? otherlv_5= ';'
             {
-            // InternalOptimisationLanguage.g:1945:3: ( (lv_name_0_0= ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:1946:4: (lv_name_0_0= ruleStringOrId )
+            // InternalOptimisationLanguage.g:2032:3: ( (lv_name_0_0= ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:2033:4: (lv_name_0_0= ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:1946:4: (lv_name_0_0= ruleStringOrId )
-            // InternalOptimisationLanguage.g:1947:5: lv_name_0_0= ruleStringOrId
+            // InternalOptimisationLanguage.g:2033:4: (lv_name_0_0= ruleStringOrId )
+            // InternalOptimisationLanguage.g:2034:5: lv_name_0_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getNameStringOrIdParserRuleCall_0_0());
             				
-            pushFollow(FOLLOW_33);
+            pushFollow(FOLLOW_35);
             lv_name_0_0=ruleStringOrId();
 
             state._fsp--;
@@ -5257,20 +5435,20 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,42,FOLLOW_34); 
+            otherlv_1=(Token)match(input,43,FOLLOW_36); 
 
             			newLeafNode(otherlv_1, grammarAccess.getAttributeDefinitionRuleAccess().getColonKeyword_1());
             		
-            // InternalOptimisationLanguage.g:1968:3: ( (lv_type_2_0= ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:1969:4: (lv_type_2_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2055:3: ( (lv_type_2_0= ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:2056:4: (lv_type_2_0= ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:1969:4: (lv_type_2_0= ruleTypeRule )
-            // InternalOptimisationLanguage.g:1970:5: lv_type_2_0= ruleTypeRule
+            // InternalOptimisationLanguage.g:2056:4: (lv_type_2_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2057:5: lv_type_2_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getTypeTypeRuleParserRuleCall_2_0());
             				
-            pushFollow(FOLLOW_35);
+            pushFollow(FOLLOW_37);
             lv_type_2_0=ruleTypeRule();
 
             state._fsp--;
@@ -5292,26 +5470,26 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:1987:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
-            int alt29=2;
-            int LA29_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:2074:3: (otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) ) )?
+            int alt31=2;
+            int LA31_0 = input.LA(1);
 
-            if ( (LA29_0==20) ) {
-                alt29=1;
+            if ( (LA31_0==20) ) {
+                alt31=1;
             }
-            switch (alt29) {
+            switch (alt31) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:1988:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalOptimisationLanguage.g:2075:4: otherlv_3= ':=' ( (lv_initialisation_4_0= ruleExpressionRule ) )
                     {
-                    otherlv_3=(Token)match(input,20,FOLLOW_21); 
+                    otherlv_3=(Token)match(input,20,FOLLOW_20); 
 
                     				newLeafNode(otherlv_3, grammarAccess.getAttributeDefinitionRuleAccess().getColonEqualsSignKeyword_3_0());
                     			
-                    // InternalOptimisationLanguage.g:1992:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
-                    // InternalOptimisationLanguage.g:1993:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalOptimisationLanguage.g:2079:4: ( (lv_initialisation_4_0= ruleExpressionRule ) )
+                    // InternalOptimisationLanguage.g:2080:5: (lv_initialisation_4_0= ruleExpressionRule )
                     {
-                    // InternalOptimisationLanguage.g:1993:5: (lv_initialisation_4_0= ruleExpressionRule )
-                    // InternalOptimisationLanguage.g:1994:6: lv_initialisation_4_0= ruleExpressionRule
+                    // InternalOptimisationLanguage.g:2080:5: (lv_initialisation_4_0= ruleExpressionRule )
+                    // InternalOptimisationLanguage.g:2081:6: lv_initialisation_4_0= ruleExpressionRule
                     {
 
                     						newCompositeNode(grammarAccess.getAttributeDefinitionRuleAccess().getInitialisationExpressionRuleParserRuleCall_3_1_0());
@@ -5371,7 +5549,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleTypeRule"
-    // InternalOptimisationLanguage.g:2020:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2107:1: entryRuleTypeRule returns [EObject current=null] : iv_ruleTypeRule= ruleTypeRule EOF ;
     public final EObject entryRuleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5379,8 +5557,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2020:49: (iv_ruleTypeRule= ruleTypeRule EOF )
-            // InternalOptimisationLanguage.g:2021:2: iv_ruleTypeRule= ruleTypeRule EOF
+            // InternalOptimisationLanguage.g:2107:49: (iv_ruleTypeRule= ruleTypeRule EOF )
+            // InternalOptimisationLanguage.g:2108:2: iv_ruleTypeRule= ruleTypeRule EOF
             {
              newCompositeNode(grammarAccess.getTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5407,7 +5585,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleTypeRule"
-    // InternalOptimisationLanguage.g:2027:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
+    // InternalOptimisationLanguage.g:2114:1: ruleTypeRule returns [EObject current=null] : (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) ;
     public final EObject ruleTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5436,72 +5614,72 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2033:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
-            // InternalOptimisationLanguage.g:2034:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            // InternalOptimisationLanguage.g:2120:2: ( (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule ) )
+            // InternalOptimisationLanguage.g:2121:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
             {
-            // InternalOptimisationLanguage.g:2034:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
-            int alt30=10;
+            // InternalOptimisationLanguage.g:2121:2: (this_StringTypeRule_0= ruleStringTypeRule | this_IntTypeRule_1= ruleIntTypeRule | this_FloatTypeRule_2= ruleFloatTypeRule | this_BooleanTypeRule_3= ruleBooleanTypeRule | this_LiteralTypeRule_4= ruleLiteralTypeRule | this_ArrayTypeRule_5= ruleArrayTypeRule | this_InstanceTypeRule_6= ruleInstanceTypeRule | this_VoidTypeRule_7= ruleVoidTypeRule | this_ExpressionTypeRule_8= ruleExpressionTypeRule | this_DataTypeRule_9= ruleDataTypeRule )
+            int alt32=10;
             switch ( input.LA(1) ) {
-            case 45:
+            case 46:
                 {
-                alt30=1;
+                alt32=1;
                 }
                 break;
-            case 47:
+            case 48:
                 {
-                alt30=2;
+                alt32=2;
                 }
                 break;
-            case 48:
+            case 49:
                 {
-                alt30=3;
+                alt32=3;
                 }
                 break;
-            case 49:
+            case 50:
                 {
-                alt30=4;
+                alt32=4;
                 }
                 break;
-            case 43:
+            case 44:
                 {
-                alt30=5;
+                alt32=5;
                 }
                 break;
-            case 51:
+            case 52:
                 {
-                alt30=6;
+                alt32=6;
                 }
                 break;
             case 21:
                 {
-                alt30=7;
+                alt32=7;
                 }
                 break;
-            case 50:
+            case 51:
                 {
-                alt30=8;
+                alt32=8;
                 }
                 break;
-            case 46:
+            case 47:
                 {
-                alt30=9;
+                alt32=9;
                 }
                 break;
             case 30:
                 {
-                alt30=10;
+                alt32=10;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 30, 0, input);
+                    new NoViableAltException("", 32, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt30) {
+            switch (alt32) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2035:3: this_StringTypeRule_0= ruleStringTypeRule
+                    // InternalOptimisationLanguage.g:2122:3: this_StringTypeRule_0= ruleStringTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getStringTypeRuleParserRuleCall_0());
@@ -5519,7 +5697,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2044:3: this_IntTypeRule_1= ruleIntTypeRule
+                    // InternalOptimisationLanguage.g:2131:3: this_IntTypeRule_1= ruleIntTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getIntTypeRuleParserRuleCall_1());
@@ -5537,7 +5715,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:2053:3: this_FloatTypeRule_2= ruleFloatTypeRule
+                    // InternalOptimisationLanguage.g:2140:3: this_FloatTypeRule_2= ruleFloatTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getFloatTypeRuleParserRuleCall_2());
@@ -5555,7 +5733,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:2062:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
+                    // InternalOptimisationLanguage.g:2149:3: this_BooleanTypeRule_3= ruleBooleanTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getBooleanTypeRuleParserRuleCall_3());
@@ -5573,7 +5751,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:2071:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
+                    // InternalOptimisationLanguage.g:2158:3: this_LiteralTypeRule_4= ruleLiteralTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getLiteralTypeRuleParserRuleCall_4());
@@ -5591,7 +5769,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:2080:3: this_ArrayTypeRule_5= ruleArrayTypeRule
+                    // InternalOptimisationLanguage.g:2167:3: this_ArrayTypeRule_5= ruleArrayTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getArrayTypeRuleParserRuleCall_5());
@@ -5609,7 +5787,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 7 :
-                    // InternalOptimisationLanguage.g:2089:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
+                    // InternalOptimisationLanguage.g:2176:3: this_InstanceTypeRule_6= ruleInstanceTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getInstanceTypeRuleParserRuleCall_6());
@@ -5627,7 +5805,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 8 :
-                    // InternalOptimisationLanguage.g:2098:3: this_VoidTypeRule_7= ruleVoidTypeRule
+                    // InternalOptimisationLanguage.g:2185:3: this_VoidTypeRule_7= ruleVoidTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getVoidTypeRuleParserRuleCall_7());
@@ -5645,7 +5823,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 9 :
-                    // InternalOptimisationLanguage.g:2107:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
+                    // InternalOptimisationLanguage.g:2194:3: this_ExpressionTypeRule_8= ruleExpressionTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getExpressionTypeRuleParserRuleCall_8());
@@ -5663,7 +5841,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 10 :
-                    // InternalOptimisationLanguage.g:2116:3: this_DataTypeRule_9= ruleDataTypeRule
+                    // InternalOptimisationLanguage.g:2203:3: this_DataTypeRule_9= ruleDataTypeRule
                     {
 
                     			newCompositeNode(grammarAccess.getTypeRuleAccess().getDataTypeRuleParserRuleCall_9());
@@ -5703,7 +5881,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleLiteralTypeRule"
-    // InternalOptimisationLanguage.g:2128:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2215:1: entryRuleLiteralTypeRule returns [EObject current=null] : iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF ;
     public final EObject entryRuleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5711,8 +5889,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2128:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
-            // InternalOptimisationLanguage.g:2129:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
+            // InternalOptimisationLanguage.g:2215:56: (iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF )
+            // InternalOptimisationLanguage.g:2216:2: iv_ruleLiteralTypeRule= ruleLiteralTypeRule EOF
             {
              newCompositeNode(grammarAccess.getLiteralTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5739,7 +5917,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleLiteralTypeRule"
-    // InternalOptimisationLanguage.g:2135:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
+    // InternalOptimisationLanguage.g:2222:1: ruleLiteralTypeRule returns [EObject current=null] : ( () otherlv_1= 'literal' ) ;
     public final EObject ruleLiteralTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5749,14 +5927,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2141:2: ( ( () otherlv_1= 'literal' ) )
-            // InternalOptimisationLanguage.g:2142:2: ( () otherlv_1= 'literal' )
+            // InternalOptimisationLanguage.g:2228:2: ( ( () otherlv_1= 'literal' ) )
+            // InternalOptimisationLanguage.g:2229:2: ( () otherlv_1= 'literal' )
             {
-            // InternalOptimisationLanguage.g:2142:2: ( () otherlv_1= 'literal' )
-            // InternalOptimisationLanguage.g:2143:3: () otherlv_1= 'literal'
+            // InternalOptimisationLanguage.g:2229:2: ( () otherlv_1= 'literal' )
+            // InternalOptimisationLanguage.g:2230:3: () otherlv_1= 'literal'
             {
-            // InternalOptimisationLanguage.g:2143:3: ()
-            // InternalOptimisationLanguage.g:2144:4: 
+            // InternalOptimisationLanguage.g:2230:3: ()
+            // InternalOptimisationLanguage.g:2231:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5766,7 +5944,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,43,FOLLOW_2); 
+            otherlv_1=(Token)match(input,44,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getLiteralTypeRuleAccess().getLiteralKeyword_1());
             		
@@ -5793,7 +5971,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleInstanceTypeRule"
-    // InternalOptimisationLanguage.g:2158:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2245:1: entryRuleInstanceTypeRule returns [EObject current=null] : iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF ;
     public final EObject entryRuleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5801,8 +5979,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2158:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
-            // InternalOptimisationLanguage.g:2159:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
+            // InternalOptimisationLanguage.g:2245:57: (iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF )
+            // InternalOptimisationLanguage.g:2246:2: iv_ruleInstanceTypeRule= ruleInstanceTypeRule EOF
             {
              newCompositeNode(grammarAccess.getInstanceTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -5829,7 +6007,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleInstanceTypeRule"
-    // InternalOptimisationLanguage.g:2165:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
+    // InternalOptimisationLanguage.g:2252:1: ruleInstanceTypeRule returns [EObject current=null] : ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) ;
     public final EObject ruleInstanceTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5840,14 +6018,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2171:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
-            // InternalOptimisationLanguage.g:2172:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalOptimisationLanguage.g:2258:2: ( ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* ) )
+            // InternalOptimisationLanguage.g:2259:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
             {
-            // InternalOptimisationLanguage.g:2172:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
-            // InternalOptimisationLanguage.g:2173:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            // InternalOptimisationLanguage.g:2259:2: ( () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )* )
+            // InternalOptimisationLanguage.g:2260:3: () otherlv_1= 'instance' ( ( ruleQualifiedName ) ) (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
             {
-            // InternalOptimisationLanguage.g:2173:3: ()
-            // InternalOptimisationLanguage.g:2174:4: 
+            // InternalOptimisationLanguage.g:2260:3: ()
+            // InternalOptimisationLanguage.g:2261:4: 
             {
 
             				current = forceCreateModelElement(
@@ -5861,11 +6039,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             			newLeafNode(otherlv_1, grammarAccess.getInstanceTypeRuleAccess().getInstanceKeyword_1());
             		
-            // InternalOptimisationLanguage.g:2184:3: ( ( ruleQualifiedName ) )
-            // InternalOptimisationLanguage.g:2185:4: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:2271:3: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:2272:4: ( ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:2185:4: ( ruleQualifiedName )
-            // InternalOptimisationLanguage.g:2186:5: ruleQualifiedName
+            // InternalOptimisationLanguage.g:2272:4: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:2273:5: ruleQualifiedName
             {
 
             					if (current==null) {
@@ -5875,7 +6053,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             					newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_2_0());
             				
-            pushFollow(FOLLOW_36);
+            pushFollow(FOLLOW_38);
             ruleQualifiedName();
 
             state._fsp--;
@@ -5889,30 +6067,30 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:2200:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
-            loop31:
+            // InternalOptimisationLanguage.g:2287:3: (otherlv_3= '|' ( ( ruleQualifiedName ) ) )*
+            loop33:
             do {
-                int alt31=2;
-                int LA31_0 = input.LA(1);
+                int alt33=2;
+                int LA33_0 = input.LA(1);
 
-                if ( (LA31_0==44) ) {
-                    alt31=1;
+                if ( (LA33_0==45) ) {
+                    alt33=1;
                 }
 
 
-                switch (alt31) {
+                switch (alt33) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2201:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
+            	    // InternalOptimisationLanguage.g:2288:4: otherlv_3= '|' ( ( ruleQualifiedName ) )
             	    {
-            	    otherlv_3=(Token)match(input,44,FOLLOW_5); 
+            	    otherlv_3=(Token)match(input,45,FOLLOW_5); 
 
             	    				newLeafNode(otherlv_3, grammarAccess.getInstanceTypeRuleAccess().getVerticalLineKeyword_3_0());
             	    			
-            	    // InternalOptimisationLanguage.g:2205:4: ( ( ruleQualifiedName ) )
-            	    // InternalOptimisationLanguage.g:2206:5: ( ruleQualifiedName )
+            	    // InternalOptimisationLanguage.g:2292:4: ( ( ruleQualifiedName ) )
+            	    // InternalOptimisationLanguage.g:2293:5: ( ruleQualifiedName )
             	    {
-            	    // InternalOptimisationLanguage.g:2206:5: ( ruleQualifiedName )
-            	    // InternalOptimisationLanguage.g:2207:6: ruleQualifiedName
+            	    // InternalOptimisationLanguage.g:2293:5: ( ruleQualifiedName )
+            	    // InternalOptimisationLanguage.g:2294:6: ruleQualifiedName
             	    {
 
             	    						if (current==null) {
@@ -5922,7 +6100,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             	    						newCompositeNode(grammarAccess.getInstanceTypeRuleAccess().getDefinitionsTypeDefinitionCrossReference_3_1_0());
             	    					
-            	    pushFollow(FOLLOW_36);
+            	    pushFollow(FOLLOW_38);
             	    ruleQualifiedName();
 
             	    state._fsp--;
@@ -5941,7 +6119,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop31;
+            	    break loop33;
                 }
             } while (true);
 
@@ -5968,7 +6146,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleStringTypeRule"
-    // InternalOptimisationLanguage.g:2226:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2313:1: entryRuleStringTypeRule returns [EObject current=null] : iv_ruleStringTypeRule= ruleStringTypeRule EOF ;
     public final EObject entryRuleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -5976,8 +6154,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2226:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
-            // InternalOptimisationLanguage.g:2227:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
+            // InternalOptimisationLanguage.g:2313:55: (iv_ruleStringTypeRule= ruleStringTypeRule EOF )
+            // InternalOptimisationLanguage.g:2314:2: iv_ruleStringTypeRule= ruleStringTypeRule EOF
             {
              newCompositeNode(grammarAccess.getStringTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6004,7 +6182,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleStringTypeRule"
-    // InternalOptimisationLanguage.g:2233:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
+    // InternalOptimisationLanguage.g:2320:1: ruleStringTypeRule returns [EObject current=null] : ( () otherlv_1= 'string' ) ;
     public final EObject ruleStringTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6014,14 +6192,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2239:2: ( ( () otherlv_1= 'string' ) )
-            // InternalOptimisationLanguage.g:2240:2: ( () otherlv_1= 'string' )
+            // InternalOptimisationLanguage.g:2326:2: ( ( () otherlv_1= 'string' ) )
+            // InternalOptimisationLanguage.g:2327:2: ( () otherlv_1= 'string' )
             {
-            // InternalOptimisationLanguage.g:2240:2: ( () otherlv_1= 'string' )
-            // InternalOptimisationLanguage.g:2241:3: () otherlv_1= 'string'
+            // InternalOptimisationLanguage.g:2327:2: ( () otherlv_1= 'string' )
+            // InternalOptimisationLanguage.g:2328:3: () otherlv_1= 'string'
             {
-            // InternalOptimisationLanguage.g:2241:3: ()
-            // InternalOptimisationLanguage.g:2242:4: 
+            // InternalOptimisationLanguage.g:2328:3: ()
+            // InternalOptimisationLanguage.g:2329:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6031,7 +6209,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,45,FOLLOW_2); 
+            otherlv_1=(Token)match(input,46,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getStringTypeRuleAccess().getStringKeyword_1());
             		
@@ -6058,7 +6236,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleExpressionTypeRule"
-    // InternalOptimisationLanguage.g:2256:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2343:1: entryRuleExpressionTypeRule returns [EObject current=null] : iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF ;
     public final EObject entryRuleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6066,8 +6244,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2256:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
-            // InternalOptimisationLanguage.g:2257:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
+            // InternalOptimisationLanguage.g:2343:59: (iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF )
+            // InternalOptimisationLanguage.g:2344:2: iv_ruleExpressionTypeRule= ruleExpressionTypeRule EOF
             {
              newCompositeNode(grammarAccess.getExpressionTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6094,7 +6272,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleExpressionTypeRule"
-    // InternalOptimisationLanguage.g:2263:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
+    // InternalOptimisationLanguage.g:2350:1: ruleExpressionTypeRule returns [EObject current=null] : ( () otherlv_1= 'expression' ) ;
     public final EObject ruleExpressionTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6104,14 +6282,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2269:2: ( ( () otherlv_1= 'expression' ) )
-            // InternalOptimisationLanguage.g:2270:2: ( () otherlv_1= 'expression' )
+            // InternalOptimisationLanguage.g:2356:2: ( ( () otherlv_1= 'expression' ) )
+            // InternalOptimisationLanguage.g:2357:2: ( () otherlv_1= 'expression' )
             {
-            // InternalOptimisationLanguage.g:2270:2: ( () otherlv_1= 'expression' )
-            // InternalOptimisationLanguage.g:2271:3: () otherlv_1= 'expression'
+            // InternalOptimisationLanguage.g:2357:2: ( () otherlv_1= 'expression' )
+            // InternalOptimisationLanguage.g:2358:3: () otherlv_1= 'expression'
             {
-            // InternalOptimisationLanguage.g:2271:3: ()
-            // InternalOptimisationLanguage.g:2272:4: 
+            // InternalOptimisationLanguage.g:2358:3: ()
+            // InternalOptimisationLanguage.g:2359:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6121,7 +6299,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,46,FOLLOW_2); 
+            otherlv_1=(Token)match(input,47,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getExpressionTypeRuleAccess().getExpressionKeyword_1());
             		
@@ -6148,7 +6326,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleIntTypeRule"
-    // InternalOptimisationLanguage.g:2286:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2373:1: entryRuleIntTypeRule returns [EObject current=null] : iv_ruleIntTypeRule= ruleIntTypeRule EOF ;
     public final EObject entryRuleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6156,8 +6334,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2286:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
-            // InternalOptimisationLanguage.g:2287:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
+            // InternalOptimisationLanguage.g:2373:52: (iv_ruleIntTypeRule= ruleIntTypeRule EOF )
+            // InternalOptimisationLanguage.g:2374:2: iv_ruleIntTypeRule= ruleIntTypeRule EOF
             {
              newCompositeNode(grammarAccess.getIntTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6184,7 +6362,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleIntTypeRule"
-    // InternalOptimisationLanguage.g:2293:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
+    // InternalOptimisationLanguage.g:2380:1: ruleIntTypeRule returns [EObject current=null] : ( () otherlv_1= 'int' ) ;
     public final EObject ruleIntTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6194,14 +6372,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2299:2: ( ( () otherlv_1= 'int' ) )
-            // InternalOptimisationLanguage.g:2300:2: ( () otherlv_1= 'int' )
+            // InternalOptimisationLanguage.g:2386:2: ( ( () otherlv_1= 'int' ) )
+            // InternalOptimisationLanguage.g:2387:2: ( () otherlv_1= 'int' )
             {
-            // InternalOptimisationLanguage.g:2300:2: ( () otherlv_1= 'int' )
-            // InternalOptimisationLanguage.g:2301:3: () otherlv_1= 'int'
+            // InternalOptimisationLanguage.g:2387:2: ( () otherlv_1= 'int' )
+            // InternalOptimisationLanguage.g:2388:3: () otherlv_1= 'int'
             {
-            // InternalOptimisationLanguage.g:2301:3: ()
-            // InternalOptimisationLanguage.g:2302:4: 
+            // InternalOptimisationLanguage.g:2388:3: ()
+            // InternalOptimisationLanguage.g:2389:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6211,7 +6389,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,47,FOLLOW_2); 
+            otherlv_1=(Token)match(input,48,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getIntTypeRuleAccess().getIntKeyword_1());
             		
@@ -6238,7 +6416,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleFloatTypeRule"
-    // InternalOptimisationLanguage.g:2316:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2403:1: entryRuleFloatTypeRule returns [EObject current=null] : iv_ruleFloatTypeRule= ruleFloatTypeRule EOF ;
     public final EObject entryRuleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6246,8 +6424,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2316:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
-            // InternalOptimisationLanguage.g:2317:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
+            // InternalOptimisationLanguage.g:2403:54: (iv_ruleFloatTypeRule= ruleFloatTypeRule EOF )
+            // InternalOptimisationLanguage.g:2404:2: iv_ruleFloatTypeRule= ruleFloatTypeRule EOF
             {
              newCompositeNode(grammarAccess.getFloatTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6274,7 +6452,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleFloatTypeRule"
-    // InternalOptimisationLanguage.g:2323:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
+    // InternalOptimisationLanguage.g:2410:1: ruleFloatTypeRule returns [EObject current=null] : ( () otherlv_1= 'float' ) ;
     public final EObject ruleFloatTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6284,14 +6462,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2329:2: ( ( () otherlv_1= 'float' ) )
-            // InternalOptimisationLanguage.g:2330:2: ( () otherlv_1= 'float' )
+            // InternalOptimisationLanguage.g:2416:2: ( ( () otherlv_1= 'float' ) )
+            // InternalOptimisationLanguage.g:2417:2: ( () otherlv_1= 'float' )
             {
-            // InternalOptimisationLanguage.g:2330:2: ( () otherlv_1= 'float' )
-            // InternalOptimisationLanguage.g:2331:3: () otherlv_1= 'float'
+            // InternalOptimisationLanguage.g:2417:2: ( () otherlv_1= 'float' )
+            // InternalOptimisationLanguage.g:2418:3: () otherlv_1= 'float'
             {
-            // InternalOptimisationLanguage.g:2331:3: ()
-            // InternalOptimisationLanguage.g:2332:4: 
+            // InternalOptimisationLanguage.g:2418:3: ()
+            // InternalOptimisationLanguage.g:2419:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6301,7 +6479,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,48,FOLLOW_2); 
+            otherlv_1=(Token)match(input,49,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getFloatTypeRuleAccess().getFloatKeyword_1());
             		
@@ -6328,7 +6506,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleBooleanTypeRule"
-    // InternalOptimisationLanguage.g:2346:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2433:1: entryRuleBooleanTypeRule returns [EObject current=null] : iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF ;
     public final EObject entryRuleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6336,8 +6514,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2346:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
-            // InternalOptimisationLanguage.g:2347:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
+            // InternalOptimisationLanguage.g:2433:56: (iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF )
+            // InternalOptimisationLanguage.g:2434:2: iv_ruleBooleanTypeRule= ruleBooleanTypeRule EOF
             {
              newCompositeNode(grammarAccess.getBooleanTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6364,7 +6542,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleBooleanTypeRule"
-    // InternalOptimisationLanguage.g:2353:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
+    // InternalOptimisationLanguage.g:2440:1: ruleBooleanTypeRule returns [EObject current=null] : ( () otherlv_1= 'boolean' ) ;
     public final EObject ruleBooleanTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6374,14 +6552,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2359:2: ( ( () otherlv_1= 'boolean' ) )
-            // InternalOptimisationLanguage.g:2360:2: ( () otherlv_1= 'boolean' )
+            // InternalOptimisationLanguage.g:2446:2: ( ( () otherlv_1= 'boolean' ) )
+            // InternalOptimisationLanguage.g:2447:2: ( () otherlv_1= 'boolean' )
             {
-            // InternalOptimisationLanguage.g:2360:2: ( () otherlv_1= 'boolean' )
-            // InternalOptimisationLanguage.g:2361:3: () otherlv_1= 'boolean'
+            // InternalOptimisationLanguage.g:2447:2: ( () otherlv_1= 'boolean' )
+            // InternalOptimisationLanguage.g:2448:3: () otherlv_1= 'boolean'
             {
-            // InternalOptimisationLanguage.g:2361:3: ()
-            // InternalOptimisationLanguage.g:2362:4: 
+            // InternalOptimisationLanguage.g:2448:3: ()
+            // InternalOptimisationLanguage.g:2449:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6391,7 +6569,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,49,FOLLOW_2); 
+            otherlv_1=(Token)match(input,50,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getBooleanTypeRuleAccess().getBooleanKeyword_1());
             		
@@ -6418,7 +6596,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleVoidTypeRule"
-    // InternalOptimisationLanguage.g:2376:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2463:1: entryRuleVoidTypeRule returns [EObject current=null] : iv_ruleVoidTypeRule= ruleVoidTypeRule EOF ;
     public final EObject entryRuleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6426,8 +6604,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2376:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
-            // InternalOptimisationLanguage.g:2377:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
+            // InternalOptimisationLanguage.g:2463:53: (iv_ruleVoidTypeRule= ruleVoidTypeRule EOF )
+            // InternalOptimisationLanguage.g:2464:2: iv_ruleVoidTypeRule= ruleVoidTypeRule EOF
             {
              newCompositeNode(grammarAccess.getVoidTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6454,7 +6632,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleVoidTypeRule"
-    // InternalOptimisationLanguage.g:2383:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
+    // InternalOptimisationLanguage.g:2470:1: ruleVoidTypeRule returns [EObject current=null] : ( () otherlv_1= 'void' ) ;
     public final EObject ruleVoidTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6464,14 +6642,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2389:2: ( ( () otherlv_1= 'void' ) )
-            // InternalOptimisationLanguage.g:2390:2: ( () otherlv_1= 'void' )
+            // InternalOptimisationLanguage.g:2476:2: ( ( () otherlv_1= 'void' ) )
+            // InternalOptimisationLanguage.g:2477:2: ( () otherlv_1= 'void' )
             {
-            // InternalOptimisationLanguage.g:2390:2: ( () otherlv_1= 'void' )
-            // InternalOptimisationLanguage.g:2391:3: () otherlv_1= 'void'
+            // InternalOptimisationLanguage.g:2477:2: ( () otherlv_1= 'void' )
+            // InternalOptimisationLanguage.g:2478:3: () otherlv_1= 'void'
             {
-            // InternalOptimisationLanguage.g:2391:3: ()
-            // InternalOptimisationLanguage.g:2392:4: 
+            // InternalOptimisationLanguage.g:2478:3: ()
+            // InternalOptimisationLanguage.g:2479:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6481,7 +6659,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            otherlv_1=(Token)match(input,50,FOLLOW_2); 
+            otherlv_1=(Token)match(input,51,FOLLOW_2); 
 
             			newLeafNode(otherlv_1, grammarAccess.getVoidTypeRuleAccess().getVoidKeyword_1());
             		
@@ -6508,7 +6686,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleDataTypeRule"
-    // InternalOptimisationLanguage.g:2406:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2493:1: entryRuleDataTypeRule returns [EObject current=null] : iv_ruleDataTypeRule= ruleDataTypeRule EOF ;
     public final EObject entryRuleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6516,8 +6694,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2406:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
-            // InternalOptimisationLanguage.g:2407:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
+            // InternalOptimisationLanguage.g:2493:53: (iv_ruleDataTypeRule= ruleDataTypeRule EOF )
+            // InternalOptimisationLanguage.g:2494:2: iv_ruleDataTypeRule= ruleDataTypeRule EOF
             {
              newCompositeNode(grammarAccess.getDataTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6544,7 +6722,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleDataTypeRule"
-    // InternalOptimisationLanguage.g:2413:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
+    // InternalOptimisationLanguage.g:2500:1: ruleDataTypeRule returns [EObject current=null] : ( () otherlv_1= 'data' ) ;
     public final EObject ruleDataTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6554,14 +6732,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2419:2: ( ( () otherlv_1= 'data' ) )
-            // InternalOptimisationLanguage.g:2420:2: ( () otherlv_1= 'data' )
+            // InternalOptimisationLanguage.g:2506:2: ( ( () otherlv_1= 'data' ) )
+            // InternalOptimisationLanguage.g:2507:2: ( () otherlv_1= 'data' )
             {
-            // InternalOptimisationLanguage.g:2420:2: ( () otherlv_1= 'data' )
-            // InternalOptimisationLanguage.g:2421:3: () otherlv_1= 'data'
+            // InternalOptimisationLanguage.g:2507:2: ( () otherlv_1= 'data' )
+            // InternalOptimisationLanguage.g:2508:3: () otherlv_1= 'data'
             {
-            // InternalOptimisationLanguage.g:2421:3: ()
-            // InternalOptimisationLanguage.g:2422:4: 
+            // InternalOptimisationLanguage.g:2508:3: ()
+            // InternalOptimisationLanguage.g:2509:4: 
             {
 
             				current = forceCreateModelElement(
@@ -6598,7 +6776,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleArrayTypeRule"
-    // InternalOptimisationLanguage.g:2436:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
+    // InternalOptimisationLanguage.g:2523:1: entryRuleArrayTypeRule returns [EObject current=null] : iv_ruleArrayTypeRule= ruleArrayTypeRule EOF ;
     public final EObject entryRuleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6606,8 +6784,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2436:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
-            // InternalOptimisationLanguage.g:2437:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
+            // InternalOptimisationLanguage.g:2523:54: (iv_ruleArrayTypeRule= ruleArrayTypeRule EOF )
+            // InternalOptimisationLanguage.g:2524:2: iv_ruleArrayTypeRule= ruleArrayTypeRule EOF
             {
              newCompositeNode(grammarAccess.getArrayTypeRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6634,7 +6812,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleArrayTypeRule"
-    // InternalOptimisationLanguage.g:2443:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
+    // InternalOptimisationLanguage.g:2530:1: ruleArrayTypeRule returns [EObject current=null] : (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) ;
     public final EObject ruleArrayTypeRule() throws RecognitionException {
         EObject current = null;
 
@@ -6646,21 +6824,21 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2449:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
-            // InternalOptimisationLanguage.g:2450:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalOptimisationLanguage.g:2536:2: ( (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) ) )
+            // InternalOptimisationLanguage.g:2537:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
             {
-            // InternalOptimisationLanguage.g:2450:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
-            // InternalOptimisationLanguage.g:2451:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:2537:2: (otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) ) )
+            // InternalOptimisationLanguage.g:2538:3: otherlv_0= 'array' ( (lv_elements_1_0= ruleTypeRule ) )
             {
-            otherlv_0=(Token)match(input,51,FOLLOW_34); 
+            otherlv_0=(Token)match(input,52,FOLLOW_36); 
 
             			newLeafNode(otherlv_0, grammarAccess.getArrayTypeRuleAccess().getArrayKeyword_0());
             		
-            // InternalOptimisationLanguage.g:2455:3: ( (lv_elements_1_0= ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:2456:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2542:3: ( (lv_elements_1_0= ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:2543:4: (lv_elements_1_0= ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:2456:4: (lv_elements_1_0= ruleTypeRule )
-            // InternalOptimisationLanguage.g:2457:5: lv_elements_1_0= ruleTypeRule
+            // InternalOptimisationLanguage.g:2543:4: (lv_elements_1_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2544:5: lv_elements_1_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getArrayTypeRuleAccess().getElementsTypeRuleParserRuleCall_1_0());
@@ -6710,7 +6888,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleParameterRule"
-    // InternalOptimisationLanguage.g:2478:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
+    // InternalOptimisationLanguage.g:2565:1: entryRuleParameterRule returns [EObject current=null] : iv_ruleParameterRule= ruleParameterRule EOF ;
     public final EObject entryRuleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -6718,8 +6896,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2478:54: (iv_ruleParameterRule= ruleParameterRule EOF )
-            // InternalOptimisationLanguage.g:2479:2: iv_ruleParameterRule= ruleParameterRule EOF
+            // InternalOptimisationLanguage.g:2565:54: (iv_ruleParameterRule= ruleParameterRule EOF )
+            // InternalOptimisationLanguage.g:2566:2: iv_ruleParameterRule= ruleParameterRule EOF
             {
              newCompositeNode(grammarAccess.getParameterRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6746,7 +6924,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleParameterRule"
-    // InternalOptimisationLanguage.g:2485:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
+    // InternalOptimisationLanguage.g:2572:1: ruleParameterRule returns [EObject current=null] : ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) ;
     public final EObject ruleParameterRule() throws RecognitionException {
         EObject current = null;
 
@@ -6759,17 +6937,17 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2491:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
-            // InternalOptimisationLanguage.g:2492:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalOptimisationLanguage.g:2578:2: ( ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) ) )
+            // InternalOptimisationLanguage.g:2579:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
             {
-            // InternalOptimisationLanguage.g:2492:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
-            // InternalOptimisationLanguage.g:2493:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:2579:2: ( ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) ) )
+            // InternalOptimisationLanguage.g:2580:3: ( (lv_type_0_0= ruleTypeRule ) ) ( (lv_name_1_0= ruleStringOrId ) )
             {
-            // InternalOptimisationLanguage.g:2493:3: ( (lv_type_0_0= ruleTypeRule ) )
-            // InternalOptimisationLanguage.g:2494:4: (lv_type_0_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2580:3: ( (lv_type_0_0= ruleTypeRule ) )
+            // InternalOptimisationLanguage.g:2581:4: (lv_type_0_0= ruleTypeRule )
             {
-            // InternalOptimisationLanguage.g:2494:4: (lv_type_0_0= ruleTypeRule )
-            // InternalOptimisationLanguage.g:2495:5: lv_type_0_0= ruleTypeRule
+            // InternalOptimisationLanguage.g:2581:4: (lv_type_0_0= ruleTypeRule )
+            // InternalOptimisationLanguage.g:2582:5: lv_type_0_0= ruleTypeRule
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getTypeTypeRuleParserRuleCall_0_0());
@@ -6796,11 +6974,11 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             }
 
-            // InternalOptimisationLanguage.g:2512:3: ( (lv_name_1_0= ruleStringOrId ) )
-            // InternalOptimisationLanguage.g:2513:4: (lv_name_1_0= ruleStringOrId )
+            // InternalOptimisationLanguage.g:2599:3: ( (lv_name_1_0= ruleStringOrId ) )
+            // InternalOptimisationLanguage.g:2600:4: (lv_name_1_0= ruleStringOrId )
             {
-            // InternalOptimisationLanguage.g:2513:4: (lv_name_1_0= ruleStringOrId )
-            // InternalOptimisationLanguage.g:2514:5: lv_name_1_0= ruleStringOrId
+            // InternalOptimisationLanguage.g:2600:4: (lv_name_1_0= ruleStringOrId )
+            // InternalOptimisationLanguage.g:2601:5: lv_name_1_0= ruleStringOrId
             {
 
             					newCompositeNode(grammarAccess.getParameterRuleAccess().getNameStringOrIdParserRuleCall_1_0());
@@ -6850,7 +7028,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleFunctionNameRule"
-    // InternalOptimisationLanguage.g:2535:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
+    // InternalOptimisationLanguage.g:2622:1: entryRuleFunctionNameRule returns [EObject current=null] : iv_ruleFunctionNameRule= ruleFunctionNameRule EOF ;
     public final EObject entryRuleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -6858,8 +7036,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2535:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
-            // InternalOptimisationLanguage.g:2536:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
+            // InternalOptimisationLanguage.g:2622:57: (iv_ruleFunctionNameRule= ruleFunctionNameRule EOF )
+            // InternalOptimisationLanguage.g:2623:2: iv_ruleFunctionNameRule= ruleFunctionNameRule EOF
             {
              newCompositeNode(grammarAccess.getFunctionNameRuleRule()); 
             pushFollow(FOLLOW_1);
@@ -6886,7 +7064,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleFunctionNameRule"
-    // InternalOptimisationLanguage.g:2542:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
+    // InternalOptimisationLanguage.g:2629:1: ruleFunctionNameRule returns [EObject current=null] : ( ( ruleQualifiedName ) ) ;
     public final EObject ruleFunctionNameRule() throws RecognitionException {
         EObject current = null;
 
@@ -6894,14 +7072,14 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2548:2: ( ( ( ruleQualifiedName ) ) )
-            // InternalOptimisationLanguage.g:2549:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:2635:2: ( ( ( ruleQualifiedName ) ) )
+            // InternalOptimisationLanguage.g:2636:2: ( ( ruleQualifiedName ) )
             {
-            // InternalOptimisationLanguage.g:2549:2: ( ( ruleQualifiedName ) )
-            // InternalOptimisationLanguage.g:2550:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:2636:2: ( ( ruleQualifiedName ) )
+            // InternalOptimisationLanguage.g:2637:3: ( ruleQualifiedName )
             {
-            // InternalOptimisationLanguage.g:2550:3: ( ruleQualifiedName )
-            // InternalOptimisationLanguage.g:2551:4: ruleQualifiedName
+            // InternalOptimisationLanguage.g:2637:3: ( ruleQualifiedName )
+            // InternalOptimisationLanguage.g:2638:4: ruleQualifiedName
             {
 
             				if (current==null) {
@@ -6945,7 +7123,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleQualifiedName"
-    // InternalOptimisationLanguage.g:2568:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
+    // InternalOptimisationLanguage.g:2655:1: entryRuleQualifiedName returns [String current=null] : iv_ruleQualifiedName= ruleQualifiedName EOF ;
     public final String entryRuleQualifiedName() throws RecognitionException {
         String current = null;
 
@@ -6953,8 +7131,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2568:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
-            // InternalOptimisationLanguage.g:2569:2: iv_ruleQualifiedName= ruleQualifiedName EOF
+            // InternalOptimisationLanguage.g:2655:53: (iv_ruleQualifiedName= ruleQualifiedName EOF )
+            // InternalOptimisationLanguage.g:2656:2: iv_ruleQualifiedName= ruleQualifiedName EOF
             {
              newCompositeNode(grammarAccess.getQualifiedNameRule()); 
             pushFollow(FOLLOW_1);
@@ -6981,7 +7159,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleQualifiedName"
-    // InternalOptimisationLanguage.g:2575:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
+    // InternalOptimisationLanguage.g:2662:1: ruleQualifiedName returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) ;
     public final AntlrDatatypeRuleToken ruleQualifiedName() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -6995,16 +7173,16 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2581:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
-            // InternalOptimisationLanguage.g:2582:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalOptimisationLanguage.g:2668:2: ( (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* ) )
+            // InternalOptimisationLanguage.g:2669:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
             {
-            // InternalOptimisationLanguage.g:2582:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
-            // InternalOptimisationLanguage.g:2583:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            // InternalOptimisationLanguage.g:2669:2: (this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )* )
+            // InternalOptimisationLanguage.g:2670:3: this_StringOrId_0= ruleStringOrId (kw= '.' this_StringOrId_2= ruleStringOrId )*
             {
 
             			newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_0());
             		
-            pushFollow(FOLLOW_19);
+            pushFollow(FOLLOW_39);
             this_StringOrId_0=ruleStringOrId();
 
             state._fsp--;
@@ -7015,22 +7193,22 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             			afterParserOrEnumRuleCall();
             		
-            // InternalOptimisationLanguage.g:2593:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
-            loop32:
+            // InternalOptimisationLanguage.g:2680:3: (kw= '.' this_StringOrId_2= ruleStringOrId )*
+            loop34:
             do {
-                int alt32=2;
-                int LA32_0 = input.LA(1);
+                int alt34=2;
+                int LA34_0 = input.LA(1);
 
-                if ( (LA32_0==31) ) {
-                    alt32=1;
+                if ( (LA34_0==53) ) {
+                    alt34=1;
                 }
 
 
-                switch (alt32) {
+                switch (alt34) {
             	case 1 :
-            	    // InternalOptimisationLanguage.g:2594:4: kw= '.' this_StringOrId_2= ruleStringOrId
+            	    // InternalOptimisationLanguage.g:2681:4: kw= '.' this_StringOrId_2= ruleStringOrId
             	    {
-            	    kw=(Token)match(input,31,FOLLOW_5); 
+            	    kw=(Token)match(input,53,FOLLOW_5); 
 
             	    				current.merge(kw);
             	    				newLeafNode(kw, grammarAccess.getQualifiedNameAccess().getFullStopKeyword_1_0());
@@ -7038,7 +7216,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
             	    				newCompositeNode(grammarAccess.getQualifiedNameAccess().getStringOrIdParserRuleCall_1_1());
             	    			
-            	    pushFollow(FOLLOW_19);
+            	    pushFollow(FOLLOW_39);
             	    this_StringOrId_2=ruleStringOrId();
 
             	    state._fsp--;
@@ -7054,7 +7232,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
             	    break;
 
             	default :
-            	    break loop32;
+            	    break loop34;
                 }
             } while (true);
 
@@ -7081,7 +7259,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "entryRuleStringOrId"
-    // InternalOptimisationLanguage.g:2614:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
+    // InternalOptimisationLanguage.g:2701:1: entryRuleStringOrId returns [String current=null] : iv_ruleStringOrId= ruleStringOrId EOF ;
     public final String entryRuleStringOrId() throws RecognitionException {
         String current = null;
 
@@ -7089,8 +7267,8 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
         try {
-            // InternalOptimisationLanguage.g:2614:50: (iv_ruleStringOrId= ruleStringOrId EOF )
-            // InternalOptimisationLanguage.g:2615:2: iv_ruleStringOrId= ruleStringOrId EOF
+            // InternalOptimisationLanguage.g:2701:50: (iv_ruleStringOrId= ruleStringOrId EOF )
+            // InternalOptimisationLanguage.g:2702:2: iv_ruleStringOrId= ruleStringOrId EOF
             {
              newCompositeNode(grammarAccess.getStringOrIdRule()); 
             pushFollow(FOLLOW_1);
@@ -7117,7 +7295,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleStringOrId"
-    // InternalOptimisationLanguage.g:2621:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
+    // InternalOptimisationLanguage.g:2708:1: ruleStringOrId returns [AntlrDatatypeRuleToken current=new AntlrDatatypeRuleToken()] : (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) ;
     public final AntlrDatatypeRuleToken ruleStringOrId() throws RecognitionException {
         AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();
 
@@ -7128,28 +7306,28 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2627:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
-            // InternalOptimisationLanguage.g:2628:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            // InternalOptimisationLanguage.g:2714:2: ( (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID ) )
+            // InternalOptimisationLanguage.g:2715:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
             {
-            // InternalOptimisationLanguage.g:2628:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
-            int alt33=2;
-            int LA33_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:2715:2: (this_QUOTED_ID_0= RULE_QUOTED_ID | this_ID_1= RULE_ID )
+            int alt35=2;
+            int LA35_0 = input.LA(1);
 
-            if ( (LA33_0==RULE_QUOTED_ID) ) {
-                alt33=1;
+            if ( (LA35_0==RULE_QUOTED_ID) ) {
+                alt35=1;
             }
-            else if ( (LA33_0==RULE_ID) ) {
-                alt33=2;
+            else if ( (LA35_0==RULE_ID) ) {
+                alt35=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 33, 0, input);
+                    new NoViableAltException("", 35, 0, input);
 
                 throw nvae;
             }
-            switch (alt33) {
+            switch (alt35) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2629:3: this_QUOTED_ID_0= RULE_QUOTED_ID
+                    // InternalOptimisationLanguage.g:2716:3: this_QUOTED_ID_0= RULE_QUOTED_ID
                     {
                     this_QUOTED_ID_0=(Token)match(input,RULE_QUOTED_ID,FOLLOW_2); 
 
@@ -7162,7 +7340,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2637:3: this_ID_1= RULE_ID
+                    // InternalOptimisationLanguage.g:2724:3: this_ID_1= RULE_ID
                     {
                     this_ID_1=(Token)match(input,RULE_ID,FOLLOW_2); 
 
@@ -7197,7 +7375,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleComparisonOperatorRule"
-    // InternalOptimisationLanguage.g:2648:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
+    // InternalOptimisationLanguage.g:2735:1: ruleComparisonOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) ;
     public final Enumerator ruleComparisonOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -7212,57 +7390,57 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2654:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
-            // InternalOptimisationLanguage.g:2655:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            // InternalOptimisationLanguage.g:2741:2: ( ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) ) )
+            // InternalOptimisationLanguage.g:2742:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
             {
-            // InternalOptimisationLanguage.g:2655:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
-            int alt34=6;
+            // InternalOptimisationLanguage.g:2742:2: ( (enumLiteral_0= '>=' ) | (enumLiteral_1= '>' ) | (enumLiteral_2= '=' ) | (enumLiteral_3= '!=' ) | (enumLiteral_4= '<' ) | (enumLiteral_5= '<=' ) )
+            int alt36=6;
             switch ( input.LA(1) ) {
-            case 52:
+            case 54:
                 {
-                alt34=1;
+                alt36=1;
                 }
                 break;
-            case 53:
+            case 55:
                 {
-                alt34=2;
+                alt36=2;
                 }
                 break;
-            case 54:
+            case 56:
                 {
-                alt34=3;
+                alt36=3;
                 }
                 break;
-            case 55:
+            case 57:
                 {
-                alt34=4;
+                alt36=4;
                 }
                 break;
-            case 56:
+            case 58:
                 {
-                alt34=5;
+                alt36=5;
                 }
                 break;
-            case 57:
+            case 59:
                 {
-                alt34=6;
+                alt36=6;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 34, 0, input);
+                    new NoViableAltException("", 36, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt34) {
+            switch (alt36) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2656:3: (enumLiteral_0= '>=' )
+                    // InternalOptimisationLanguage.g:2743:3: (enumLiteral_0= '>=' )
                     {
-                    // InternalOptimisationLanguage.g:2656:3: (enumLiteral_0= '>=' )
-                    // InternalOptimisationLanguage.g:2657:4: enumLiteral_0= '>='
+                    // InternalOptimisationLanguage.g:2743:3: (enumLiteral_0= '>=' )
+                    // InternalOptimisationLanguage.g:2744:4: enumLiteral_0= '>='
                     {
-                    enumLiteral_0=(Token)match(input,52,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,54,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getComparisonOperatorRuleAccess().getGreaterThanEnumLiteralDeclaration_0());
@@ -7274,12 +7452,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2664:3: (enumLiteral_1= '>' )
+                    // InternalOptimisationLanguage.g:2751:3: (enumLiteral_1= '>' )
                     {
-                    // InternalOptimisationLanguage.g:2664:3: (enumLiteral_1= '>' )
-                    // InternalOptimisationLanguage.g:2665:4: enumLiteral_1= '>'
+                    // InternalOptimisationLanguage.g:2751:3: (enumLiteral_1= '>' )
+                    // InternalOptimisationLanguage.g:2752:4: enumLiteral_1= '>'
                     {
-                    enumLiteral_1=(Token)match(input,53,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,55,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getComparisonOperatorRuleAccess().getGreaterEqualEnumLiteralDeclaration_1());
@@ -7291,12 +7469,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:2672:3: (enumLiteral_2= '=' )
+                    // InternalOptimisationLanguage.g:2759:3: (enumLiteral_2= '=' )
                     {
-                    // InternalOptimisationLanguage.g:2672:3: (enumLiteral_2= '=' )
-                    // InternalOptimisationLanguage.g:2673:4: enumLiteral_2= '='
+                    // InternalOptimisationLanguage.g:2759:3: (enumLiteral_2= '=' )
+                    // InternalOptimisationLanguage.g:2760:4: enumLiteral_2= '='
                     {
-                    enumLiteral_2=(Token)match(input,54,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,56,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getComparisonOperatorRuleAccess().getEqualEnumLiteralDeclaration_2());
@@ -7308,12 +7486,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:2680:3: (enumLiteral_3= '!=' )
+                    // InternalOptimisationLanguage.g:2767:3: (enumLiteral_3= '!=' )
                     {
-                    // InternalOptimisationLanguage.g:2680:3: (enumLiteral_3= '!=' )
-                    // InternalOptimisationLanguage.g:2681:4: enumLiteral_3= '!='
+                    // InternalOptimisationLanguage.g:2767:3: (enumLiteral_3= '!=' )
+                    // InternalOptimisationLanguage.g:2768:4: enumLiteral_3= '!='
                     {
-                    enumLiteral_3=(Token)match(input,55,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,57,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getComparisonOperatorRuleAccess().getUnequalEnumLiteralDeclaration_3());
@@ -7325,12 +7503,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:2688:3: (enumLiteral_4= '<' )
+                    // InternalOptimisationLanguage.g:2775:3: (enumLiteral_4= '<' )
                     {
-                    // InternalOptimisationLanguage.g:2688:3: (enumLiteral_4= '<' )
-                    // InternalOptimisationLanguage.g:2689:4: enumLiteral_4= '<'
+                    // InternalOptimisationLanguage.g:2775:3: (enumLiteral_4= '<' )
+                    // InternalOptimisationLanguage.g:2776:4: enumLiteral_4= '<'
                     {
-                    enumLiteral_4=(Token)match(input,56,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,58,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getComparisonOperatorRuleAccess().getLessEqualEnumLiteralDeclaration_4());
@@ -7342,12 +7520,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:2696:3: (enumLiteral_5= '<=' )
+                    // InternalOptimisationLanguage.g:2783:3: (enumLiteral_5= '<=' )
                     {
-                    // InternalOptimisationLanguage.g:2696:3: (enumLiteral_5= '<=' )
-                    // InternalOptimisationLanguage.g:2697:4: enumLiteral_5= '<='
+                    // InternalOptimisationLanguage.g:2783:3: (enumLiteral_5= '<=' )
+                    // InternalOptimisationLanguage.g:2784:4: enumLiteral_5= '<='
                     {
-                    enumLiteral_5=(Token)match(input,57,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,59,FOLLOW_2); 
 
                     				current = grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getComparisonOperatorRuleAccess().getLessThanEnumLiteralDeclaration_5());
@@ -7381,7 +7559,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleAddOrSubtractOperatorRule"
-    // InternalOptimisationLanguage.g:2707:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
+    // InternalOptimisationLanguage.g:2794:1: ruleAddOrSubtractOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) ;
     public final Enumerator ruleAddOrSubtractOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -7392,33 +7570,33 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2713:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
-            // InternalOptimisationLanguage.g:2714:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            // InternalOptimisationLanguage.g:2800:2: ( ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) ) )
+            // InternalOptimisationLanguage.g:2801:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
             {
-            // InternalOptimisationLanguage.g:2714:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
-            int alt35=2;
-            int LA35_0 = input.LA(1);
+            // InternalOptimisationLanguage.g:2801:2: ( (enumLiteral_0= '+' ) | (enumLiteral_1= '-' ) )
+            int alt37=2;
+            int LA37_0 = input.LA(1);
 
-            if ( (LA35_0==58) ) {
-                alt35=1;
+            if ( (LA37_0==60) ) {
+                alt37=1;
             }
-            else if ( (LA35_0==59) ) {
-                alt35=2;
+            else if ( (LA37_0==61) ) {
+                alt37=2;
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("", 35, 0, input);
+                    new NoViableAltException("", 37, 0, input);
 
                 throw nvae;
             }
-            switch (alt35) {
+            switch (alt37) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2715:3: (enumLiteral_0= '+' )
+                    // InternalOptimisationLanguage.g:2802:3: (enumLiteral_0= '+' )
                     {
-                    // InternalOptimisationLanguage.g:2715:3: (enumLiteral_0= '+' )
-                    // InternalOptimisationLanguage.g:2716:4: enumLiteral_0= '+'
+                    // InternalOptimisationLanguage.g:2802:3: (enumLiteral_0= '+' )
+                    // InternalOptimisationLanguage.g:2803:4: enumLiteral_0= '+'
                     {
-                    enumLiteral_0=(Token)match(input,58,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,60,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getAddOrSubtractOperatorRuleAccess().getAddEnumLiteralDeclaration_0());
@@ -7430,12 +7608,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2723:3: (enumLiteral_1= '-' )
+                    // InternalOptimisationLanguage.g:2810:3: (enumLiteral_1= '-' )
                     {
-                    // InternalOptimisationLanguage.g:2723:3: (enumLiteral_1= '-' )
-                    // InternalOptimisationLanguage.g:2724:4: enumLiteral_1= '-'
+                    // InternalOptimisationLanguage.g:2810:3: (enumLiteral_1= '-' )
+                    // InternalOptimisationLanguage.g:2811:4: enumLiteral_1= '-'
                     {
-                    enumLiteral_1=(Token)match(input,59,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,61,FOLLOW_2); 
 
                     				current = grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getAddOrSubtractOperatorRuleAccess().getSubtractEnumLiteralDeclaration_1());
@@ -7469,7 +7647,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleMultiplyDivideModuloOperatorRule"
-    // InternalOptimisationLanguage.g:2734:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
+    // InternalOptimisationLanguage.g:2821:1: ruleMultiplyDivideModuloOperatorRule returns [Enumerator current=null] : ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) ;
     public final Enumerator ruleMultiplyDivideModuloOperatorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -7481,42 +7659,42 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2740:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
-            // InternalOptimisationLanguage.g:2741:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            // InternalOptimisationLanguage.g:2827:2: ( ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) ) )
+            // InternalOptimisationLanguage.g:2828:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
             {
-            // InternalOptimisationLanguage.g:2741:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
-            int alt36=3;
+            // InternalOptimisationLanguage.g:2828:2: ( (enumLiteral_0= '*' ) | (enumLiteral_1= '/' ) | (enumLiteral_2= '%' ) )
+            int alt38=3;
             switch ( input.LA(1) ) {
-            case 60:
+            case 62:
                 {
-                alt36=1;
+                alt38=1;
                 }
                 break;
-            case 61:
+            case 63:
                 {
-                alt36=2;
+                alt38=2;
                 }
                 break;
-            case 62:
+            case 64:
                 {
-                alt36=3;
+                alt38=3;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 36, 0, input);
+                    new NoViableAltException("", 38, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt36) {
+            switch (alt38) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2742:3: (enumLiteral_0= '*' )
+                    // InternalOptimisationLanguage.g:2829:3: (enumLiteral_0= '*' )
                     {
-                    // InternalOptimisationLanguage.g:2742:3: (enumLiteral_0= '*' )
-                    // InternalOptimisationLanguage.g:2743:4: enumLiteral_0= '*'
+                    // InternalOptimisationLanguage.g:2829:3: (enumLiteral_0= '*' )
+                    // InternalOptimisationLanguage.g:2830:4: enumLiteral_0= '*'
                     {
-                    enumLiteral_0=(Token)match(input,60,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,62,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getMultiplyEnumLiteralDeclaration_0());
@@ -7528,12 +7706,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2750:3: (enumLiteral_1= '/' )
+                    // InternalOptimisationLanguage.g:2837:3: (enumLiteral_1= '/' )
                     {
-                    // InternalOptimisationLanguage.g:2750:3: (enumLiteral_1= '/' )
-                    // InternalOptimisationLanguage.g:2751:4: enumLiteral_1= '/'
+                    // InternalOptimisationLanguage.g:2837:3: (enumLiteral_1= '/' )
+                    // InternalOptimisationLanguage.g:2838:4: enumLiteral_1= '/'
                     {
-                    enumLiteral_1=(Token)match(input,61,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,63,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getDivideEnumLiteralDeclaration_1());
@@ -7545,12 +7723,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:2758:3: (enumLiteral_2= '%' )
+                    // InternalOptimisationLanguage.g:2845:3: (enumLiteral_2= '%' )
                     {
-                    // InternalOptimisationLanguage.g:2758:3: (enumLiteral_2= '%' )
-                    // InternalOptimisationLanguage.g:2759:4: enumLiteral_2= '%'
+                    // InternalOptimisationLanguage.g:2845:3: (enumLiteral_2= '%' )
+                    // InternalOptimisationLanguage.g:2846:4: enumLiteral_2= '%'
                     {
-                    enumLiteral_2=(Token)match(input,62,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,64,FOLLOW_2); 
 
                     				current = grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getMultiplyDivideModuloOperatorRuleAccess().getModuloEnumLiteralDeclaration_2());
@@ -7584,7 +7762,7 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
 
 
     // $ANTLR start "ruleFactorRule"
-    // InternalOptimisationLanguage.g:2769:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
+    // InternalOptimisationLanguage.g:2856:1: ruleFactorRule returns [Enumerator current=null] : ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) ;
     public final Enumerator ruleFactorRule() throws RecognitionException {
         Enumerator current = null;
 
@@ -7613,127 +7791,127 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
         	enterRule();
 
         try {
-            // InternalOptimisationLanguage.g:2775:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
-            // InternalOptimisationLanguage.g:2776:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            // InternalOptimisationLanguage.g:2862:2: ( ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) ) )
+            // InternalOptimisationLanguage.g:2863:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
             {
-            // InternalOptimisationLanguage.g:2776:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
-            int alt37=20;
+            // InternalOptimisationLanguage.g:2863:2: ( (enumLiteral_0= 'Y' ) | (enumLiteral_1= 'Z' ) | (enumLiteral_2= 'E' ) | (enumLiteral_3= 'P' ) | (enumLiteral_4= 'T' ) | (enumLiteral_5= 'G' ) | (enumLiteral_6= 'M' ) | (enumLiteral_7= 'k' ) | (enumLiteral_8= 'h' ) | (enumLiteral_9= 'da' ) | (enumLiteral_10= 'd' ) | (enumLiteral_11= 'c' ) | (enumLiteral_12= 'm' ) | (enumLiteral_13= '\\u00B5' ) | (enumLiteral_14= 'n' ) | (enumLiteral_15= 'p' ) | (enumLiteral_16= 'f' ) | (enumLiteral_17= 'a' ) | (enumLiteral_18= 'z' ) | (enumLiteral_19= 'y' ) )
+            int alt39=20;
             switch ( input.LA(1) ) {
-            case 63:
-                {
-                alt37=1;
-                }
-                break;
-            case 64:
-                {
-                alt37=2;
-                }
-                break;
             case 65:
                 {
-                alt37=3;
+                alt39=1;
                 }
                 break;
             case 66:
                 {
-                alt37=4;
+                alt39=2;
                 }
                 break;
             case 67:
                 {
-                alt37=5;
+                alt39=3;
                 }
                 break;
             case 68:
                 {
-                alt37=6;
+                alt39=4;
                 }
                 break;
             case 69:
                 {
-                alt37=7;
+                alt39=5;
                 }
                 break;
             case 70:
                 {
-                alt37=8;
+                alt39=6;
                 }
                 break;
             case 71:
                 {
-                alt37=9;
+                alt39=7;
                 }
                 break;
             case 72:
                 {
-                alt37=10;
+                alt39=8;
                 }
                 break;
             case 73:
                 {
-                alt37=11;
+                alt39=9;
                 }
                 break;
             case 74:
                 {
-                alt37=12;
+                alt39=10;
                 }
                 break;
             case 75:
                 {
-                alt37=13;
+                alt39=11;
                 }
                 break;
             case 76:
                 {
-                alt37=14;
+                alt39=12;
                 }
                 break;
             case 77:
                 {
-                alt37=15;
+                alt39=13;
                 }
                 break;
             case 78:
                 {
-                alt37=16;
+                alt39=14;
                 }
                 break;
             case 79:
                 {
-                alt37=17;
+                alt39=15;
                 }
                 break;
             case 80:
                 {
-                alt37=18;
+                alt39=16;
                 }
                 break;
             case 81:
                 {
-                alt37=19;
+                alt39=17;
                 }
                 break;
             case 82:
                 {
-                alt37=20;
+                alt39=18;
+                }
+                break;
+            case 83:
+                {
+                alt39=19;
+                }
+                break;
+            case 84:
+                {
+                alt39=20;
                 }
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("", 37, 0, input);
+                    new NoViableAltException("", 39, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt37) {
+            switch (alt39) {
                 case 1 :
-                    // InternalOptimisationLanguage.g:2777:3: (enumLiteral_0= 'Y' )
+                    // InternalOptimisationLanguage.g:2864:3: (enumLiteral_0= 'Y' )
                     {
-                    // InternalOptimisationLanguage.g:2777:3: (enumLiteral_0= 'Y' )
-                    // InternalOptimisationLanguage.g:2778:4: enumLiteral_0= 'Y'
+                    // InternalOptimisationLanguage.g:2864:3: (enumLiteral_0= 'Y' )
+                    // InternalOptimisationLanguage.g:2865:4: enumLiteral_0= 'Y'
                     {
-                    enumLiteral_0=(Token)match(input,63,FOLLOW_2); 
+                    enumLiteral_0=(Token)match(input,65,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_0, grammarAccess.getFactorRuleAccess().getYottaEnumLiteralDeclaration_0());
@@ -7745,12 +7923,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 2 :
-                    // InternalOptimisationLanguage.g:2785:3: (enumLiteral_1= 'Z' )
+                    // InternalOptimisationLanguage.g:2872:3: (enumLiteral_1= 'Z' )
                     {
-                    // InternalOptimisationLanguage.g:2785:3: (enumLiteral_1= 'Z' )
-                    // InternalOptimisationLanguage.g:2786:4: enumLiteral_1= 'Z'
+                    // InternalOptimisationLanguage.g:2872:3: (enumLiteral_1= 'Z' )
+                    // InternalOptimisationLanguage.g:2873:4: enumLiteral_1= 'Z'
                     {
-                    enumLiteral_1=(Token)match(input,64,FOLLOW_2); 
+                    enumLiteral_1=(Token)match(input,66,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_1, grammarAccess.getFactorRuleAccess().getZettaEnumLiteralDeclaration_1());
@@ -7762,12 +7940,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 3 :
-                    // InternalOptimisationLanguage.g:2793:3: (enumLiteral_2= 'E' )
+                    // InternalOptimisationLanguage.g:2880:3: (enumLiteral_2= 'E' )
                     {
-                    // InternalOptimisationLanguage.g:2793:3: (enumLiteral_2= 'E' )
-                    // InternalOptimisationLanguage.g:2794:4: enumLiteral_2= 'E'
+                    // InternalOptimisationLanguage.g:2880:3: (enumLiteral_2= 'E' )
+                    // InternalOptimisationLanguage.g:2881:4: enumLiteral_2= 'E'
                     {
-                    enumLiteral_2=(Token)match(input,65,FOLLOW_2); 
+                    enumLiteral_2=(Token)match(input,67,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_2, grammarAccess.getFactorRuleAccess().getExaEnumLiteralDeclaration_2());
@@ -7779,12 +7957,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 4 :
-                    // InternalOptimisationLanguage.g:2801:3: (enumLiteral_3= 'P' )
+                    // InternalOptimisationLanguage.g:2888:3: (enumLiteral_3= 'P' )
                     {
-                    // InternalOptimisationLanguage.g:2801:3: (enumLiteral_3= 'P' )
-                    // InternalOptimisationLanguage.g:2802:4: enumLiteral_3= 'P'
+                    // InternalOptimisationLanguage.g:2888:3: (enumLiteral_3= 'P' )
+                    // InternalOptimisationLanguage.g:2889:4: enumLiteral_3= 'P'
                     {
-                    enumLiteral_3=(Token)match(input,66,FOLLOW_2); 
+                    enumLiteral_3=(Token)match(input,68,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_3, grammarAccess.getFactorRuleAccess().getPetaEnumLiteralDeclaration_3());
@@ -7796,12 +7974,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 5 :
-                    // InternalOptimisationLanguage.g:2809:3: (enumLiteral_4= 'T' )
+                    // InternalOptimisationLanguage.g:2896:3: (enumLiteral_4= 'T' )
                     {
-                    // InternalOptimisationLanguage.g:2809:3: (enumLiteral_4= 'T' )
-                    // InternalOptimisationLanguage.g:2810:4: enumLiteral_4= 'T'
+                    // InternalOptimisationLanguage.g:2896:3: (enumLiteral_4= 'T' )
+                    // InternalOptimisationLanguage.g:2897:4: enumLiteral_4= 'T'
                     {
-                    enumLiteral_4=(Token)match(input,67,FOLLOW_2); 
+                    enumLiteral_4=(Token)match(input,69,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_4, grammarAccess.getFactorRuleAccess().getTeraEnumLiteralDeclaration_4());
@@ -7813,12 +7991,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 6 :
-                    // InternalOptimisationLanguage.g:2817:3: (enumLiteral_5= 'G' )
+                    // InternalOptimisationLanguage.g:2904:3: (enumLiteral_5= 'G' )
                     {
-                    // InternalOptimisationLanguage.g:2817:3: (enumLiteral_5= 'G' )
-                    // InternalOptimisationLanguage.g:2818:4: enumLiteral_5= 'G'
+                    // InternalOptimisationLanguage.g:2904:3: (enumLiteral_5= 'G' )
+                    // InternalOptimisationLanguage.g:2905:4: enumLiteral_5= 'G'
                     {
-                    enumLiteral_5=(Token)match(input,68,FOLLOW_2); 
+                    enumLiteral_5=(Token)match(input,70,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_5, grammarAccess.getFactorRuleAccess().getGigaEnumLiteralDeclaration_5());
@@ -7830,12 +8008,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 7 :
-                    // InternalOptimisationLanguage.g:2825:3: (enumLiteral_6= 'M' )
+                    // InternalOptimisationLanguage.g:2912:3: (enumLiteral_6= 'M' )
                     {
-                    // InternalOptimisationLanguage.g:2825:3: (enumLiteral_6= 'M' )
-                    // InternalOptimisationLanguage.g:2826:4: enumLiteral_6= 'M'
+                    // InternalOptimisationLanguage.g:2912:3: (enumLiteral_6= 'M' )
+                    // InternalOptimisationLanguage.g:2913:4: enumLiteral_6= 'M'
                     {
-                    enumLiteral_6=(Token)match(input,69,FOLLOW_2); 
+                    enumLiteral_6=(Token)match(input,71,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_6, grammarAccess.getFactorRuleAccess().getMegaEnumLiteralDeclaration_6());
@@ -7847,12 +8025,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 8 :
-                    // InternalOptimisationLanguage.g:2833:3: (enumLiteral_7= 'k' )
+                    // InternalOptimisationLanguage.g:2920:3: (enumLiteral_7= 'k' )
                     {
-                    // InternalOptimisationLanguage.g:2833:3: (enumLiteral_7= 'k' )
-                    // InternalOptimisationLanguage.g:2834:4: enumLiteral_7= 'k'
+                    // InternalOptimisationLanguage.g:2920:3: (enumLiteral_7= 'k' )
+                    // InternalOptimisationLanguage.g:2921:4: enumLiteral_7= 'k'
                     {
-                    enumLiteral_7=(Token)match(input,70,FOLLOW_2); 
+                    enumLiteral_7=(Token)match(input,72,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_7, grammarAccess.getFactorRuleAccess().getKiloEnumLiteralDeclaration_7());
@@ -7864,12 +8042,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 9 :
-                    // InternalOptimisationLanguage.g:2841:3: (enumLiteral_8= 'h' )
+                    // InternalOptimisationLanguage.g:2928:3: (enumLiteral_8= 'h' )
                     {
-                    // InternalOptimisationLanguage.g:2841:3: (enumLiteral_8= 'h' )
-                    // InternalOptimisationLanguage.g:2842:4: enumLiteral_8= 'h'
+                    // InternalOptimisationLanguage.g:2928:3: (enumLiteral_8= 'h' )
+                    // InternalOptimisationLanguage.g:2929:4: enumLiteral_8= 'h'
                     {
-                    enumLiteral_8=(Token)match(input,71,FOLLOW_2); 
+                    enumLiteral_8=(Token)match(input,73,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_8, grammarAccess.getFactorRuleAccess().getHectoEnumLiteralDeclaration_8());
@@ -7881,12 +8059,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 10 :
-                    // InternalOptimisationLanguage.g:2849:3: (enumLiteral_9= 'da' )
+                    // InternalOptimisationLanguage.g:2936:3: (enumLiteral_9= 'da' )
                     {
-                    // InternalOptimisationLanguage.g:2849:3: (enumLiteral_9= 'da' )
-                    // InternalOptimisationLanguage.g:2850:4: enumLiteral_9= 'da'
+                    // InternalOptimisationLanguage.g:2936:3: (enumLiteral_9= 'da' )
+                    // InternalOptimisationLanguage.g:2937:4: enumLiteral_9= 'da'
                     {
-                    enumLiteral_9=(Token)match(input,72,FOLLOW_2); 
+                    enumLiteral_9=(Token)match(input,74,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_9, grammarAccess.getFactorRuleAccess().getDekaEnumLiteralDeclaration_9());
@@ -7898,12 +8076,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 11 :
-                    // InternalOptimisationLanguage.g:2857:3: (enumLiteral_10= 'd' )
+                    // InternalOptimisationLanguage.g:2944:3: (enumLiteral_10= 'd' )
                     {
-                    // InternalOptimisationLanguage.g:2857:3: (enumLiteral_10= 'd' )
-                    // InternalOptimisationLanguage.g:2858:4: enumLiteral_10= 'd'
+                    // InternalOptimisationLanguage.g:2944:3: (enumLiteral_10= 'd' )
+                    // InternalOptimisationLanguage.g:2945:4: enumLiteral_10= 'd'
                     {
-                    enumLiteral_10=(Token)match(input,73,FOLLOW_2); 
+                    enumLiteral_10=(Token)match(input,75,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_10, grammarAccess.getFactorRuleAccess().getDeciEnumLiteralDeclaration_10());
@@ -7915,12 +8093,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 12 :
-                    // InternalOptimisationLanguage.g:2865:3: (enumLiteral_11= 'c' )
+                    // InternalOptimisationLanguage.g:2952:3: (enumLiteral_11= 'c' )
                     {
-                    // InternalOptimisationLanguage.g:2865:3: (enumLiteral_11= 'c' )
-                    // InternalOptimisationLanguage.g:2866:4: enumLiteral_11= 'c'
+                    // InternalOptimisationLanguage.g:2952:3: (enumLiteral_11= 'c' )
+                    // InternalOptimisationLanguage.g:2953:4: enumLiteral_11= 'c'
                     {
-                    enumLiteral_11=(Token)match(input,74,FOLLOW_2); 
+                    enumLiteral_11=(Token)match(input,76,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_11, grammarAccess.getFactorRuleAccess().getCentiEnumLiteralDeclaration_11());
@@ -7932,12 +8110,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 13 :
-                    // InternalOptimisationLanguage.g:2873:3: (enumLiteral_12= 'm' )
+                    // InternalOptimisationLanguage.g:2960:3: (enumLiteral_12= 'm' )
                     {
-                    // InternalOptimisationLanguage.g:2873:3: (enumLiteral_12= 'm' )
-                    // InternalOptimisationLanguage.g:2874:4: enumLiteral_12= 'm'
+                    // InternalOptimisationLanguage.g:2960:3: (enumLiteral_12= 'm' )
+                    // InternalOptimisationLanguage.g:2961:4: enumLiteral_12= 'm'
                     {
-                    enumLiteral_12=(Token)match(input,75,FOLLOW_2); 
+                    enumLiteral_12=(Token)match(input,77,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_12, grammarAccess.getFactorRuleAccess().getMilliEnumLiteralDeclaration_12());
@@ -7949,12 +8127,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 14 :
-                    // InternalOptimisationLanguage.g:2881:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalOptimisationLanguage.g:2968:3: (enumLiteral_13= '\\u00B5' )
                     {
-                    // InternalOptimisationLanguage.g:2881:3: (enumLiteral_13= '\\u00B5' )
-                    // InternalOptimisationLanguage.g:2882:4: enumLiteral_13= '\\u00B5'
+                    // InternalOptimisationLanguage.g:2968:3: (enumLiteral_13= '\\u00B5' )
+                    // InternalOptimisationLanguage.g:2969:4: enumLiteral_13= '\\u00B5'
                     {
-                    enumLiteral_13=(Token)match(input,76,FOLLOW_2); 
+                    enumLiteral_13=(Token)match(input,78,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_13, grammarAccess.getFactorRuleAccess().getMicroEnumLiteralDeclaration_13());
@@ -7966,12 +8144,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 15 :
-                    // InternalOptimisationLanguage.g:2889:3: (enumLiteral_14= 'n' )
+                    // InternalOptimisationLanguage.g:2976:3: (enumLiteral_14= 'n' )
                     {
-                    // InternalOptimisationLanguage.g:2889:3: (enumLiteral_14= 'n' )
-                    // InternalOptimisationLanguage.g:2890:4: enumLiteral_14= 'n'
+                    // InternalOptimisationLanguage.g:2976:3: (enumLiteral_14= 'n' )
+                    // InternalOptimisationLanguage.g:2977:4: enumLiteral_14= 'n'
                     {
-                    enumLiteral_14=(Token)match(input,77,FOLLOW_2); 
+                    enumLiteral_14=(Token)match(input,79,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_14, grammarAccess.getFactorRuleAccess().getNanoEnumLiteralDeclaration_14());
@@ -7983,12 +8161,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 16 :
-                    // InternalOptimisationLanguage.g:2897:3: (enumLiteral_15= 'p' )
+                    // InternalOptimisationLanguage.g:2984:3: (enumLiteral_15= 'p' )
                     {
-                    // InternalOptimisationLanguage.g:2897:3: (enumLiteral_15= 'p' )
-                    // InternalOptimisationLanguage.g:2898:4: enumLiteral_15= 'p'
+                    // InternalOptimisationLanguage.g:2984:3: (enumLiteral_15= 'p' )
+                    // InternalOptimisationLanguage.g:2985:4: enumLiteral_15= 'p'
                     {
-                    enumLiteral_15=(Token)match(input,78,FOLLOW_2); 
+                    enumLiteral_15=(Token)match(input,80,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_15, grammarAccess.getFactorRuleAccess().getPikoEnumLiteralDeclaration_15());
@@ -8000,12 +8178,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 17 :
-                    // InternalOptimisationLanguage.g:2905:3: (enumLiteral_16= 'f' )
+                    // InternalOptimisationLanguage.g:2992:3: (enumLiteral_16= 'f' )
                     {
-                    // InternalOptimisationLanguage.g:2905:3: (enumLiteral_16= 'f' )
-                    // InternalOptimisationLanguage.g:2906:4: enumLiteral_16= 'f'
+                    // InternalOptimisationLanguage.g:2992:3: (enumLiteral_16= 'f' )
+                    // InternalOptimisationLanguage.g:2993:4: enumLiteral_16= 'f'
                     {
-                    enumLiteral_16=(Token)match(input,79,FOLLOW_2); 
+                    enumLiteral_16=(Token)match(input,81,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_16, grammarAccess.getFactorRuleAccess().getFemtoEnumLiteralDeclaration_16());
@@ -8017,12 +8195,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 18 :
-                    // InternalOptimisationLanguage.g:2913:3: (enumLiteral_17= 'a' )
+                    // InternalOptimisationLanguage.g:3000:3: (enumLiteral_17= 'a' )
                     {
-                    // InternalOptimisationLanguage.g:2913:3: (enumLiteral_17= 'a' )
-                    // InternalOptimisationLanguage.g:2914:4: enumLiteral_17= 'a'
+                    // InternalOptimisationLanguage.g:3000:3: (enumLiteral_17= 'a' )
+                    // InternalOptimisationLanguage.g:3001:4: enumLiteral_17= 'a'
                     {
-                    enumLiteral_17=(Token)match(input,80,FOLLOW_2); 
+                    enumLiteral_17=(Token)match(input,82,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_17, grammarAccess.getFactorRuleAccess().getAttoEnumLiteralDeclaration_17());
@@ -8034,12 +8212,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 19 :
-                    // InternalOptimisationLanguage.g:2921:3: (enumLiteral_18= 'z' )
+                    // InternalOptimisationLanguage.g:3008:3: (enumLiteral_18= 'z' )
                     {
-                    // InternalOptimisationLanguage.g:2921:3: (enumLiteral_18= 'z' )
-                    // InternalOptimisationLanguage.g:2922:4: enumLiteral_18= 'z'
+                    // InternalOptimisationLanguage.g:3008:3: (enumLiteral_18= 'z' )
+                    // InternalOptimisationLanguage.g:3009:4: enumLiteral_18= 'z'
                     {
-                    enumLiteral_18=(Token)match(input,81,FOLLOW_2); 
+                    enumLiteral_18=(Token)match(input,83,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_18, grammarAccess.getFactorRuleAccess().getZeptoEnumLiteralDeclaration_18());
@@ -8051,12 +8229,12 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
                     }
                     break;
                 case 20 :
-                    // InternalOptimisationLanguage.g:2929:3: (enumLiteral_19= 'y' )
+                    // InternalOptimisationLanguage.g:3016:3: (enumLiteral_19= 'y' )
                     {
-                    // InternalOptimisationLanguage.g:2929:3: (enumLiteral_19= 'y' )
-                    // InternalOptimisationLanguage.g:2930:4: enumLiteral_19= 'y'
+                    // InternalOptimisationLanguage.g:3016:3: (enumLiteral_19= 'y' )
+                    // InternalOptimisationLanguage.g:3017:4: enumLiteral_19= 'y'
                     {
-                    enumLiteral_19=(Token)match(input,82,FOLLOW_2); 
+                    enumLiteral_19=(Token)match(input,84,FOLLOW_2); 
 
                     				current = grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19().getEnumLiteral().getInstance();
                     				newLeafNode(enumLiteral_19, grammarAccess.getFactorRuleAccess().getYoctoEnumLiteralDeclaration_19());
@@ -8091,6 +8269,51 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     // Delegated rules
 
 
+    protected DFA20 dfa20 = new DFA20(this);
+    static final String dfa_1s = "\12\uffff";
+    static final String dfa_2s = "\1\uffff\2\7\5\uffff\2\7";
+    static final String dfa_3s = "\1\4\2\20\2\uffff\1\7\2\uffff\2\20";
+    static final String dfa_4s = "\1\47\2\100\2\uffff\1\10\2\uffff\2\100";
+    static final String dfa_5s = "\3\uffff\1\2\1\3\1\uffff\1\1\1\4\2\uffff";
+    static final String dfa_6s = "\12\uffff}>";
+    static final String[] dfa_7s = {
+            "\3\3\1\1\1\2\33\uffff\1\4\1\uffff\2\3",
+            "\1\7\13\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\17\uffff\1\5\13\7",
+            "\1\7\13\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\17\uffff\1\5\13\7",
+            "",
+            "",
+            "\1\10\1\11",
+            "",
+            "",
+            "\1\7\13\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\17\uffff\1\5\13\7",
+            "\1\7\13\uffff\1\7\2\uffff\3\7\1\uffff\1\7\1\6\1\7\17\uffff\1\5\13\7"
+    };
+
+    static final short[] dfa_1 = DFA.unpackEncodedString(dfa_1s);
+    static final short[] dfa_2 = DFA.unpackEncodedString(dfa_2s);
+    static final char[] dfa_3 = DFA.unpackEncodedStringToUnsignedChars(dfa_3s);
+    static final char[] dfa_4 = DFA.unpackEncodedStringToUnsignedChars(dfa_4s);
+    static final short[] dfa_5 = DFA.unpackEncodedString(dfa_5s);
+    static final short[] dfa_6 = DFA.unpackEncodedString(dfa_6s);
+    static final short[][] dfa_7 = unpackEncodedStringArray(dfa_7s);
+
+    class DFA20 extends DFA {
+
+        public DFA20(BaseRecognizer recognizer) {
+            this.recognizer = recognizer;
+            this.decisionNumber = 20;
+            this.eot = dfa_1;
+            this.eof = dfa_2;
+            this.min = dfa_3;
+            this.max = dfa_4;
+            this.accept = dfa_5;
+            this.special = dfa_6;
+            this.transition = dfa_7;
+        }
+        public String getDescription() {
+            return "1401:2: (this_CallRule_0= ruleCallRule | this_LiteralRule_1= ruleLiteralRule | this_ParanthesesRule_2= ruleParanthesesRule | this_ValueReferenceRule_3= ruleValueReferenceRule )";
+        }
+    }
  
 
     public static final BitSet FOLLOW_1 = new BitSet(new long[]{0x0000000000000000L});
@@ -8108,26 +8331,29 @@ public class InternalOptimisationLanguageParser extends AbstractInternalAntlrPar
     public static final BitSet FOLLOW_13 = new BitSet(new long[]{0x0000000001000000L});
     public static final BitSet FOLLOW_14 = new BitSet(new long[]{0x0000000002000002L});
     public static final BitSet FOLLOW_15 = new BitSet(new long[]{0x0000000004000180L});
-    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x00000300480001F0L});
-    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x00000300680001F0L});
+    public static final BitSet FOLLOW_16 = new BitSet(new long[]{0x000000C0480001F0L});
+    public static final BitSet FOLLOW_17 = new BitSet(new long[]{0x000000C0680001F0L});
     public static final BitSet FOLLOW_18 = new BitSet(new long[]{0x0000000030000000L});
     public static final BitSet FOLLOW_19 = new BitSet(new long[]{0x0000000080000002L});
-    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x0000000100000002L});
-    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0C0003A8480001F0L});
+    public static final BitSet FOLLOW_20 = new BitSet(new long[]{0x300000D4480001F0L});
+    public static final BitSet FOLLOW_21 = new BitSet(new long[]{0x0000000100000002L});
     public static final BitSet FOLLOW_22 = new BitSet(new long[]{0x0000000200000002L});
-    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0000000400000002L});
-    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x03F0000000000002L});
-    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0x0C00000000000002L});
-    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x7000000000000002L});
-    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000001000000002L});
-    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000004000000000L});
-    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x0000002000000000L});
-    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0C0003E8480001F0L});
-    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000004010000000L});
-    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x8000000000000002L,0x000000000007FFFFL});
-    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000040000000000L});
-    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x000FE80040200000L});
-    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000000000110000L});
-    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x0000100000000002L});
+    public static final BitSet FOLLOW_23 = new BitSet(new long[]{0x0FC0000000000002L});
+    public static final BitSet FOLLOW_24 = new BitSet(new long[]{0x3000000000000002L});
+    public static final BitSet FOLLOW_25 = new BitSet(new long[]{0xC000000000000002L,0x0000000000000001L});
+    public static final BitSet FOLLOW_26 = new BitSet(new long[]{0x0000000800000002L});
+    public static final BitSet FOLLOW_27 = new BitSet(new long[]{0x0000002000000000L});
+    public static final BitSet FOLLOW_28 = new BitSet(new long[]{0x0000001000000000L});
+    public static final BitSet FOLLOW_29 = new BitSet(new long[]{0x300000F4480001F0L});
+    public static final BitSet FOLLOW_30 = new BitSet(new long[]{0x0000002010000000L});
+    public static final BitSet FOLLOW_31 = new BitSet(new long[]{0x0000000000000002L,0x00000000001FFFFEL});
+    public static final BitSet FOLLOW_32 = new BitSet(new long[]{0x0000020000000000L});
+    public static final BitSet FOLLOW_33 = new BitSet(new long[]{0x0000040002000000L});
+    public static final BitSet FOLLOW_34 = new BitSet(new long[]{0x0000000002000000L});
+    public static final BitSet FOLLOW_35 = new BitSet(new long[]{0x0000080000000000L});
+    public static final BitSet FOLLOW_36 = new BitSet(new long[]{0x001FD00040200000L});
+    public static final BitSet FOLLOW_37 = new BitSet(new long[]{0x0000000000110000L});
+    public static final BitSet FOLLOW_38 = new BitSet(new long[]{0x0000200000000002L});
+    public static final BitSet FOLLOW_39 = new BitSet(new long[]{0x0020000000000002L});
 
 }
\ No newline at end of file
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSemanticSequencer.java b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSemanticSequencer.java
index c3c3365b..0a585da2 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSemanticSequencer.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSemanticSequencer.java
@@ -14,6 +14,8 @@ import de.evoal.languages.model.base.BooleanLiteral;
 import de.evoal.languages.model.base.BooleanType;
 import de.evoal.languages.model.base.Call;
 import de.evoal.languages.model.base.ComparisonExpression;
+import de.evoal.languages.model.base.ConstantDefinition;
+import de.evoal.languages.model.base.ConstantReference;
 import de.evoal.languages.model.base.DataType;
 import de.evoal.languages.model.base.DefinedFunctionName;
 import de.evoal.languages.model.base.DoubleLiteral;
@@ -34,7 +36,6 @@ import de.evoal.languages.model.base.StringLiteral;
 import de.evoal.languages.model.base.StringType;
 import de.evoal.languages.model.base.TypeDefinition;
 import de.evoal.languages.model.base.UnaryAddOrSubtractExpression;
-import de.evoal.languages.model.base.ValueReference;
 import de.evoal.languages.model.base.VoidType;
 import de.evoal.languages.model.base.XorExpression;
 import de.evoal.languages.model.instance.Array;
@@ -98,6 +99,12 @@ public class OptimisationLanguageSemanticSequencer extends InstanceLanguageSeman
 			case BasePackage.COMPARISON_EXPRESSION:
 				sequence_ComparisonExpressionRule(context, (ComparisonExpression) semanticObject); 
 				return; 
+			case BasePackage.CONSTANT_DEFINITION:
+				sequence_ConstantDefinitionRule(context, (ConstantDefinition) semanticObject); 
+				return; 
+			case BasePackage.CONSTANT_REFERENCE:
+				sequence_ConstantReferenceRule(context, (ConstantReference) semanticObject); 
+				return; 
 			case BasePackage.DATA_TYPE:
 				sequence_DataTypeRule(context, (DataType) semanticObject); 
 				return; 
@@ -161,9 +168,6 @@ public class OptimisationLanguageSemanticSequencer extends InstanceLanguageSeman
 			case BasePackage.UNARY_ADD_OR_SUBTRACT_EXPRESSION:
 				sequence_UnaryAddOrSubtractExpressionRule(context, (UnaryAddOrSubtractExpression) semanticObject); 
 				return; 
-			case BasePackage.VALUE_REFERENCE:
-				sequence_ValueReferenceRule(context, (ValueReference) semanticObject); 
-				return; 
 			case BasePackage.VOID_TYPE:
 				sequence_VoidTypeRule(context, (VoidType) semanticObject); 
 				return; 
@@ -214,7 +218,7 @@ public class OptimisationLanguageSemanticSequencer extends InstanceLanguageSeman
 	 *     AlgorithmInstanceRule returns AlgorithmInstance
 	 *
 	 * Constraint:
-	 *     (problem=[Problem|QualifiedNameRule] algorithm=InstanceRule documentation=ArrayRule?)
+	 *     (problem=[Problem|QualifiedName] algorithm=InstanceRule documentation=ArrayRule?)
 	 * </pre>
 	 */
 	protected void sequence_AlgorithmInstanceRule(ISerializationContext context, AlgorithmInstance semanticObject) {
@@ -228,7 +232,7 @@ public class OptimisationLanguageSemanticSequencer extends InstanceLanguageSeman
 	 *     ImportRule returns Import
 	 *
 	 * Constraint:
-	 *     importedNamespace=QualifiedNameRule
+	 *     importedNamespace=QualifiedName
 	 * </pre>
 	 */
 	protected void sequence_ImportRule(ISerializationContext context, Import semanticObject) {
@@ -237,7 +241,7 @@ public class OptimisationLanguageSemanticSequencer extends InstanceLanguageSeman
 				errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, OLPackage.Literals.IMPORT__IMPORTED_NAMESPACE));
 		}
 		SequenceFeeder feeder = createSequencerFeeder(context, semanticObject);
-		feeder.accept(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0(), semanticObject.getImportedNamespace());
+		feeder.accept(grammarAccess.getImportRuleAccess().getImportedNamespaceQualifiedNameParserRuleCall_1_0(), semanticObject.getImportedNamespace());
 		feeder.finish();
 	}
 	
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSyntacticSequencer.java b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSyntacticSequencer.java
index f420eb58..f9892591 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSyntacticSequencer.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/serializer/OptimisationLanguageSyntacticSequencer.java
@@ -54,7 +54,7 @@ public class OptimisationLanguageSyntacticSequencer extends AbstractSyntacticSeq
 	 *     ('{' '}')?
 	 *
 	 * This ambiguous syntax occurs at:
-	 *     definition=[TypeDefinition|QualifiedNameRule] (ambiguity) (rule end)
+	 *     definition=[TypeDefinition|QualifiedName] (ambiguity) (rule end)
 	 
 	 * </pre>
 	 */
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/services/OptimisationLanguageGrammarAccess.java b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/services/OptimisationLanguageGrammarAccess.java
index 65a58c98..7ebd4180 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/services/OptimisationLanguageGrammarAccess.java
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src-gen/de/evoal/languages/model/ol/dsl/services/OptimisationLanguageGrammarAccess.java
@@ -71,25 +71,25 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		private final Group cGroup = (Group)rule.eContents().get(1);
 		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
 		private final Assignment cImportedNamespaceAssignment_1 = (Assignment)cGroup.eContents().get(1);
-		private final RuleCall cImportedNamespaceQualifiedNameRuleParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
+		private final RuleCall cImportedNamespaceQualifiedNameParserRuleCall_1_0 = (RuleCall)cImportedNamespaceAssignment_1.eContents().get(0);
 		private final Keyword cSemicolonKeyword_2 = (Keyword)cGroup.eContents().get(2);
 		
 		//ImportRule returns Import:
-		//    'import' importedNamespace = QualifiedNameRule ';'
+		//    'import' importedNamespace = QualifiedName ';'
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//'import' importedNamespace = QualifiedNameRule ';'
+		//'import' importedNamespace = QualifiedName ';'
 		public Group getGroup() { return cGroup; }
 		
 		//'import'
 		public Keyword getImportKeyword_0() { return cImportKeyword_0; }
 		
-		//importedNamespace = QualifiedNameRule
+		//importedNamespace = QualifiedName
 		public Assignment getImportedNamespaceAssignment_1() { return cImportedNamespaceAssignment_1; }
 		
-		//QualifiedNameRule
-		public RuleCall getImportedNamespaceQualifiedNameRuleParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameRuleParserRuleCall_1_0; }
+		//QualifiedName
+		public RuleCall getImportedNamespaceQualifiedNameParserRuleCall_1_0() { return cImportedNamespaceQualifiedNameParserRuleCall_1_0; }
 		
 		//';'
 		public Keyword getSemicolonKeyword_2() { return cSemicolonKeyword_2; }
@@ -165,7 +165,7 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		private final Keyword cForKeyword_1 = (Keyword)cGroup.eContents().get(1);
 		private final Assignment cProblemAssignment_2 = (Assignment)cGroup.eContents().get(2);
 		private final CrossReference cProblemProblemCrossReference_2_0 = (CrossReference)cProblemAssignment_2.eContents().get(0);
-		private final RuleCall cProblemProblemQualifiedNameRuleParserRuleCall_2_0_1 = (RuleCall)cProblemProblemCrossReference_2_0.eContents().get(1);
+		private final RuleCall cProblemProblemQualifiedNameParserRuleCall_2_0_1 = (RuleCall)cProblemProblemCrossReference_2_0.eContents().get(1);
 		private final Keyword cWithKeyword_3 = (Keyword)cGroup.eContents().get(3);
 		private final Keyword cAlgorithmKeyword_4 = (Keyword)cGroup.eContents().get(4);
 		private final Assignment cAlgorithmAssignment_5 = (Assignment)cGroup.eContents().get(5);
@@ -178,13 +178,13 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		private final Keyword cSemicolonKeyword_6_3 = (Keyword)cGroup_6.eContents().get(3);
 		
 		//AlgorithmInstanceRule returns AlgorithmInstance:
-		//    "instance" "for" problem = [Problem|QualifiedNameRule] "with" "algorithm"
+		//    "instance" "for" problem = [Problem|QualifiedName] "with" "algorithm"
 		//        algorithm = InstanceRule
 		//    ("documenting" ":=" documentation = ArrayRule ';')?
 		//;
 		@Override public ParserRule getRule() { return rule; }
 		
-		//"instance" "for" problem = [Problem|QualifiedNameRule] "with" "algorithm"
+		//"instance" "for" problem = [Problem|QualifiedName] "with" "algorithm"
 		//    algorithm = InstanceRule
 		//("documenting" ":=" documentation = ArrayRule ';')?
 		public Group getGroup() { return cGroup; }
@@ -195,14 +195,14 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		//"for"
 		public Keyword getForKeyword_1() { return cForKeyword_1; }
 		
-		//problem = [Problem|QualifiedNameRule]
+		//problem = [Problem|QualifiedName]
 		public Assignment getProblemAssignment_2() { return cProblemAssignment_2; }
 		
-		//[Problem|QualifiedNameRule]
+		//[Problem|QualifiedName]
 		public CrossReference getProblemProblemCrossReference_2_0() { return cProblemProblemCrossReference_2_0; }
 		
-		//QualifiedNameRule
-		public RuleCall getProblemProblemQualifiedNameRuleParserRuleCall_2_0_1() { return cProblemProblemQualifiedNameRuleParserRuleCall_2_0_1; }
+		//QualifiedName
+		public RuleCall getProblemProblemQualifiedNameParserRuleCall_2_0_1() { return cProblemProblemQualifiedNameParserRuleCall_2_0_1; }
 		
 		//"with"
 		public Keyword getWithKeyword_3() { return cWithKeyword_3; }
@@ -313,7 +313,7 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 	}
 	
 	//ImportRule returns Import:
-	//    'import' importedNamespace = QualifiedNameRule ';'
+	//    'import' importedNamespace = QualifiedName ';'
 	//;
 	public ImportRuleElements getImportRuleAccess() {
 		return pImportRule;
@@ -337,7 +337,7 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 	}
 	
 	//AlgorithmInstanceRule returns AlgorithmInstance:
-	//    "instance" "for" problem = [Problem|QualifiedNameRule] "with" "algorithm"
+	//    "instance" "for" problem = [Problem|QualifiedName] "with" "algorithm"
 	//        algorithm = InstanceRule
 	//    ("documenting" ":=" documentation = ArrayRule ';')?
 	//;
@@ -350,7 +350,7 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 	}
 	
 	//InstanceRule returns Instance:
-	//    definition = [base::TypeDefinition|QualifiedNameRule] ('{'
+	//    definition = [base::TypeDefinition|QualifiedName] ('{'
 	//      attributes += AttributeRule*
 	//    '}')?
 	//;
@@ -419,16 +419,6 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		return getDataReferenceRuleAccess().getRule();
 	}
 	
-	//QualifiedNameRule:
-	//    StringOrId ('.' StringOrId)*;
-	public InstanceLanguageGrammarAccess.QualifiedNameRuleElements getQualifiedNameRuleAccess() {
-		return gaInstanceLanguage.getQualifiedNameRuleAccess();
-	}
-	
-	public ParserRule getQualifiedNameRuleRule() {
-		return getQualifiedNameRuleAccess().getRule();
-	}
-	
 	//ExpressionRule returns Expression:
 	//    OrExpressionRule
 	//;
@@ -621,7 +611,7 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 	}
 	
 	//ValueReferenceRule returns ValueReference:
-	//    {ValueReference} 'value'
+	//    ConstantReferenceRule
 	//;
 	public BaseLanguageGrammarAccess.ValueReferenceRuleElements getValueReferenceRuleAccess() {
 		return gaBaseLanguage.getValueReferenceRuleAccess();
@@ -631,6 +621,17 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		return getValueReferenceRuleAccess().getRule();
 	}
 	
+	//ConstantReferenceRule returns ConstantReference:
+	//    definition = [ConstantDefinition|QualifiedName]
+	//;
+	public BaseLanguageGrammarAccess.ConstantReferenceRuleElements getConstantReferenceRuleAccess() {
+		return gaBaseLanguage.getConstantReferenceRuleAccess();
+	}
+	
+	public ParserRule getConstantReferenceRuleRule() {
+		return getConstantReferenceRuleAccess().getRule();
+	}
+	
 	//LiteralRule returns Literal:
 	//    NumberLiteralRule
 	//        | StringLiteralRule
@@ -893,6 +894,17 @@ public class OptimisationLanguageGrammarAccess extends AbstractElementFinder.Abs
 		return getFunctionDefinitionRuleAccess().getRule();
 	}
 	
+	//ConstantDefinitionRule returns ConstantDefinition:
+	//    'const' type = TypeDefinitionRule name = StringOrId ':=' value = ExpressionRule
+	//;
+	public BaseLanguageGrammarAccess.ConstantDefinitionRuleElements getConstantDefinitionRuleAccess() {
+		return gaBaseLanguage.getConstantDefinitionRuleAccess();
+	}
+	
+	public ParserRule getConstantDefinitionRuleRule() {
+		return getConstantDefinitionRuleAccess().getRule();
+	}
+	
 	//ParameterRule returns Parameter:
 	//    type = TypeRule name = StringOrId
 	//;
diff --git a/src/languages/de.evoal.languages.model.ol.dsl/src/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtext b/src/languages/de.evoal.languages.model.ol.dsl/src/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtext
index 2c8252b7..5da35de3 100644
--- a/src/languages/de.evoal.languages.model.ol.dsl/src/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtext
+++ b/src/languages/de.evoal.languages.model.ol.dsl/src/de/evoal/languages/model/ol/dsl/OptimisationLanguage.xtext
@@ -15,7 +15,7 @@ OptimisationModelRule returns OptimisationModel:
 ;
 
 ImportRule returns Import:
-	'import' importedNamespace = QualifiedNameRule ';'
+	'import' importedNamespace = QualifiedName ';'
 ;
 
 ProblemRule returns Problem:
@@ -25,7 +25,7 @@ ProblemRule returns Problem:
 ;
 
 AlgorithmInstanceRule returns AlgorithmInstance:
-	"instance" "for" problem = [Problem|QualifiedNameRule] "with" "algorithm"
+	"instance" "for" problem = [Problem|QualifiedName] "with" "algorithm"
 		algorithm = InstanceRule
 	("documenting" ":=" documentation = ArrayRule ';')?
 ;
\ No newline at end of file
-- 
GitLab